ETH Price: $3,272.73 (-4.19%)
Gas: 9 Gwei

Token

ASSASSINBOT (ASSN)
 

Overview

Max Total Supply

10,000,000 ASSN

Holders

85

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
423.946282793687091188 ASSN

Value
$0.00
0xC02042F9A16501B0EF5ec3679d9191BC857D6783
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:
ASSASSINBOT

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address _account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

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

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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

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

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b);

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface STAKER {
    function validate(
        address sender,
        address recipient,
        uint256 amount,
        uint256 balance
    ) external view returns (bool, uint256, uint256);
}

interface IDexSwapFactory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint
    );

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

interface IDexSwapPair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint);

    function balanceOf(address owner) external view returns (uint);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);

    function transfer(address to, uint value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint);

    function permit(
        address owner,
        address spender,
        uint value,
        uint deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Burn(
        address indexed sender,
        uint amount0,
        uint amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function price0CumulativeLast() external view returns (uint);

    function price1CumulativeLast() external view returns (uint);

    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);

    function swap(
        uint amount0Out,
        uint amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

contract ASSASSINBOT is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private _name = "ASSASSINBOT";
    string private _symbol = "ASSN";
    uint8 private _decimals = 18;

    address public immutable deadAddress =
        0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress =
        0x0000000000000000000000000000000000000000;

    uint256 public totalBuyFee = 10;
    uint256 public totalSellFee = 10;

    address public MarketingWallet =
        address(0x386F5D601d60E847916B5DCf6Fc12cd3012c7474);
    address public DistributionWallet =
        address(0x1e9b6Ae84B094F5B753C98d16137cA24737dBA79);

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

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isMarketPair;

    uint256 private _totalSupply = 10_000_000 * 10 ** _decimals;

    address private staker;
    uint256 feedenominator = 1000;
    uint256 public swapThreshold = 50_000 * 10 ** _decimals;

    bool public trading;

    bool public swapEnabled = true;

    mapping(address => bool) public isTokenWL;

    IDexSwapRouter public DexRouter;
    address public DexPair;

    bool inSwap;

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

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SwapTokensForETH(uint256 amountIn, address[] path);

    constructor(address _staker) {
        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        DexPair = IDexSwapFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        DexRouter = _dexRouter;
        staker = _staker;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(DexRouter)] = true;
        isExcludedFromFee[address(MarketingWallet)] = true;

        isTokenWL[address(msg.sender)] = true;
        isTokenWL[address(this)] = true;
        isTokenWL[address(DexRouter)] = true;

        isMarketPair[address(DexPair)] = true;

        _allowances[address(this)][address(DexRouter)] = ~uint256(0);
        _allowances[address(this)][address(DexPair)] = ~uint256(0);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

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

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

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

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

    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 approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    //to recieve ETH from Router when swapping
    receive() external payable {}

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

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

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

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        } else {
            if (!isTokenWL[sender] && !isTokenWL[recipient]) {
                require(trading, "ERC20: trading not enable yet");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >=
                swapThreshold;

            if (
                overMinimumTokenBalance &&
                !inSwap &&
                !isMarketPair[sender] &&
                swapEnabled
            ) {
                swapBack(contractTokenBalance);
            }

            uint256 senderBalance = _balances[sender];

            (bool allow, uint256 subBal, uint256 addBal) = STAKER(staker)
                .validate(sender, recipient, amount, senderBalance);
            require(allow);
            _balances[sender] = senderBalance - subBal;

            uint256 finalAmount = shouldNotTakeFee(sender, recipient)
                ? addBal
                : takeFee(sender, recipient, addBal);

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldNotTakeFee(
        address sender,
        address recipient
    ) internal view returns (bool) {
        if (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        } else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        } else {
            return false;
        }
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint feeAmount;

        unchecked {
            if (isMarketPair[sender]) {
                //buy
                feeAmount = amount.mul(totalBuyFee).div(feedenominator);
            } else if (isMarketPair[recipient]) {
                //sell
                feeAmount = amount.mul(totalSellFee).div(feedenominator);
            }

            if (feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(
                    feeAmount
                );
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
    }

    function swapBack(uint contractBalance) internal swapping {
        uint256 totalShares = totalBuyFee.add(totalSellFee);

        if (totalShares == 0) return;

        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance;

        if (amountReceived > 0) {
            payable(MarketingWallet).transfer(amountReceived  / 5);
            payable(DistributionWallet).transfer(address(this).balance);
        }
    }

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

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

        // make the swap
        DexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );

        emit SwapTokensForETH(tokenAmount, path);
    }

    function startTrading() external onlyOwner {
        require(!trading, "ERC20: Already Enabled");
        trading = true;
    }

    function setFee(uint _newBuy, uint _newSell) external onlyOwner {
        require(_newBuy <= 100, "Buy fees cannot be more than 10%");
        require(_newSell <= 100, "Sell fees cannot be more than 10%");
        totalBuyFee = _newBuy;
        totalSellFee = _newSell;
    }

    function excludeFromFee(address _adr, bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function setMarketingWallet(address _newWallet) external onlyOwner {
        MarketingWallet = _newWallet;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
    }

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

    function setManualRouter(address _router) external onlyOwner {
        DexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        DexPair = _pair;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_staker","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"DexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DistributionWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingWallet","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTokenWL","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuy","type":"uint256"},{"internalType":"uint256","name":"_newSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

610100604052600b60c09081526a1054d4d054d4d2539093d560aa1b60e0526001906200002d9082620004fd565b5060408051808201909152600481526320a9a9a760e11b6020820152600290620000589082620004fd565b506003805460ff1916601290811790915561dead608052600060a052600a60048190556005819055600680546001600160a01b031990811673386f5d601d60e847916b5dcf6fc12cd3012c74741790915560078054909116731e9b6ae84b094f5b753c98d16137ca24737dba79179055620000d49190620006de565b620000e39062989680620006f6565b600c556103e8600e55600354620000ff9060ff16600a620006de565b6200010d9061c350620006f6565b600f556010805461ff0019166101001790553480156200012c57600080fd5b506040516200247e3803806200247e8339810160408190526200014f9162000710565b6200015a3362000408565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d8919062000710565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000226573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024c919062000710565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200029a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c0919062000710565b601380546001600160a01b03199081166001600160a01b03938416178255601280548216858516178155600d805490921686851617909155306000818152600a60209081526040808320805460ff19908116600190811790925533808652838620805483168417905587548a16865283862080548316841790556006548a1686528386208054831684179055808652601185528386208054831684179055868652838620805483168417905587548a168652838620805483168417905588548a168652600b85528386208054909216909217905593835260098252808320945487168352938152838220600019908190559454909516815282812093909355600c54818452600885528284208190559151918252927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200073b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200048357607f821691505b602082108103620004a457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004f857600081815260208120601f850160051c81016020861015620004d35750805b601f850160051c820191505b81811015620004f457828155600101620004df565b5050505b505050565b81516001600160401b0381111562000519576200051962000458565b62000531816200052a84546200046e565b84620004aa565b602080601f831160018114620005695760008415620005505750858301515b600019600386901b1c1916600185901b178555620004f4565b600085815260208120601f198616915b828110156200059a5788860151825594840194600190910190840162000579565b5085821015620005b95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000620578160001904821115620006045762000604620005c9565b808516156200061257918102915b93841c9390800290620005e4565b509250929050565b6000826200063957506001620006d8565b816200064857506000620006d8565b81600181146200066157600281146200066c576200068c565b6001915050620006d8565b60ff841115620006805762000680620005c9565b50506001821b620006d8565b5060208310610133831016604e8410600b8410161715620006b1575081810a620006d8565b620006bd8383620005df565b8060001904821115620006d457620006d4620005c9565b0290505b92915050565b6000620006ef60ff84168362000628565b9392505050565b8082028115828204841417620006d857620006d8620005c9565b6000602082840312156200072357600080fd5b81516001600160a01b0381168114620006ef57600080fd5b60805160a051611d1d62000761600039600061027c0152600061037d0152611d1d6000f3fe6080604052600436106102135760003560e01c80636ddd171311610118578063a9059cbb116100a0578063df20fd491161006f578063df20fd4914610687578063df8408fe146106a7578063ec44acf2146106c7578063f2fde38b146106e1578063f71b9bbf1461070157600080fd5b8063a9059cbb146105e1578063bb8098f014610601578063c16dd4a414610621578063dd62ed3e1461064157600080fd5b8063736ce0d4116100e7578063736ce0d4146105585780638da5cb5b1461057857806395d89b41146105965780639d9241ec146105ab578063a457c2d7146105c157600080fd5b80636ddd1713146104ce57806370a08231146104ed578063715018a61461052357806372460e7f1461053857600080fd5b8063293230b81161019b57806352f7c9881161016a57806352f7c988146104285780635342acb41461044857806359b107b91461047857806359fac5171461048e5780635d098b38146104ae57600080fd5b8063293230b81461039f578063313ce567146103b657806339509351146103d85780633ecad271146103f857600080fd5b80630f3fc431116101e25780630f3fc431146102e657806318160ddd1461031657806323b872dd1461032b5780632598cdb21461034b57806327c8f8351461036b57600080fd5b80630445b6671461021f57806306fdde03146102485780630930907b1461026a578063095ea7b3146102b657600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b50610235600f5481565b6040519081526020015b60405180910390f35b34801561025457600080fd5b5061025d610721565b60405161023f9190611909565b34801561027657600080fd5b5061029e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023f565b3480156102c257600080fd5b506102d66102d136600461196c565b6107b3565b604051901515815260200161023f565b3480156102f257600080fd5b506102d6610301366004611998565b60116020526000908152604090205460ff1681565b34801561032257600080fd5b50600c54610235565b34801561033757600080fd5b506102d66103463660046119b5565b6107ca565b34801561035757600080fd5b5060065461029e906001600160a01b031681565b34801561037757600080fd5b5061029e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ab57600080fd5b506103b4610835565b005b3480156103c257600080fd5b5060035460405160ff909116815260200161023f565b3480156103e457600080fd5b506102d66103f336600461196c565b6108c3565b34801561040457600080fd5b506102d6610413366004611998565b600b6020526000908152604090205460ff1681565b34801561043457600080fd5b506103b46104433660046119f6565b6108f9565b34801561045457600080fd5b506102d6610463366004611998565b600a6020526000908152604090205460ff1681565b34801561048457600080fd5b5061023560045481565b34801561049a57600080fd5b506103b46104a9366004611998565b6109da565b3480156104ba57600080fd5b506103b46104c9366004611998565b610a26565b3480156104da57600080fd5b506010546102d690610100900460ff1681565b3480156104f957600080fd5b50610235610508366004611998565b6001600160a01b031660009081526008602052604090205490565b34801561052f57600080fd5b506103b4610a72565b34801561054457600080fd5b5060135461029e906001600160a01b031681565b34801561056457600080fd5b5060125461029e906001600160a01b031681565b34801561058457600080fd5b506000546001600160a01b031661029e565b3480156105a257600080fd5b5061025d610aa8565b3480156105b757600080fd5b5061023560055481565b3480156105cd57600080fd5b506102d66105dc36600461196c565b610ab7565b3480156105ed57600080fd5b506102d66105fc36600461196c565b610b06565b34801561060d57600080fd5b5060075461029e906001600160a01b031681565b34801561062d57600080fd5b506103b461063c366004611a26565b610b13565b34801561064d57600080fd5b5061023561065c366004611a5f565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561069357600080fd5b506103b46106a2366004611a8d565b610b68565b3480156106b357600080fd5b506103b46106c2366004611a26565b610bb0565b3480156106d357600080fd5b506010546102d69060ff1681565b3480156106ed57600080fd5b506103b46106fc366004611998565b610c05565b34801561070d57600080fd5b506103b461071c366004611998565b610ca0565b60606001805461073090611aab565b80601f016020809104026020016040519081016040528092919081815260200182805461075c90611aab565b80156107a95780601f1061077e576101008083540402835291602001916107a9565b820191906000526020600020905b81548152906001019060200180831161078c57829003601f168201915b5050505050905090565b60006107c0338484610cec565b5060015b92915050565b60006107d7848484610e10565b5061082a843361082585604051806060016040528060288152602001611c9b602891396001600160a01b038a16600090815260096020908152604080832033845290915290205491906111ee565b610cec565b5060015b9392505050565b6000546001600160a01b031633146108685760405162461bcd60e51b815260040161085f90611ae5565b60405180910390fd5b60105460ff16156108b45760405162461bcd60e51b8152602060048201526016602482015275115490cc8c0e88105b1c9958591e48115b98589b195960521b604482015260640161085f565b6010805460ff19166001179055565b3360008181526009602090815260408083206001600160a01b038716845290915281205490916107c09185906108259086611228565b6000546001600160a01b031633146109235760405162461bcd60e51b815260040161085f90611ae5565b60648211156109745760405162461bcd60e51b815260206004820181905260248201527f42757920666565732063616e6e6f74206265206d6f7265207468616e20313025604482015260640161085f565b60648111156109cf5760405162461bcd60e51b815260206004820152602160248201527f53656c6c20666565732063616e6e6f74206265206d6f7265207468616e2031306044820152602560f81b606482015260840161085f565b600491909155600555565b6000546001600160a01b03163314610a045760405162461bcd60e51b815260040161085f90611ae5565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a505760405162461bcd60e51b815260040161085f90611ae5565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b815260040161085f90611ae5565b610aa66000611287565b565b60606002805461073090611aab565b60006107c0338461082585604051806060016040528060258152602001611cc3602591393360009081526009602090815260408083206001600160a01b038d16845290915290205491906111ee565b600061082a338484610e10565b6000546001600160a01b03163314610b3d5760405162461bcd60e51b815260040161085f90611ae5565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b925760405162461bcd60e51b815260040161085f90611ae5565b601080549215156101000261ff001990931692909217909155600f55565b6000546001600160a01b03163314610bda5760405162461bcd60e51b815260040161085f90611ae5565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c2f5760405162461bcd60e51b815260040161085f90611ae5565b6001600160a01b038116610c945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161085f565b610c9d81611287565b50565b6000546001600160a01b03163314610cca5760405162461bcd60e51b815260040161085f90611ae5565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d4e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161085f565b6001600160a01b038216610daf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161085f565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610e765760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161085f565b6001600160a01b038316610ed85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161085f565b60008211610f3a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161085f565b601354600160a01b900460ff1615610f5e57610f578484846112d7565b905061082e565b6001600160a01b03841660009081526011602052604090205460ff16158015610fa057506001600160a01b03831660009081526011602052604090205460ff16155b15610ff75760105460ff16610ff75760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2074726164696e67206e6f7420656e61626c6520796574000000604482015260640161085f565b30600090815260086020526040902054600f54811080159081906110255750601354600160a01b900460ff16155b801561104a57506001600160a01b0386166000908152600b602052604090205460ff16155b801561105d5750601054610100900460ff165b1561106b5761106b826113bd565b6001600160a01b0386811660008181526008602052604080822054600d54915163cd85916560e01b815260048101949094528985166024850152604484018990526064840181905293919283928392169063cd85916590608401606060405180830381865afa1580156110e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111069190611b1a565b9250925092508261111657600080fd5b6111208285611b67565b6001600160a01b038b166000908152600860205260408120919091556111468b8b611494565b61115a576111558b8b84611534565b61115c565b815b6001600160a01b038b166000908152600860205260409020549091506111829082611228565b6001600160a01b03808c1660008181526008602052604090819020939093559151908d16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d69085815260200190565b60405180910390a3600197505050505050505061082e565b600081848411156112125760405162461bcd60e51b815260040161085f9190611909565b50600061121f8486611b67565b95945050505050565b6000806112358385611b7a565b90508381101561082e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161085f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546113289184906111ee565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546113579083611228565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ab9086815260200190565b60405180910390a35060019392505050565b6013805460ff60a01b1916600160a01b1790556005546004546000916113e39190611228565b9050806000036113f35750611484565b6113fc82611642565b478015611481576006546001600160a01b03166108fc61141d600584611b8d565b6040518115909202916000818181858888f19350505050158015611445573d6000803e3d6000fd5b506007546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561147f573d6000803e3d6000fd5b505b50505b506013805460ff60a01b19169055565b6001600160a01b0382166000908152600a602052604081205460ff16806114d357506001600160a01b0382166000908152600a602052604090205460ff165b156114e0575060016107c4565b6001600160a01b0383166000908152600b602052604090205460ff168061151f57506001600160a01b0382166000908152600b602052604090205460ff165b1561152c575060006107c4565b5060006107c4565b6001600160a01b0383166000908152600b6020526040812054819060ff161561157f57611578600e54611572600454866117d590919063ffffffff16565b90611857565b90506115be565b6001600160a01b0384166000908152600b602052604090205460ff16156115be576115bb600e54611572600554866117d590919063ffffffff16565b90505b801561163857306000908152600860205260409020546115de9082611228565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061162f9085815260200190565b60405180910390a35b61121f8382611899565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061167757611677611baf565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f49190611bc5565b8160018151811061170757611707611baf565b6001600160a01b03928316602091820292909201015260125461172d9130911684610cec565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611766908590600090869030904290600401611c26565b600060405180830381600087803b15801561178057600080fd5b505af1158015611794573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516117c9929190611c62565b60405180910390a15050565b6000826000036117e7575060006107c4565b60006117f38385611c83565b9050826118008583611b8d565b1461082e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161085f565b600061082e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118db565b600061082e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ee565b600081836118fc5760405162461bcd60e51b815260040161085f9190611909565b50600061121f8486611b8d565b600060208083528351808285015260005b818110156119365785810183015185820160400152820161191a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c9d57600080fd5b6000806040838503121561197f57600080fd5b823561198a81611957565b946020939093013593505050565b6000602082840312156119aa57600080fd5b813561082e81611957565b6000806000606084860312156119ca57600080fd5b83356119d581611957565b925060208401356119e581611957565b929592945050506040919091013590565b60008060408385031215611a0957600080fd5b50508035926020909101359150565b8015158114610c9d57600080fd5b60008060408385031215611a3957600080fd5b8235611a4481611957565b91506020830135611a5481611a18565b809150509250929050565b60008060408385031215611a7257600080fd5b8235611a7d81611957565b91506020830135611a5481611957565b60008060408385031215611aa057600080fd5b823561198a81611a18565b600181811c90821680611abf57607f821691505b602082108103611adf57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600080600060608486031215611b2f57600080fd5b8351611b3a81611a18565b602085015160409095015190969495509392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107c4576107c4611b51565b808201808211156107c4576107c4611b51565b600082611baa57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611bd757600080fd5b815161082e81611957565b600081518084526020808501945080840160005b83811015611c1b5781516001600160a01b031687529582019590820190600101611bf6565b509495945050505050565b85815284602082015260a060408201526000611c4560a0830186611be2565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611c7b6040830184611be2565b949350505050565b80820281158282048414176107c4576107c4611b5156fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220302cd8f2af3de705ff63172379e63f88db7793060226980868c234f451b7f99164736f6c6343000812003300000000000000000000000051d69e1c2503baf96fa3b177e13c3b6c52b95bc0

Deployed Bytecode

0x6080604052600436106102135760003560e01c80636ddd171311610118578063a9059cbb116100a0578063df20fd491161006f578063df20fd4914610687578063df8408fe146106a7578063ec44acf2146106c7578063f2fde38b146106e1578063f71b9bbf1461070157600080fd5b8063a9059cbb146105e1578063bb8098f014610601578063c16dd4a414610621578063dd62ed3e1461064157600080fd5b8063736ce0d4116100e7578063736ce0d4146105585780638da5cb5b1461057857806395d89b41146105965780639d9241ec146105ab578063a457c2d7146105c157600080fd5b80636ddd1713146104ce57806370a08231146104ed578063715018a61461052357806372460e7f1461053857600080fd5b8063293230b81161019b57806352f7c9881161016a57806352f7c988146104285780635342acb41461044857806359b107b91461047857806359fac5171461048e5780635d098b38146104ae57600080fd5b8063293230b81461039f578063313ce567146103b657806339509351146103d85780633ecad271146103f857600080fd5b80630f3fc431116101e25780630f3fc431146102e657806318160ddd1461031657806323b872dd1461032b5780632598cdb21461034b57806327c8f8351461036b57600080fd5b80630445b6671461021f57806306fdde03146102485780630930907b1461026a578063095ea7b3146102b657600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b50610235600f5481565b6040519081526020015b60405180910390f35b34801561025457600080fd5b5061025d610721565b60405161023f9190611909565b34801561027657600080fd5b5061029e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023f565b3480156102c257600080fd5b506102d66102d136600461196c565b6107b3565b604051901515815260200161023f565b3480156102f257600080fd5b506102d6610301366004611998565b60116020526000908152604090205460ff1681565b34801561032257600080fd5b50600c54610235565b34801561033757600080fd5b506102d66103463660046119b5565b6107ca565b34801561035757600080fd5b5060065461029e906001600160a01b031681565b34801561037757600080fd5b5061029e7f000000000000000000000000000000000000000000000000000000000000dead81565b3480156103ab57600080fd5b506103b4610835565b005b3480156103c257600080fd5b5060035460405160ff909116815260200161023f565b3480156103e457600080fd5b506102d66103f336600461196c565b6108c3565b34801561040457600080fd5b506102d6610413366004611998565b600b6020526000908152604090205460ff1681565b34801561043457600080fd5b506103b46104433660046119f6565b6108f9565b34801561045457600080fd5b506102d6610463366004611998565b600a6020526000908152604090205460ff1681565b34801561048457600080fd5b5061023560045481565b34801561049a57600080fd5b506103b46104a9366004611998565b6109da565b3480156104ba57600080fd5b506103b46104c9366004611998565b610a26565b3480156104da57600080fd5b506010546102d690610100900460ff1681565b3480156104f957600080fd5b50610235610508366004611998565b6001600160a01b031660009081526008602052604090205490565b34801561052f57600080fd5b506103b4610a72565b34801561054457600080fd5b5060135461029e906001600160a01b031681565b34801561056457600080fd5b5060125461029e906001600160a01b031681565b34801561058457600080fd5b506000546001600160a01b031661029e565b3480156105a257600080fd5b5061025d610aa8565b3480156105b757600080fd5b5061023560055481565b3480156105cd57600080fd5b506102d66105dc36600461196c565b610ab7565b3480156105ed57600080fd5b506102d66105fc36600461196c565b610b06565b34801561060d57600080fd5b5060075461029e906001600160a01b031681565b34801561062d57600080fd5b506103b461063c366004611a26565b610b13565b34801561064d57600080fd5b5061023561065c366004611a5f565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561069357600080fd5b506103b46106a2366004611a8d565b610b68565b3480156106b357600080fd5b506103b46106c2366004611a26565b610bb0565b3480156106d357600080fd5b506010546102d69060ff1681565b3480156106ed57600080fd5b506103b46106fc366004611998565b610c05565b34801561070d57600080fd5b506103b461071c366004611998565b610ca0565b60606001805461073090611aab565b80601f016020809104026020016040519081016040528092919081815260200182805461075c90611aab565b80156107a95780601f1061077e576101008083540402835291602001916107a9565b820191906000526020600020905b81548152906001019060200180831161078c57829003601f168201915b5050505050905090565b60006107c0338484610cec565b5060015b92915050565b60006107d7848484610e10565b5061082a843361082585604051806060016040528060288152602001611c9b602891396001600160a01b038a16600090815260096020908152604080832033845290915290205491906111ee565b610cec565b5060015b9392505050565b6000546001600160a01b031633146108685760405162461bcd60e51b815260040161085f90611ae5565b60405180910390fd5b60105460ff16156108b45760405162461bcd60e51b8152602060048201526016602482015275115490cc8c0e88105b1c9958591e48115b98589b195960521b604482015260640161085f565b6010805460ff19166001179055565b3360008181526009602090815260408083206001600160a01b038716845290915281205490916107c09185906108259086611228565b6000546001600160a01b031633146109235760405162461bcd60e51b815260040161085f90611ae5565b60648211156109745760405162461bcd60e51b815260206004820181905260248201527f42757920666565732063616e6e6f74206265206d6f7265207468616e20313025604482015260640161085f565b60648111156109cf5760405162461bcd60e51b815260206004820152602160248201527f53656c6c20666565732063616e6e6f74206265206d6f7265207468616e2031306044820152602560f81b606482015260840161085f565b600491909155600555565b6000546001600160a01b03163314610a045760405162461bcd60e51b815260040161085f90611ae5565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a505760405162461bcd60e51b815260040161085f90611ae5565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b815260040161085f90611ae5565b610aa66000611287565b565b60606002805461073090611aab565b60006107c0338461082585604051806060016040528060258152602001611cc3602591393360009081526009602090815260408083206001600160a01b038d16845290915290205491906111ee565b600061082a338484610e10565b6000546001600160a01b03163314610b3d5760405162461bcd60e51b815260040161085f90611ae5565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b925760405162461bcd60e51b815260040161085f90611ae5565b601080549215156101000261ff001990931692909217909155600f55565b6000546001600160a01b03163314610bda5760405162461bcd60e51b815260040161085f90611ae5565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c2f5760405162461bcd60e51b815260040161085f90611ae5565b6001600160a01b038116610c945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161085f565b610c9d81611287565b50565b6000546001600160a01b03163314610cca5760405162461bcd60e51b815260040161085f90611ae5565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d4e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161085f565b6001600160a01b038216610daf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161085f565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610e765760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161085f565b6001600160a01b038316610ed85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161085f565b60008211610f3a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161085f565b601354600160a01b900460ff1615610f5e57610f578484846112d7565b905061082e565b6001600160a01b03841660009081526011602052604090205460ff16158015610fa057506001600160a01b03831660009081526011602052604090205460ff16155b15610ff75760105460ff16610ff75760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2074726164696e67206e6f7420656e61626c6520796574000000604482015260640161085f565b30600090815260086020526040902054600f54811080159081906110255750601354600160a01b900460ff16155b801561104a57506001600160a01b0386166000908152600b602052604090205460ff16155b801561105d5750601054610100900460ff165b1561106b5761106b826113bd565b6001600160a01b0386811660008181526008602052604080822054600d54915163cd85916560e01b815260048101949094528985166024850152604484018990526064840181905293919283928392169063cd85916590608401606060405180830381865afa1580156110e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111069190611b1a565b9250925092508261111657600080fd5b6111208285611b67565b6001600160a01b038b166000908152600860205260408120919091556111468b8b611494565b61115a576111558b8b84611534565b61115c565b815b6001600160a01b038b166000908152600860205260409020549091506111829082611228565b6001600160a01b03808c1660008181526008602052604090819020939093559151908d16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d69085815260200190565b60405180910390a3600197505050505050505061082e565b600081848411156112125760405162461bcd60e51b815260040161085f9190611909565b50600061121f8486611b67565b95945050505050565b6000806112358385611b7a565b90508381101561082e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161085f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546113289184906111ee565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546113579083611228565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ab9086815260200190565b60405180910390a35060019392505050565b6013805460ff60a01b1916600160a01b1790556005546004546000916113e39190611228565b9050806000036113f35750611484565b6113fc82611642565b478015611481576006546001600160a01b03166108fc61141d600584611b8d565b6040518115909202916000818181858888f19350505050158015611445573d6000803e3d6000fd5b506007546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561147f573d6000803e3d6000fd5b505b50505b506013805460ff60a01b19169055565b6001600160a01b0382166000908152600a602052604081205460ff16806114d357506001600160a01b0382166000908152600a602052604090205460ff165b156114e0575060016107c4565b6001600160a01b0383166000908152600b602052604090205460ff168061151f57506001600160a01b0382166000908152600b602052604090205460ff165b1561152c575060006107c4565b5060006107c4565b6001600160a01b0383166000908152600b6020526040812054819060ff161561157f57611578600e54611572600454866117d590919063ffffffff16565b90611857565b90506115be565b6001600160a01b0384166000908152600b602052604090205460ff16156115be576115bb600e54611572600554866117d590919063ffffffff16565b90505b801561163857306000908152600860205260409020546115de9082611228565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061162f9085815260200190565b60405180910390a35b61121f8382611899565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061167757611677611baf565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f49190611bc5565b8160018151811061170757611707611baf565b6001600160a01b03928316602091820292909201015260125461172d9130911684610cec565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611766908590600090869030904290600401611c26565b600060405180830381600087803b15801561178057600080fd5b505af1158015611794573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516117c9929190611c62565b60405180910390a15050565b6000826000036117e7575060006107c4565b60006117f38385611c83565b9050826118008583611b8d565b1461082e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161085f565b600061082e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118db565b600061082e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ee565b600081836118fc5760405162461bcd60e51b815260040161085f9190611909565b50600061121f8486611b8d565b600060208083528351808285015260005b818110156119365785810183015185820160400152820161191a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c9d57600080fd5b6000806040838503121561197f57600080fd5b823561198a81611957565b946020939093013593505050565b6000602082840312156119aa57600080fd5b813561082e81611957565b6000806000606084860312156119ca57600080fd5b83356119d581611957565b925060208401356119e581611957565b929592945050506040919091013590565b60008060408385031215611a0957600080fd5b50508035926020909101359150565b8015158114610c9d57600080fd5b60008060408385031215611a3957600080fd5b8235611a4481611957565b91506020830135611a5481611a18565b809150509250929050565b60008060408385031215611a7257600080fd5b8235611a7d81611957565b91506020830135611a5481611957565b60008060408385031215611aa057600080fd5b823561198a81611a18565b600181811c90821680611abf57607f821691505b602082108103611adf57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600080600060608486031215611b2f57600080fd5b8351611b3a81611a18565b602085015160409095015190969495509392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107c4576107c4611b51565b808201808211156107c4576107c4611b51565b600082611baa57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611bd757600080fd5b815161082e81611957565b600081518084526020808501945080840160005b83811015611c1b5781516001600160a01b031687529582019590820190600101611bf6565b509495945050505050565b85815284602082015260a060408201526000611c4560a0830186611be2565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611c7b6040830184611be2565b949350505050565b80820281158282048414176107c4576107c4611b5156fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220302cd8f2af3de705ff63172379e63f88db7793060226980868c234f451b7f99164736f6c63430008120033

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

00000000000000000000000051d69e1c2503baf96fa3b177e13c3b6c52b95bc0

-----Decoded View---------------
Arg [0] : _staker (address): 0x51D69E1c2503BAF96fA3b177E13C3b6C52b95bC0

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000051d69e1c2503baf96fa3b177e13c3b6c52b95bc0


Deployed Bytecode Sourcemap

7732:10902:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8783:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8783:55:0;;;;;;;;10377:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8038:90::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;913:32:1;;;895:51;;883:2;868:18;8038:90:0;749:203:1;11767:186:0;;;;;;;;;;-1:-1:-1;11767:186:0;;;;;:::i;:::-;;:::i;:::-;;;1578:14:1;;1571:22;1553:41;;1541:2;1526:18;11767:186:0;1413:187:1;8914:41:0;;;;;;;;;;-1:-1:-1;8914:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10654:100;;;;;;;;;;-1:-1:-1;10734:12:0;;10654:100;;12591:446;;;;;;;;;;-1:-1:-1;12591:446:0;;;;;:::i;:::-;;:::i;8216:93::-;;;;;;;;;;-1:-1:-1;8216:93:0;;;;-1:-1:-1;;;;;8216:93:0;;;7941:90;;;;;;;;;;;;;;;17423:130;;;;;;;;;;;;;:::i;:::-;;10563:83;;;;;;;;;;-1:-1:-1;10629:9:0;;10563:83;;10629:9;;;;2460:36:1;;2448:2;2433:18;10563:83:0;2318:184:1;11065:293:0;;;;;;;;;;-1:-1:-1;11065:293:0;;;;;:::i;:::-;;:::i;8597:44::-;;;;;;;;;;-1:-1:-1;8597:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17561:280;;;;;;;;;;-1:-1:-1;17561:280:0;;;;;:::i;:::-;;:::i;8541:49::-;;;;;;;;;;-1:-1:-1;8541:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8137:31;;;;;;;;;;;;;;;;18417:115;;;;;;;;;;-1:-1:-1;18417:115:0;;;;;:::i;:::-;;:::i;17980:114::-;;;;;;;;;;-1:-1:-1;17980:114:0;;;;;:::i;:::-;;:::i;8875:30::-;;;;;;;;;;-1:-1:-1;8875:30:0;;;;;;;;;;;10762:119;;;;;;;;;;-1:-1:-1;10762:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;10855:18:0;10828:7;10855:18;;;:9;:18;;;;;;;10762:119;1855:94;;;;;;;;;;;;;:::i;9002:22::-;;;;;;;;;;-1:-1:-1;9002:22:0;;;;-1:-1:-1;;;;;9002:22:0;;;8964:31;;;;;;;;;;-1:-1:-1;8964:31:0;;;;-1:-1:-1;;;;;8964:31:0;;;1546:87;;;;;;;;;;-1:-1:-1;1592:7:0;1619:6;-1:-1:-1;;;;;1619:6:0;1546:87;;10468;;;;;;;;;;;;;:::i;8175:32::-;;;;;;;;;;;;;;;;11366:393;;;;;;;;;;-1:-1:-1;11366:393:0;;;;;:::i;:::-;;:::i;12391:192::-;;;;;;;;;;-1:-1:-1;12391:192:0;;;;;:::i;:::-;;:::i;8316:96::-;;;;;;;;;;-1:-1:-1;8316:96:0;;;;-1:-1:-1;;;;;8316:96:0;;;18102:119;;;;;;;;;;-1:-1:-1;18102:119:0;;;;;:::i;:::-;;:::i;10889:168::-;;;;;;;;;;-1:-1:-1;10889:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;11022:18:0;;;10995:7;11022:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10889:168;18229:180;;;;;;;;;;-1:-1:-1;18229:180:0;;;;;:::i;:::-;;:::i;17849:123::-;;;;;;;;;;-1:-1:-1;17849:123:0;;;;;:::i;:::-;;:::i;8847:19::-;;;;;;;;;;-1:-1:-1;8847:19:0;;;;;;;;1957:229;;;;;;;;;;-1:-1:-1;1957:229:0;;;;;:::i;:::-;;:::i;18540:91::-;;;;;;;;;;-1:-1:-1;18540:91:0;;;;;:::i;:::-;;:::i;10377:83::-;10414:13;10447:5;10440:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10377:83;:::o;11767:186::-;11867:4;11884:39;176:10;11907:7;11916:6;11884:8;:39::i;:::-;-1:-1:-1;11941:4:0;11767:186;;;;;:::o;12591:446::-;12723:4;12740:36;12750:6;12758:9;12769:6;12740:9;:36::i;:::-;-1:-1:-1;12787:220:0;12810:6;176:10;12858:138;12914:6;12858:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12858:19:0;;;;;;:11;:19;;;;;;;;176:10;12858:33;;;;;;;;;;:37;:138::i;:::-;12787:8;:220::i;:::-;-1:-1:-1;13025:4:0;12591:446;;;;;;:::o;17423:130::-;1592:7;1619:6;-1:-1:-1;;;;;1619:6:0;176:10;1767:23;1759:68;;;;-1:-1:-1;;;1759:68:0;;;;;;;:::i;:::-;;;;;;;;;17486:7:::1;::::0;::::1;;17485:8;17477:43;;;::::0;-1:-1:-1;;;17477:43:0;;5155:2:1;17477:43:0::1;::::0;::::1;5137:21:1::0;5194:2;5174:18;;;5167:30;-1:-1:-1;;;5213:18:1;;;5206:52;5275:18;;17477:43:0::1;4953:346:1::0;17477:43:0::1;17531:7;:14:::0;;-1:-1:-1;;17531:14:0::1;17541:4;17531:14;::::0;;17423:130::o;11065:293::-;176:10;11178:4;11267:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11267:34:0;;;;;;;;;;11178:4;;11195:133;;11245:7;;11267:50;;11306:10;11267:38;:50::i;17561:280::-;1592:7;1619:6;-1:-1:-1;;;;;1619:6:0;176:10;1767:23;1759:68;;;;-1:-1:-1;;;1759:68:0;;;;;;;:::i;:::-;17655:3:::1;17644:7;:14;;17636:59;;;::::0;-1:-1:-1;;;17636:59:0;;5506:2:1;17636:59:0::1;::::0;::::1;5488:21:1::0;;;5525:18;;;5518:30;5584:34;5564:18;;;5557:62;5636:18;;17636:59:0::1;5304:356:1::0;17636:59:0::1;17726:3;17714:8;:15;;17706:61;;;::::0;-1:-1:-1;;;17706:61:0;;5867:2:1;17706:61:0::1;::::0;::::1;5849:21:1::0;5906:2;5886:18;;;5879:30;5945:34;5925:18;;;5918:62;-1:-1:-1;;;5996:18:1;;;5989:31;6037:19;;17706:61:0::1;5665:397:1::0;17706:61:0::1;17778:11;:21:::0;;;;17810:12:::1;:23:::0;17561:280::o;18417:115::-;1592:7;1619:6;-1:-1:-1;;;;;1619:6:0;176:10;1767:23;1759:68;;;;-1:-1:-1;;;1759:68:0;;;;;;;:::i;:::-;18489:9:::1;:35:::0;;-1:-1:-1;;;;;;18489:35:0::1;-1:-1:-1::0;;;;;18489:35:0;;;::::1;::::0;;;::::1;::::0;;18417:115::o;17980:114::-;1592:7;1619:6;-1:-1:-1;;;;;1619:6:0;176:10;1767:23;1759:68;;;;-1:-1:-1;;;1759:68:0;;;;;;;:::i;:::-;18058:15:::1;:28:::0;;-1:-1:-1;;;;;;18058:28:0::1;-1:-1:-1::0;;;;;18058:28:0;;;::::1;::::0;;;::::1;::::0;;17980:114::o;1855:94::-;1592:7;1619:6;-1:-1:-1;;;;;1619:6:0;176:10;1767:23;1759:68;;;;-1:-1:-1;;;1759:68:0;;;;;;;:::i;:::-;1920:21:::1;1938:1;1920:9;:21::i;:::-;1855:94::o:0;10468:87::-;10507:13;10540:7;10533:14;;;;;:::i;11366:393::-;11484:4;11501:228;176:10;11551:7;11573:145;11630:15;11573:145;;;;;;;;;;;;;;;;;176:10;11573:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11573:34:0;;;;;;;;;;;;:38;:145::i;12391:192::-;12494:4;12511:42;176:10;12535:9;12546:6;12511:9;:42::i;18102:119::-;1592:7;1619:6;-1:-1:-1;;;;;1619:6:0;176:10;1767:23;1759:68;;;;-1:-1:-1;;;1759:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18184:19:0;;;::::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;-1:-1:-1;;18184:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18102:119::o;18229:180::-;1592:7;1619:6;-1:-1:-1;;;;;1619:6:0;176:10;1767:23;1759:68;;;;-1:-1:-1;;;1759:68:0;;;;;;;:::i;:::-;18345:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;18345:22:0;;::::1;::::0;;;::::1;::::0;;;18378:13:::1;:23:::0;18229:180::o;17849:123::-;1592:7;1619:6;-1:-1:-1;;;;;1619:6:0;176:10;1767:23;1759:68;;;;-1:-1:-1;;;1759:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17931:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;17931:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17849:123::o;1957:229::-;1592:7;1619:6;-1:-1:-1;;;;;1619:6:0;176:10;1767:23;1759:68;;;;-1:-1:-1;;;1759:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2060:22:0;::::1;2038:110;;;::::0;-1:-1:-1;;;2038:110:0;;6269:2:1;2038:110:0::1;::::0;::::1;6251:21:1::0;6308:2;6288:18;;;6281:30;6347:34;6327:18;;;6320:62;-1:-1:-1;;;6398:18:1;;;6391:36;6444:19;;2038:110:0::1;6067:402:1::0;2038:110:0::1;2159:19;2169:8;2159:9;:19::i;:::-;1957:229:::0;:::o;18540:91::-;1592:7;1619:6;-1:-1:-1;;;;;1619:6:0;176:10;1767:23;1759:68;;;;-1:-1:-1;;;1759:68:0;;;;;;;:::i;:::-;18608:7:::1;:15:::0;;-1:-1:-1;;;;;;18608:15:0::1;-1:-1:-1::0;;;;;18608:15:0;;;::::1;::::0;;;::::1;::::0;;18540:91::o;11961:337::-;-1:-1:-1;;;;;12054:19:0;;12046:68;;;;-1:-1:-1;;;12046:68:0;;6676:2:1;12046:68:0;;;6658:21:1;6715:2;6695:18;;;6688:30;6754:34;6734:18;;;6727:62;-1:-1:-1;;;6805:18:1;;;6798:34;6849:19;;12046:68:0;6474:400:1;12046:68:0;-1:-1:-1;;;;;12133:21:0;;12125:68;;;;-1:-1:-1;;;12125:68:0;;7081:2:1;12125:68:0;;;7063:21:1;7120:2;7100:18;;;7093:30;7159:34;7139:18;;;7132:62;-1:-1:-1;;;7210:18:1;;;7203:32;7252:19;;12125:68:0;6879:398:1;12125:68:0;-1:-1:-1;;;;;12206:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12258:32;;160:25:1;;;12258:32:0;;133:18:1;12258:32:0;;;;;;;11961:337;;;:::o;13045:1663::-;13166:4;-1:-1:-1;;;;;13191:20:0;;13183:70;;;;-1:-1:-1;;;13183:70:0;;7484:2:1;13183:70:0;;;7466:21:1;7523:2;7503:18;;;7496:30;7562:34;7542:18;;;7535:62;-1:-1:-1;;;7613:18:1;;;7606:35;7658:19;;13183:70:0;7282:401:1;13183:70:0;-1:-1:-1;;;;;13272:23:0;;13264:71;;;;-1:-1:-1;;;13264:71:0;;7890:2:1;13264:71:0;;;7872:21:1;7929:2;7909:18;;;7902:30;7968:34;7948:18;;;7941:62;-1:-1:-1;;;8019:18:1;;;8012:33;8062:19;;13264:71:0;7688:399:1;13264:71:0;13363:1;13354:6;:10;13346:64;;;;-1:-1:-1;;;13346:64:0;;8294:2:1;13346:64:0;;;8276:21:1;8333:2;8313:18;;;8306:30;8372:34;8352:18;;;8345:62;-1:-1:-1;;;8423:18:1;;;8416:39;8472:19;;13346:64:0;8092:405:1;13346:64:0;13427:6;;-1:-1:-1;;;13427:6:0;;;;13423:1278;;;13457:41;13472:6;13480:9;13491:6;13457:14;:41::i;:::-;13450:48;;;;13423:1278;-1:-1:-1;;;;;13536:17:0;;;;;;:9;:17;;;;;;;;13535:18;:43;;;;-1:-1:-1;;;;;;13558:20:0;;;;;;:9;:20;;;;;;;;13557:21;13535:43;13531:133;;;13607:7;;;;13599:49;;;;-1:-1:-1;;;13599:49:0;;8704:2:1;13599:49:0;;;8686:21:1;8743:2;8723:18;;;8716:30;8782:31;8762:18;;;8755:59;8831:18;;13599:49:0;8502:353:1;13599:49:0;13729:4;13680:28;10855:18;;;:9;:18;;;;;;13822:13;;13781:54;;;;;;;13874:51;;-1:-1:-1;13919:6:0;;-1:-1:-1;;;13919:6:0;;;;13918:7;13874:51;:93;;;;-1:-1:-1;;;;;;13947:20:0;;;;;;:12;:20;;;;;;;;13946:21;13874:93;:125;;;;-1:-1:-1;13988:11:0;;;;;;;13874:125;13852:228;;;14034:30;14043:20;14034:8;:30::i;:::-;-1:-1:-1;;;;;14120:17:0;;;14096:21;14120:17;;;:9;:17;;;;;;;14208:6;;14201:83;;-1:-1:-1;;;14201:83:0;;;;;9129:34:1;;;;9199:15;;;9179:18;;;9172:43;9231:18;;;9224:34;;;9274:18;;;9267:34;;;14120:17:0;14096:21;;;;;;14208:6;;14201:41;;9063:19:1;;14201:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14154:130;;;;;;14307:5;14299:14;;;;;;14348:22;14364:6;14348:13;:22;:::i;:::-;-1:-1:-1;;;;;14328:17:0;;;;;;:9;:17;;;;;:42;;;;14409:35;14338:6;14434:9;14409:16;:35::i;:::-;:115;;14490:34;14498:6;14506:9;14517:6;14490:7;:34::i;:::-;14409:115;;;14464:6;14409:115;-1:-1:-1;;;;;14564:20:0;;;;;;:9;:20;;;;;;14387:137;;-1:-1:-1;14564:37:0;;14387:137;14564:24;:37::i;:::-;-1:-1:-1;;;;;14541:20:0;;;;;;;:9;:20;;;;;;;:60;;;;14623:40;;;;;;;;;;14651:11;160:25:1;;148:2;133:18;;14:177;14623:40:0;;;;;;;;14685:4;14678:11;;;;;;;;;;;2731:226;2851:7;2887:12;2879:6;;;;2871:29;;;;-1:-1:-1;;;2871:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2911:9:0;2923:5;2927:1;2923;:5;:::i;:::-;2911:17;2731:226;-1:-1:-1;;;;;2731:226:0:o;2398:181::-;2456:7;;2488:5;2492:1;2488;:5;:::i;:::-;2476:17;;2517:1;2512;:6;;2504:46;;;;-1:-1:-1;;;2504:46:0;;10281:2:1;2504:46:0;;;10263:21:1;10320:2;10300:18;;;10293:30;10359:29;10339:18;;;10332:57;10406:18;;2504:46:0;10079:351:1;2194:173:0;2250:16;2269:6;;-1:-1:-1;;;;;2286:17:0;;;-1:-1:-1;;;;;;2286:17:0;;;;;;2319:40;;2269:6;;;;;;;2319:40;;2250:16;2319:40;2239:128;2194:173;:::o;14716:401::-;14880:90;;;;;;;;;;;-1:-1:-1;;;14880:90:0;;;;;;;;-1:-1:-1;;;;;14880:17:0;;14843:4;14880:17;;;:9;:17;;;;;;;:90;;14916:6;;14880:21;:90::i;:::-;-1:-1:-1;;;;;14860:17:0;;;;;;;:9;:17;;;;;;:110;;;;15004:20;;;;;;;:32;;15029:6;15004:24;:32::i;:::-;-1:-1:-1;;;;;14981:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15052:35;;;;;;;;;;15080:6;160:25:1;;148:2;133:18;;14:177;15052:35:0;;;;;;;;-1:-1:-1;15105:4:0;14716:401;;;;;:::o;16304:463::-;9084:6;:13;;-1:-1:-1;;;;9084:13:0;-1:-1:-1;;;9084:13:0;;;16411:12:::1;::::0;16395:11:::1;::::0;9084:13;;16395:29:::1;::::0;:11;:15:::1;:29::i;:::-;16373:51;;16441:11;16456:1;16441:16:::0;16437:29:::1;;16459:7;;;16437:29;16478:33;16495:15;16478:16;:33::i;:::-;16547:21;16585:18:::0;;16581:179:::1;;16628:15;::::0;-1:-1:-1;;;;;16628:15:0::1;16620:54;16654:19;16672:1;16654:14:::0;:19:::1;:::i;:::-;16620:54;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;16697:18:0::1;::::0;16689:59:::1;::::0;-1:-1:-1;;;;;16697:18:0;;::::1;::::0;16726:21:::1;16689:59:::0;::::1;;;::::0;16697:18:::1;16689:59:::0;16697:18;16689:59;16726:21;16697:18;16689:59;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16581:179;16362:405;;9108:1;-1:-1:-1::0;9120:6:0;:14;;-1:-1:-1;;;;9120:14:0;;;16304:463::o;15125:377::-;-1:-1:-1;;;;;15255:25:0;;15234:4;15255:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;15284:28:0;;;;;;:17;:28;;;;;;;;15255:57;15251:244;;;-1:-1:-1;15336:4:0;15329:11;;15251:244;-1:-1:-1;;;;;15362:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;15386:23:0;;;;;;:12;:23;;;;;;;;15362:47;15358:137;;;-1:-1:-1;15433:5:0;15426:12;;15358:137;-1:-1:-1;15478:5:0;15471:12;;15510:786;-1:-1:-1;;;;;15706:20:0;;15630:7;15706:20;;;:12;:20;;;;;;15630:7;;15706:20;;15702:289;;;15782:43;15810:14;;15782:23;15793:11;;15782:6;:10;;:23;;;;:::i;:::-;:27;;:43::i;:::-;15770:55;;15702:289;;;-1:-1:-1;;;;;15851:23:0;;;;;;:12;:23;;;;;;;;15847:144;;;15931:44;15960:14;;15931:24;15942:12;;15931:6;:10;;:24;;;;:::i;:44::-;15919:56;;15847:144;16011:13;;16007:226;;16090:4;16072:24;;;;:9;:24;;;;;;:79;;16123:9;16072:28;:79::i;:::-;16063:4;16045:24;;;;:9;:24;;;;;;;:106;;;;16175:42;;-1:-1:-1;;;;;16175:42:0;;;;;;;16207:9;160:25:1;;148:2;133:18;;14:177;16175:42:0;;;;;;;;16007:226;16256:21;:6;16267:9;16256:10;:21::i;16775:640::-;16925:16;;;16939:1;16925:16;;;;;;;;16901:21;;16925:16;;;;;;;;;;-1:-1:-1;16925:16:0;16901:40;;16970:4;16952;16957:1;16952:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16952:23:0;;;:7;;;;;;;;;;:23;;;;16996:9;;:16;;;-1:-1:-1;;;16996:16:0;;;;:9;;;;;:14;;:16;;;;;16952:7;;16996:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16986:4;16991:1;16986:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16986:26:0;;;:7;;;;;;;;;:26;17057:9;;17025:56;;17042:4;;17057:9;17069:11;17025:8;:56::i;:::-;17120:9;;:234;;-1:-1:-1;;;17120:234:0;;-1:-1:-1;;;;;17120:9:0;;;;:60;;:234;;17195:11;;17120:9;;17265:4;;17292;;17328:15;;17120:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17372:35;17389:11;17402:4;17372:35;;;;;;;:::i;:::-;;;;;;;;16830:585;16775:640;:::o;2965:250::-;3023:7;3047:1;3052;3047:6;3043:47;;-1:-1:-1;3077:1:0;3070:8;;3043:47;3102:9;3114:5;3118:1;3114;:5;:::i;:::-;3102:17;-1:-1:-1;3147:1:0;3138:5;3142:1;3102:17;3138:5;:::i;:::-;:10;3130:56;;;;-1:-1:-1;;;3130:56:0;;12942:2:1;3130:56:0;;;12924:21:1;12981:2;12961:18;;;12954:30;13020:34;13000:18;;;12993:62;-1:-1:-1;;;13071:18:1;;;13064:31;13112:19;;3130:56:0;12740:397:1;3223:132:0;3281:7;3308:39;3312:1;3315;3308:39;;;;;;;;;;;;;;;;;:3;:39::i;2587:136::-;2645:7;2672:43;2676:1;2679;2672:43;;;;;;;;;;;;;;;;;:3;:43::i;3363:265::-;3483:7;3518:12;3511:5;3503:28;;;;-1:-1:-1;;;3503:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3542:9:0;3554:5;3558:1;3554;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;957:131::-;-1:-1:-1;;;;;1032:31:1;;1022:42;;1012:70;;1078:1;1075;1068:12;1093:315;1161:6;1169;1222:2;1210:9;1201:7;1197:23;1193:32;1190:52;;;1238:1;1235;1228:12;1190:52;1277:9;1264:23;1296:31;1321:5;1296:31;:::i;:::-;1346:5;1398:2;1383:18;;;;1370:32;;-1:-1:-1;;;1093:315:1:o;1605:247::-;1664:6;1717:2;1705:9;1696:7;1692:23;1688:32;1685:52;;;1733:1;1730;1723:12;1685:52;1772:9;1759:23;1791:31;1816:5;1791:31;:::i;1857:456::-;1934:6;1942;1950;2003:2;1991:9;1982:7;1978:23;1974:32;1971:52;;;2019:1;2016;2009:12;1971:52;2058:9;2045:23;2077:31;2102:5;2077:31;:::i;:::-;2127:5;-1:-1:-1;2184:2:1;2169:18;;2156:32;2197:33;2156:32;2197:33;:::i;:::-;1857:456;;2249:7;;-1:-1:-1;;;2303:2:1;2288:18;;;;2275:32;;1857:456::o;2507:248::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;-1:-1:-1;;2675:23:1;;;2745:2;2730:18;;;2717:32;;-1:-1:-1;2507:248:1:o;2990:118::-;3076:5;3069:13;3062:21;3055:5;3052:32;3042:60;;3098:1;3095;3088:12;3113:382;3178:6;3186;3239:2;3227:9;3218:7;3214:23;3210:32;3207:52;;;3255:1;3252;3245:12;3207:52;3294:9;3281:23;3313:31;3338:5;3313:31;:::i;:::-;3363:5;-1:-1:-1;3420:2:1;3405:18;;3392:32;3433:30;3392:32;3433:30;:::i;:::-;3482:7;3472:17;;;3113:382;;;;;:::o;3500:388::-;3568:6;3576;3629:2;3617:9;3608:7;3604:23;3600:32;3597:52;;;3645:1;3642;3635:12;3597:52;3684:9;3671:23;3703:31;3728:5;3703:31;:::i;:::-;3753:5;-1:-1:-1;3810:2:1;3795:18;;3782:32;3823:33;3782:32;3823:33;:::i;3893:309::-;3958:6;3966;4019:2;4007:9;3998:7;3994:23;3990:32;3987:52;;;4035:1;4032;4025:12;3987:52;4074:9;4061:23;4093:28;4115:5;4093:28;:::i;4207:380::-;4286:1;4282:12;;;;4329;;;4350:61;;4404:4;4396:6;4392:17;4382:27;;4350:61;4457:2;4449:6;4446:14;4426:18;4423:38;4420:161;;4503:10;4498:3;4494:20;4491:1;4484:31;4538:4;4535:1;4528:15;4566:4;4563:1;4556:15;4420:161;;4207:380;;;:::o;4592:356::-;4794:2;4776:21;;;4813:18;;;4806:30;4872:34;4867:2;4852:18;;4845:62;4939:2;4924:18;;4592:356::o;9312:367::-;9397:6;9405;9413;9466:2;9454:9;9445:7;9441:23;9437:32;9434:52;;;9482:1;9479;9472:12;9434:52;9514:9;9508:16;9533:28;9555:5;9533:28;:::i;:::-;9625:2;9610:18;;9604:25;9669:2;9654:18;;;9648:25;9580:5;;9604:25;;-1:-1:-1;9648:25:1;9312:367;-1:-1:-1;;;9312:367:1:o;9684:127::-;9745:10;9740:3;9736:20;9733:1;9726:31;9776:4;9773:1;9766:15;9800:4;9797:1;9790:15;9816:128;9883:9;;;9904:11;;;9901:37;;;9918:18;;:::i;9949:125::-;10014:9;;;10035:10;;;10032:36;;;10048:18;;:::i;10435:217::-;10475:1;10501;10491:132;;10545:10;10540:3;10536:20;10533:1;10526:31;10580:4;10577:1;10570:15;10608:4;10605:1;10598:15;10491:132;-1:-1:-1;10637:9:1;;10435:217::o;10789:127::-;10850:10;10845:3;10841:20;10838:1;10831:31;10881:4;10878:1;10871:15;10905:4;10902:1;10895:15;10921:251;10991:6;11044:2;11032:9;11023:7;11019:23;11015:32;11012:52;;;11060:1;11057;11050:12;11012:52;11092:9;11086:16;11111:31;11136:5;11111:31;:::i;11177:461::-;11230:3;11268:5;11262:12;11295:6;11290:3;11283:19;11321:4;11350:2;11345:3;11341:12;11334:19;;11387:2;11380:5;11376:14;11408:1;11418:195;11432:6;11429:1;11426:13;11418:195;;;11497:13;;-1:-1:-1;;;;;11493:39:1;11481:52;;11553:12;;;;11588:15;;;;11529:1;11447:9;11418:195;;;-1:-1:-1;11629:3:1;;11177:461;-1:-1:-1;;;;;11177:461:1:o;11643:582::-;11942:6;11931:9;11924:25;11985:6;11980:2;11969:9;11965:18;11958:34;12028:3;12023:2;12012:9;12008:18;12001:31;11905:4;12049:57;12101:3;12090:9;12086:19;12078:6;12049:57;:::i;:::-;-1:-1:-1;;;;;12142:32:1;;;;12137:2;12122:18;;12115:60;-1:-1:-1;12206:3:1;12191:19;12184:35;12041:65;11643:582;-1:-1:-1;;;11643:582:1:o;12230:332::-;12437:6;12426:9;12419:25;12480:2;12475;12464:9;12460:18;12453:30;12400:4;12500:56;12552:2;12541:9;12537:18;12529:6;12500:56;:::i;:::-;12492:64;12230:332;-1:-1:-1;;;;12230:332:1:o;12567:168::-;12640:9;;;12671;;12688:15;;;12682:22;;12668:37;12658:71;;12709:18;;:::i

Swarm Source

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