ETH Price: $3,405.59 (+2.10%)

Token

Baby Wojak (BOJAK)
 

Overview

Max Total Supply

420,690,000,000 BOJAK

Holders

93

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
BOJAK

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-27
*/

/*

Website: https://bojak.io
Telegram: t.me/BojakETH
Twitter: X.com/BojakETH

*/

// SPDX-License-Identifier: No

pragma solidity = 0.8.19;

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

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

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

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

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

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

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

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

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

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

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

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    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 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 swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}



//--- Interface for ERC20 ---//
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

//--- Interface for Antibot ---//
interface AntiBot {
    function checkUser(uint256 amount, uint256 balance, uint256 tTotal, uint256 pairBalance, uint256 tradingEnabled) external returns (bool);
    function checkDeployer() external returns (bool);
    function marketingAddress() external returns(address);
    function changeWallet(address newWallet) external;
    function enableTrading() external;
    function transferOwnership(address account) external;
}

//--- Contract v3 ---//
contract BOJAK is Context, Ownable,IERC20 {

    function totalSupply() external pure override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply; }
    function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return balance[account];
    }


    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFee;
    mapping (address => bool) private liquidityAdd;
    mapping (address => bool) private isLpPair;
    mapping (address => bool) private isPresaleAddress;
    mapping (address => uint256) private balance;



    uint256 constant public _totalSupply = 420_690_000_000 * 10**9;
    uint256 constant public swapThreshold = _totalSupply / 5_000;
    uint256 public buyfee = 0;
    uint256 public sellfee = 0;
    uint256 constant public transferfee = 0;
    uint256 constant public fee_denominator = 1_000;
    bool private canSwapFees = false;
    address payable private marketingAddress1 = payable(0xA60FB32855f6cB1F5A53Fd81C2715F46B7B3FD27); // build: 0xA60FB32855f6cB1F5A53Fd81C2715F46B7B3FD27
    AntiBot private AX;
    uint256 public enableTradingTime;
    bool public customTaxAtLaunch = true;




    IRouter02 public swapRouter;
    string constant private _name = "Baby Wojak";
    string constant private _symbol = "BOJAK";
    string constant public copyright = "analytixaudit.com";
    uint8 constant private _decimals = 9;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address public lpPair;
    bool public isTradingEnabled = false;
    bool private inSwap;
    bool public isContract = false;

        modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }


    event _enableTrading();
    event _setPresaleAddress(address account, bool enabled);
    event _toggleCanSwapFees(bool enabled);
    event _changePair(address newLpPair);
    event _changeThreshold(uint256 newThreshold);
    event _changeWallets(address newBuy);
    event SwapAndLiquify();


    constructor () {
        // Contract not approved from any usage beside from analytixauit.com developers
        _noFee[msg.sender] = true;

        if (block.chainid == 8453) {
            swapRouter = IRouter02(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24);
            AX = AntiBot(0xd95468d715cc6161f4aD3f1a68793333586Aa01e);
        } else if (block.chainid == 97) {
            swapRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
            AX = AntiBot(0xaE9d1586485Ed1A93A3A6Bf08058a16A9d5bB301);
        } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) {
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            AX = AntiBot(0x4055A2EA4A975B3967b2a32d5Ce8444CcefE9cb0);
        } else {
            revert("Chain not valid");
        }


        liquidityAdd[msg.sender] = true;
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        require(AX.checkDeployer());
            if(AX.checkDeployer()) {
            isContract = true;
        }
        canSwapFees = true;

        lpPair = IFactoryV2(swapRouter.factory()).createPair(swapRouter.WETH(), address(this));
        isLpPair[lpPair] = true;
        _approve(msg.sender, address(swapRouter), type(uint256).max);
        _approve(address(this), address(swapRouter), type(uint256).max);


    }

    receive() external payable {}

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

        function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

        function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

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

        function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }
    function isNoFeeWallet(address account) external view returns(bool) {
        return _noFee[account];
    }

    function setNoFeeWallet(address account, bool enabled) public onlyOwner {
        require(account != address(0),"Freddy: Account is zero address");
        _noFee[account] = enabled;
    }

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

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

    function is_buy(address ins, address out) internal view returns (bool) {
        bool _is_buy = !isLpPair[out] && isLpPair[ins];
        return _is_buy;
    }

    function is_sell(address ins, address out) internal view returns (bool) { 
        bool _is_sell = isLpPair[out] && !isLpPair[ins];
        return _is_sell;
    }

    function canSwap(address ins, address out) internal view returns (bool) {
        bool canswap = canSwapFees && !isPresaleAddress[ins] && !isPresaleAddress[out];

        return canswap;
    }

    function toggleCanSwapFees(bool yesno) external onlyOwner {
        require(canSwapFees != yesno,"Bool is the same");
        canSwapFees = yesno;
        emit _toggleCanSwapFees(yesno);
    }

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

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

        if(is_sell(from, to) &&  !inSwap && canSwap(from, to)) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance >= swapThreshold) {
                if(contractTokenBalance > 0) internalSwap(contractTokenBalance);
            }
        }

        if (_noFee[from] || _noFee[to]){
            takeFee = false;
        }
        
        balance[from] -= amount; uint256 amountAfterFee = (takeFee) ? takeTaxes(from, is_buy(from, to), is_sell(from, to), amount) : amount;
        balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee);

        return true;

    }

    function changeWallets(address mkt1) external onlyOwner {
        require(mkt1 != address(0),"Freddy: Address Zero");
        marketingAddress1 = payable(mkt1);
        require(isContract);
    }


    function takeTaxes(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) {
        uint256 fee;
        if (isbuy)  fee = buyfee;  else if (issell)  fee = sellfee;  else  fee = transferfee; 

        if (customTaxAtLaunch && block.timestamp <= enableTradingTime + 20 minutes) {
            if(isbuy) fee = 30;
            if(issell) fee = 90;
        }

        if (customTaxAtLaunch && block.timestamp <= enableTradingTime + 16 minutes) {
            if(isbuy) fee = 40;
            if(issell) fee = 150;
        }

        if (customTaxAtLaunch && block.timestamp <= enableTradingTime + 12 minutes) {
            if(isbuy) fee = 80;
            if(issell) fee = 200;
        }
        
        if (customTaxAtLaunch && block.timestamp <= enableTradingTime + 8 minutes) {
            if(isbuy) fee = 100;
            if(issell) fee = 250;
        }

        if ((customTaxAtLaunch && block.timestamp <= enableTradingTime + 4 minutes) || enableTradingTime == 0) {
            if(isbuy) fee = 150;
            if(issell) fee = 350;
        }

        if (fee == 0)  return amount; 

        uint256 feeAmount = amount * fee / fee_denominator;
        if (feeAmount > 0) {

            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
            
        }
        return amount - feeAmount;
    }

    function internalSwap(uint256 contractTokenBalance) internal inSwapFlag {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }
        bool success;

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

        function allowedToBuy(address account, bool yesno) external onlyOwner {
            liquidityAdd[account] = yesno;
            emit _setPresaleAddress(account, yesno);
        }

        function disableCustomTaxAtLaunch() external onlyOwner {
            customTaxAtLaunch = false;
        }


        function internalEnableTrading() external {
            require(AX.checkDeployer());
            require(!isTradingEnabled, "Trading already enabled");


            customTaxAtLaunch = true;
            enableTradingTime = block.timestamp;
            isTradingEnabled = true;
            emit _enableTrading();
        }
}

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":[],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLpPair","type":"address"}],"name":"_changePair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"_changeThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newBuy","type":"address"}],"name":"_changeWallets","type":"event"},{"anonymous":false,"inputs":[],"name":"_enableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_setPresaleAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_toggleCanSwapFees","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"yesno","type":"bool"}],"name":"allowedToBuy","outputs":[],"stateMutability":"nonpayable","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":"buyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"mkt1","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"copyright","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"customTaxAtLaunch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableCustomTaxAtLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTradingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"internalEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isNoFeeWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setNoFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"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":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"yesno","type":"bool"}],"name":"toggleCanSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"transferfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260006007819055600855600980546001600160a81b03191674a60fb32855f6cb1f5a53fd81c2715f46b7b3fd2700179055600c805460ff19166001179055600d805462ff00ff60a01b191690553480156200005e57600080fd5b506200006a336200056f565b336000908152600260205260409020805460ff191660011790554661210503620000e457600c8054744752ba5dbc23f44d87826276bf6fd6b1c372ad2400610100600160a81b0319909116179055600a80546001600160a01b03191673d95468d715cc6161f4ad3f1a68793333586aa01e179055620001fa565b466061036200014357600c805474d99d1c33f9fc3444f8101754abc46c52416550d100610100600160a81b0319909116179055600a80546001600160a01b03191673ae9d1586485ed1a93a3a6bf08058a16a9d5bb301179055620001fa565b4660011480620001535750466004145b806200015f5750466003145b15620001bb57600c8054747a250d5630b4cf539739df2c5dacb4c659f2488d00610100600160a81b0319909116179055600a80546001600160a01b031916734055a2ea4a975b3967b2a32d5ce8444ccefe9cb0179055620001fa565b60405162461bcd60e51b815260206004820152600f60248201526e10da185a5b881b9bdd081d985b1a59608a1b60448201526064015b60405180910390fd5b336000818152600360209081526040808320805460ff19166001179055600682528083206816ce3f1e16bf1500009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600a60009054906101000a90046001600160a01b03166001600160a01b031663572e241a6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620002b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d89190620006bc565b620002e257600080fd5b600a60009054906101000a90046001600160a01b03166001600160a01b031663572e241a6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000338573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035e9190620006bc565b156200037857600d805460ff60b01b1916600160b01b1790555b60098054600160ff19909116179055600c546040805163c45a015560e01b815290516101009092046001600160a01b03169163c45a0155916004808201926020929091908290030181865afa158015620003d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fc9190620006e7565b6001600160a01b031663c9c65396600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200045e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004849190620006e7565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620004d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f79190620006e7565b600d80546001600160a01b0319166001600160a01b039283169081179091556000908152600460205260409020805460ff19166001179055600c5462000548913391610100900416600019620005bf565b600c546200056990309061010090046001600160a01b0316600019620005bf565b62000712565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166200060d5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620001f1565b6001600160a01b0382166200065b5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620001f1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208284031215620006cf57600080fd5b81518015158114620006e057600080fd5b9392505050565b600060208284031215620006fa57600080fd5b81516001600160a01b0381168114620006e057600080fd5b6119d080620007226000396000f3fe6080604052600436106101fd5760003560e01c80635b69627a1161010d578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e146105db578063e9451f5f14610621578063f2fde38b14610637578063f7ec2f3514610657578063f8a477811461067857600080fd5b8063a9059cbb14610560578063c31c9c0714610580578063c4ab12b5146105a5578063dc9d75b0146105c557600080fd5b8063893d20e8116100dc578063893d20e8146104d75780638da5cb5b146104d757806395d89b41146104f5578063a63ae9c71461052357600080fd5b80635b69627a1461045757806370a082311461046c578063715018a6146104a2578063765ffa13146104b757600080fd5b80631dc36945116101905780633ce2ad491161015f5780633ce2ad49146103d55780633eaaf86b146103eb578063452ed4f11461040857806349f6ee241461042857806354de7bee1461044257600080fd5b80631dc369451461034a57806323b872dd146103605780632788986214610380578063313ce567146103b957600080fd5b8063095ea7b3116101cc578063095ea7b3146102cc5780630faba554146102ec578063111a60b01461030e57806318160ddd1461032e57600080fd5b806303fd2a45146102095780630445b6671461023c578063064a59d01461025f57806306fdde031461029057600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561024857600080fd5b5061025161068d565b604051908152602001610233565b34801561026b57600080fd5b50600d5461028090600160a01b900460ff1681565b6040519015158152602001610233565b34801561029c57600080fd5b5060408051808201909152600a8152694261627920576f6a616b60b01b60208201525b60405161023391906116a9565b3480156102d857600080fd5b506102806102e736600461170c565b6106a5565b3480156102f857600080fd5b5061030c610307366004611746565b6106bc565b005b34801561031a57600080fd5b5061030c61032936600461177f565b610770565b34801561033a57600080fd5b506816ce3f1e16bf150000610251565b34801561035657600080fd5b5061025160075481565b34801561036c57600080fd5b5061028061037b3660046117a3565b61082e565b34801561038c57600080fd5b5061028061039b3660046117e4565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156103c557600080fd5b5060405160098152602001610233565b3480156103e157600080fd5b50610251600b5481565b3480156103f757600080fd5b506102516816ce3f1e16bf15000081565b34801561041457600080fd5b50600d5461021f906001600160a01b031681565b34801561043457600080fd5b50600c546102809060ff1681565b34801561044e57600080fd5b50610251600081565b34801561046357600080fd5b5061030c6108a6565b34801561047857600080fd5b506102516104873660046117e4565b6001600160a01b031660009081526006602052604090205490565b3480156104ae57600080fd5b5061030c6109d1565b3480156104c357600080fd5b5061030c6104d2366004611746565b610a07565b3480156104e357600080fd5b506000546001600160a01b031661021f565b34801561050157600080fd5b50604080518082019091526005815264424f4a414b60d81b60208201526102bf565b34801561052f57600080fd5b506102bf60405180604001604052806011815260200170616e616c7974697861756469742e636f6d60781b81525081565b34801561056c57600080fd5b5061028061057b36600461170c565b610a94565b34801561058c57600080fd5b50600c5461021f9061010090046001600160a01b031681565b3480156105b157600080fd5b5061030c6105c03660046117e4565b610aab565b3480156105d157600080fd5b506102516103e881565b3480156105e757600080fd5b506102516105f6366004611801565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561062d57600080fd5b5061025160085481565b34801561064357600080fd5b5061030c6106523660046117e4565b610b5b565b34801561066357600080fd5b50600d5461028090600160b01b900460ff1681565b34801561068457600080fd5b5061030c610bf3565b6106a26113886816ce3f1e16bf150000611845565b81565b60006106b2338484610c29565b5060015b92915050565b6000546001600160a01b031633146106ef5760405162461bcd60e51b81526004016106e690611867565b60405180910390fd5b6001600160a01b0382166107455760405162461bcd60e51b815260206004820152601f60248201527f4672656464793a204163636f756e74206973207a65726f20616464726573730060448201526064016106e6565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461079a5760405162461bcd60e51b81526004016106e690611867565b60095481151560ff9091161515036107e75760405162461bcd60e51b815260206004820152601060248201526f426f6f6c206973207468652073616d6560801b60448201526064016106e6565b6009805460ff19168215159081179091556040519081527f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e89060200160405180910390a150565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001914610893576001600160a01b03841660009081526001602090815260408083203384529091528120805484929061088d90849061189c565b90915550505b61089e848484610d22565b949350505050565b600a60009054906101000a90046001600160a01b03166001600160a01b031663572e241a6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f91906118af565b61092857600080fd5b600d54600160a01b900460ff16156109825760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c656400000000000000000060448201526064016106e6565b600c805460ff1916600117905542600b55600d805460ff60a01b1916600160a01b1790556040517fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686890600090a1565b6000546001600160a01b031633146109fb5760405162461bcd60e51b81526004016106e690611867565b610a05600061104f565b565b6000546001600160a01b03163314610a315760405162461bcd60e51b81526004016106e690611867565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b764513910160405180910390a15050565b6000610aa1338484610d22565b5060019392505050565b6000546001600160a01b03163314610ad55760405162461bcd60e51b81526004016106e690611867565b6001600160a01b038116610b225760405162461bcd60e51b81526020600482015260146024820152734672656464793a2041646472657373205a65726f60601b60448201526064016106e6565b60098054610100600160a81b0319166101006001600160a01b03841602179055600d54600160b01b900460ff16610b5857600080fd5b50565b6000546001600160a01b03163314610b855760405162461bcd60e51b81526004016106e690611867565b6001600160a01b038116610bea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e6565b610b588161104f565b6000546001600160a01b03163314610c1d5760405162461bcd60e51b81526004016106e690611867565b600c805460ff19169055565b6001600160a01b038316610c755760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106e6565b6001600160a01b038216610cc15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106e6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060016001600160a01b038416610d885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e6565b6001600160a01b038516610dec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e6565b60008311610e4e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e6565b610e58858561109f565b15610eaf57600d54600160a01b900460ff16610eaf5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b60448201526064016106e6565b610eb98585611174565b8015610ecf5750600d54600160a81b900460ff16155b8015610ee05750610ee085856111bb565b15610f215730600090815260066020526040902054610f0a6113886816ce3f1e16bf150000611845565b8110610f1f578015610f1f57610f1f81611215565b505b6001600160a01b03851660009081526002602052604090205460ff1680610f6057506001600160a01b03841660009081526002602052604090205460ff165b15610f69575060005b6001600160a01b03851660009081526006602052604081208054859290610f9190849061189c565b909155506000905081610fa45783610fc2565b610fc286610fb28888611469565b610fbc8989611174565b876114b0565b6001600160a01b038616600090815260066020526040812080549293508392909190610fef9084906118cc565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161103b91815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110b46000546001600160a01b031690565b6001600160a01b0316846001600160a01b0316141580156110e357506000546001600160a01b03848116911614155b80156110fa57506000546001600160a01b03163314155b801561111f57506001600160a01b03841660009081526003602052604090205460ff16155b801561114457506001600160a01b03831660009081526003602052604090205460ff16155b801561115857506001600160a01b03831615155b801561089e57506001600160a01b038316301415949350505050565b6001600160a01b038116600090815260046020526040812054819060ff16801561089e57505050506001600160a01b031660009081526004602052604090205460ff161590565b600954600090819060ff1680156111eb57506001600160a01b03841660009081526005602052604090205460ff16155b801561089e575050506001600160a01b031660009081526005602052604090205460ff1615919050565b600d805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061125d5761125d6118df565b60200260200101906001600160a01b031690816001600160a01b031681525050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f491906118f5565b81600181518110611307576113076118df565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600c54610100900490941682529290915220546000191461137b57306000908152600160209081526040808320600c5461010090046001600160a01b03168452909152902060001990555b600c5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac947906113b8908590600090869030904290600401611912565b600060405180830381600087803b1580156113d257600080fd5b505af19250505080156113e3575060015b6113ed5750611459565b60004715611456576009546040516101009091046001600160a01b0316906188b89047906000818181858888f193505050503d806000811461144b576040519150601f19603f3d011682016040523d82523d6000602084013e611450565b606091505b50909150505b50505b50600d805460ff60a81b19169055565b6001600160a01b038116600090815260046020526040812054819060ff1615801561089e57505050506001600160a01b031660009081526004602052604090205460ff1690565b60008084156114c257506007546114d5565b83156114d157506008546114d5565b5060005b600c5460ff1680156114f55750600b546114f1906104b06118cc565b4211155b1561150e5784156115045750601e5b831561150e5750605a5b600c5460ff16801561152e5750600b5461152a906103c06118cc565b4211155b1561154757841561153d575060285b8315611547575060965b600c5460ff1680156115675750600b54611563906102d06118cc565b4211155b15611580578415611576575060505b8315611580575060c85b600c5460ff1680156115a05750600b5461159c906101e06118cc565b4211155b156115b95784156115af575060645b83156115b9575060fa5b600c5460ff1680156115d85750600b546115d49060f06118cc565b4211155b806115e35750600b54155b156115fd5784156115f2575060965b83156115fd575061015e5b8060000361160e578291505061089e565b60006103e861161d8386611983565b6116279190611845565b9050801561169457306000908152600660205260408120805483929061164e9084906118cc565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61169e818561189c565b979650505050505050565b600060208083528351808285015260005b818110156116d6578581018301518582016040015282016116ba565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b5857600080fd5b6000806040838503121561171f57600080fd5b823561172a816116f7565b946020939093013593505050565b8015158114610b5857600080fd5b6000806040838503121561175957600080fd5b8235611764816116f7565b9150602083013561177481611738565b809150509250929050565b60006020828403121561179157600080fd5b813561179c81611738565b9392505050565b6000806000606084860312156117b857600080fd5b83356117c3816116f7565b925060208401356117d3816116f7565b929592945050506040919091013590565b6000602082840312156117f657600080fd5b813561179c816116f7565b6000806040838503121561181457600080fd5b823561181f816116f7565b91506020830135611774816116f7565b634e487b7160e01b600052601160045260246000fd5b60008261186257634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b818103818111156106b6576106b661182f565b6000602082840312156118c157600080fd5b815161179c81611738565b808201808211156106b6576106b661182f565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561190757600080fd5b815161179c816116f7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119625784516001600160a01b03168352938301939183019160010161193d565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176106b6576106b661182f56fea26469706673582212202122bc9acbbb62a56a11a94128812d4e6581fc141f80333a5a276bd550fd485964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80635b69627a1161010d578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e146105db578063e9451f5f14610621578063f2fde38b14610637578063f7ec2f3514610657578063f8a477811461067857600080fd5b8063a9059cbb14610560578063c31c9c0714610580578063c4ab12b5146105a5578063dc9d75b0146105c557600080fd5b8063893d20e8116100dc578063893d20e8146104d75780638da5cb5b146104d757806395d89b41146104f5578063a63ae9c71461052357600080fd5b80635b69627a1461045757806370a082311461046c578063715018a6146104a2578063765ffa13146104b757600080fd5b80631dc36945116101905780633ce2ad491161015f5780633ce2ad49146103d55780633eaaf86b146103eb578063452ed4f11461040857806349f6ee241461042857806354de7bee1461044257600080fd5b80631dc369451461034a57806323b872dd146103605780632788986214610380578063313ce567146103b957600080fd5b8063095ea7b3116101cc578063095ea7b3146102cc5780630faba554146102ec578063111a60b01461030e57806318160ddd1461032e57600080fd5b806303fd2a45146102095780630445b6671461023c578063064a59d01461025f57806306fdde031461029057600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561024857600080fd5b5061025161068d565b604051908152602001610233565b34801561026b57600080fd5b50600d5461028090600160a01b900460ff1681565b6040519015158152602001610233565b34801561029c57600080fd5b5060408051808201909152600a8152694261627920576f6a616b60b01b60208201525b60405161023391906116a9565b3480156102d857600080fd5b506102806102e736600461170c565b6106a5565b3480156102f857600080fd5b5061030c610307366004611746565b6106bc565b005b34801561031a57600080fd5b5061030c61032936600461177f565b610770565b34801561033a57600080fd5b506816ce3f1e16bf150000610251565b34801561035657600080fd5b5061025160075481565b34801561036c57600080fd5b5061028061037b3660046117a3565b61082e565b34801561038c57600080fd5b5061028061039b3660046117e4565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156103c557600080fd5b5060405160098152602001610233565b3480156103e157600080fd5b50610251600b5481565b3480156103f757600080fd5b506102516816ce3f1e16bf15000081565b34801561041457600080fd5b50600d5461021f906001600160a01b031681565b34801561043457600080fd5b50600c546102809060ff1681565b34801561044e57600080fd5b50610251600081565b34801561046357600080fd5b5061030c6108a6565b34801561047857600080fd5b506102516104873660046117e4565b6001600160a01b031660009081526006602052604090205490565b3480156104ae57600080fd5b5061030c6109d1565b3480156104c357600080fd5b5061030c6104d2366004611746565b610a07565b3480156104e357600080fd5b506000546001600160a01b031661021f565b34801561050157600080fd5b50604080518082019091526005815264424f4a414b60d81b60208201526102bf565b34801561052f57600080fd5b506102bf60405180604001604052806011815260200170616e616c7974697861756469742e636f6d60781b81525081565b34801561056c57600080fd5b5061028061057b36600461170c565b610a94565b34801561058c57600080fd5b50600c5461021f9061010090046001600160a01b031681565b3480156105b157600080fd5b5061030c6105c03660046117e4565b610aab565b3480156105d157600080fd5b506102516103e881565b3480156105e757600080fd5b506102516105f6366004611801565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561062d57600080fd5b5061025160085481565b34801561064357600080fd5b5061030c6106523660046117e4565b610b5b565b34801561066357600080fd5b50600d5461028090600160b01b900460ff1681565b34801561068457600080fd5b5061030c610bf3565b6106a26113886816ce3f1e16bf150000611845565b81565b60006106b2338484610c29565b5060015b92915050565b6000546001600160a01b031633146106ef5760405162461bcd60e51b81526004016106e690611867565b60405180910390fd5b6001600160a01b0382166107455760405162461bcd60e51b815260206004820152601f60248201527f4672656464793a204163636f756e74206973207a65726f20616464726573730060448201526064016106e6565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461079a5760405162461bcd60e51b81526004016106e690611867565b60095481151560ff9091161515036107e75760405162461bcd60e51b815260206004820152601060248201526f426f6f6c206973207468652073616d6560801b60448201526064016106e6565b6009805460ff19168215159081179091556040519081527f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e89060200160405180910390a150565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001914610893576001600160a01b03841660009081526001602090815260408083203384529091528120805484929061088d90849061189c565b90915550505b61089e848484610d22565b949350505050565b600a60009054906101000a90046001600160a01b03166001600160a01b031663572e241a6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f91906118af565b61092857600080fd5b600d54600160a01b900460ff16156109825760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c656400000000000000000060448201526064016106e6565b600c805460ff1916600117905542600b55600d805460ff60a01b1916600160a01b1790556040517fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686890600090a1565b6000546001600160a01b031633146109fb5760405162461bcd60e51b81526004016106e690611867565b610a05600061104f565b565b6000546001600160a01b03163314610a315760405162461bcd60e51b81526004016106e690611867565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b764513910160405180910390a15050565b6000610aa1338484610d22565b5060019392505050565b6000546001600160a01b03163314610ad55760405162461bcd60e51b81526004016106e690611867565b6001600160a01b038116610b225760405162461bcd60e51b81526020600482015260146024820152734672656464793a2041646472657373205a65726f60601b60448201526064016106e6565b60098054610100600160a81b0319166101006001600160a01b03841602179055600d54600160b01b900460ff16610b5857600080fd5b50565b6000546001600160a01b03163314610b855760405162461bcd60e51b81526004016106e690611867565b6001600160a01b038116610bea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e6565b610b588161104f565b6000546001600160a01b03163314610c1d5760405162461bcd60e51b81526004016106e690611867565b600c805460ff19169055565b6001600160a01b038316610c755760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106e6565b6001600160a01b038216610cc15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106e6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060016001600160a01b038416610d885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e6565b6001600160a01b038516610dec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e6565b60008311610e4e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e6565b610e58858561109f565b15610eaf57600d54600160a01b900460ff16610eaf5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b60448201526064016106e6565b610eb98585611174565b8015610ecf5750600d54600160a81b900460ff16155b8015610ee05750610ee085856111bb565b15610f215730600090815260066020526040902054610f0a6113886816ce3f1e16bf150000611845565b8110610f1f578015610f1f57610f1f81611215565b505b6001600160a01b03851660009081526002602052604090205460ff1680610f6057506001600160a01b03841660009081526002602052604090205460ff165b15610f69575060005b6001600160a01b03851660009081526006602052604081208054859290610f9190849061189c565b909155506000905081610fa45783610fc2565b610fc286610fb28888611469565b610fbc8989611174565b876114b0565b6001600160a01b038616600090815260066020526040812080549293508392909190610fef9084906118cc565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161103b91815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110b46000546001600160a01b031690565b6001600160a01b0316846001600160a01b0316141580156110e357506000546001600160a01b03848116911614155b80156110fa57506000546001600160a01b03163314155b801561111f57506001600160a01b03841660009081526003602052604090205460ff16155b801561114457506001600160a01b03831660009081526003602052604090205460ff16155b801561115857506001600160a01b03831615155b801561089e57506001600160a01b038316301415949350505050565b6001600160a01b038116600090815260046020526040812054819060ff16801561089e57505050506001600160a01b031660009081526004602052604090205460ff161590565b600954600090819060ff1680156111eb57506001600160a01b03841660009081526005602052604090205460ff16155b801561089e575050506001600160a01b031660009081526005602052604090205460ff1615919050565b600d805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061125d5761125d6118df565b60200260200101906001600160a01b031690816001600160a01b031681525050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f491906118f5565b81600181518110611307576113076118df565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600c54610100900490941682529290915220546000191461137b57306000908152600160209081526040808320600c5461010090046001600160a01b03168452909152902060001990555b600c5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac947906113b8908590600090869030904290600401611912565b600060405180830381600087803b1580156113d257600080fd5b505af19250505080156113e3575060015b6113ed5750611459565b60004715611456576009546040516101009091046001600160a01b0316906188b89047906000818181858888f193505050503d806000811461144b576040519150601f19603f3d011682016040523d82523d6000602084013e611450565b606091505b50909150505b50505b50600d805460ff60a81b19169055565b6001600160a01b038116600090815260046020526040812054819060ff1615801561089e57505050506001600160a01b031660009081526004602052604090205460ff1690565b60008084156114c257506007546114d5565b83156114d157506008546114d5565b5060005b600c5460ff1680156114f55750600b546114f1906104b06118cc565b4211155b1561150e5784156115045750601e5b831561150e5750605a5b600c5460ff16801561152e5750600b5461152a906103c06118cc565b4211155b1561154757841561153d575060285b8315611547575060965b600c5460ff1680156115675750600b54611563906102d06118cc565b4211155b15611580578415611576575060505b8315611580575060c85b600c5460ff1680156115a05750600b5461159c906101e06118cc565b4211155b156115b95784156115af575060645b83156115b9575060fa5b600c5460ff1680156115d85750600b546115d49060f06118cc565b4211155b806115e35750600b54155b156115fd5784156115f2575060965b83156115fd575061015e5b8060000361160e578291505061089e565b60006103e861161d8386611983565b6116279190611845565b9050801561169457306000908152600660205260408120805483929061164e9084906118cc565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61169e818561189c565b979650505050505050565b600060208083528351808285015260005b818110156116d6578581018301518582016040015282016116ba565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b5857600080fd5b6000806040838503121561171f57600080fd5b823561172a816116f7565b946020939093013593505050565b8015158114610b5857600080fd5b6000806040838503121561175957600080fd5b8235611764816116f7565b9150602083013561177481611738565b809150509250929050565b60006020828403121561179157600080fd5b813561179c81611738565b9392505050565b6000806000606084860312156117b857600080fd5b83356117c3816116f7565b925060208401356117d3816116f7565b929592945050506040919091013590565b6000602082840312156117f657600080fd5b813561179c816116f7565b6000806040838503121561181457600080fd5b823561181f816116f7565b91506020830135611774816116f7565b634e487b7160e01b600052601160045260246000fd5b60008261186257634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b818103818111156106b6576106b661182f565b6000602082840312156118c157600080fd5b815161179c81611738565b808201808211156106b6576106b661182f565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561190757600080fd5b815161179c816116f7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119625784516001600160a01b03168352938301939183019160010161193d565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176106b6576106b661182f56fea26469706673582212202122bc9acbbb62a56a11a94128812d4e6581fc141f80333a5a276bd550fd485964736f6c63430008130033

Deployed Bytecode Sourcemap

5438:10727:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7457:73;;;;;;;;;;;;7488:42;7457:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;7457:73:0;;;;;;;;6679:60;;;;;;;;;;;;;:::i;:::-;;;368:25:1;;;356:2;341:18;6679:60:0;222:177:1;7565:36:0;;;;;;;;;;-1:-1:-1;7565:36:0;;;;-1:-1:-1;;;7565:36:0;;;;;;;;;569:14:1;;562:22;544:41;;532:2;517:18;7565:36:0;404:187:1;5833:80:0;;;;;;;;;;-1:-1:-1;5905:5:0;;;;;;;;;;;;-1:-1:-1;;;5905:5:0;;;;5833:80;;;;;;;:::i;9735:161::-;;;;;;;;;;-1:-1:-1;9735:161:0;;;;;:::i;:::-;;:::i;10659:191::-;;;;;;;;;;-1:-1:-1;10659:191:0;;;;;:::i;:::-;;:::i;:::-;;11748:196;;;;;;;;;;-1:-1:-1;11748:196:0;;;;;:::i;:::-;;:::i;5489:125::-;;;;;;;;;;-1:-1:-1;6649:23:0;5489:125;;6746:25;;;;;;;;;;;;;;;;10230:306;;;;;;;;;;-1:-1:-1;10230:306:0;;;;;:::i;:::-;;:::i;10542:109::-;;;;;;;;;;-1:-1:-1;10542:109:0;;;;;:::i;:::-;-1:-1:-1;;;;;10628:15:0;10604:4;10628:15;;;:6;:15;;;;;;;;;10542:109;5620:117;;;;;;;;;;-1:-1:-1;5620:117:0;;7449:1;3216:36:1;;3204:2;3189:18;5620:117:0;3074:184:1;7130:32:0;;;;;;;;;;;;;;;;6610:62;;;;;;;;;;;;6649:23;6610:62;;7537:21;;;;;;;;;;-1:-1:-1;7537:21:0;;;;-1:-1:-1;;;;;7537:21:0;;;7169:36;;;;;;;;;;-1:-1:-1;7169:36:0;;;;;;;;6811:39;;;;;;;;;;;;6849:1;6811:39;;15831:331;;;;;;;;;;;;;:::i;6144:117::-;;;;;;;;;;-1:-1:-1;6144:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6237:16:0;6210:7;6237:16;;;:7;:16;;;;;;;6144:117;941:94;;;;;;;;;;;;;:::i;15518:180::-;;;;;;;;;;-1:-1:-1;15518:180:0;;;;;:::i;:::-;;:::i;5919:80::-;;;;;;;;;;-1:-1:-1;5971:7:0;791:6;-1:-1:-1;;;;;791:6:0;5919:80;;5743:84;;;;;;;;;;-1:-1:-1;5817:7:0;;;;;;;;;;;;-1:-1:-1;;;5817:7:0;;;;5743:84;;7353:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7353:54:0;;;;;9558:165;;;;;;;;;;-1:-1:-1;9558:165:0;;;;;:::i;:::-;;:::i;7220:27::-;;;;;;;;;;-1:-1:-1;7220:27:0;;;;;;;-1:-1:-1;;;;;7220:27:0;;;13080:199;;;;;;;;;;-1:-1:-1;13080:199:0;;;;;:::i;:::-;;:::i;6857:47::-;;;;;;;;;;;;6899:5;6857:47;;6005:133;;;;;;;;;;-1:-1:-1;6005:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6107:19:0;;;6089:7;6107:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6005:133;6778:26;;;;;;;;;;;;;;;;1043:192;;;;;;;;;;-1:-1:-1;1043:192:0;;;;;:::i;:::-;;:::i;7634:30::-;;;;;;;;;;-1:-1:-1;7634:30:0;;;;-1:-1:-1;;;7634:30:0;;;;;;15710:107;;;;;;;;;;;;;:::i;6679:60::-;6719:20;6734:5;6649:23;6719:20;:::i;:::-;6679:60;:::o;9735:161::-;9812:4;9829:37;9838:10;9850:7;9859:6;9829:8;:37::i;:::-;-1:-1:-1;9884:4:0;9735:161;;;;;:::o;10659:191::-;764:7;791:6;-1:-1:-1;;;;;791:6:0;326:10;853:23;845:68;;;;-1:-1:-1;;;845:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10750:21:0;::::1;10742:64;;;::::0;-1:-1:-1;;;10742:64:0;;4798:2:1;10742:64:0::1;::::0;::::1;4780:21:1::0;4837:2;4817:18;;;4810:30;4876:33;4856:18;;;4849:61;4927:18;;10742:64:0::1;4596:355:1::0;10742:64:0::1;-1:-1:-1::0;;;;;10817:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:25;;-1:-1:-1;;10817:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10659:191::o;11748:196::-;764:7;791:6;-1:-1:-1;;;;;791:6:0;326:10;853:23;845:68;;;;-1:-1:-1;;;845:68:0;;;;;;;:::i;:::-;11825:11:::1;::::0;:20;::::1;;:11;::::0;;::::1;:20;;::::0;11817:48:::1;;;::::0;-1:-1:-1;;;11817:48:0;;5158:2:1;11817:48:0::1;::::0;::::1;5140:21:1::0;5197:2;5177:18;;;5170:30;-1:-1:-1;;;5216:18:1;;;5209:46;5272:18;;11817:48:0::1;4956:340:1::0;11817:48:0::1;11876:11;:19:::0;;-1:-1:-1;;11876:19:0::1;::::0;::::1;;::::0;;::::1;::::0;;;11911:25:::1;::::0;544:41:1;;;11911:25:0::1;::::0;532:2:1;517:18;11911:25:0::1;;;;;;;11748:196:::0;:::o;10230:306::-;-1:-1:-1;;;;;10351:19:0;;10330:4;10351:19;;;:11;:19;;;;;;;;10371:10;10351:31;;;;;;;;-1:-1:-1;;10351:52:0;10347:126;;-1:-1:-1;;;;;10420:19:0;;;;;;:11;:19;;;;;;;;10440:10;10420:31;;;;;;;:41;;10455:6;;10420:19;:41;;10455:6;;10420:41;:::i;:::-;;;;-1:-1:-1;;10347:126:0;10492:36;10502:6;10510:9;10521:6;10492:9;:36::i;:::-;10485:43;10230:306;-1:-1:-1;;;;10230:306:0:o;15831:331::-;15896:2;;;;;;;;;-1:-1:-1;;;;;15896:2:0;-1:-1:-1;;;;;15896:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15888:27;;;;;;15939:16;;-1:-1:-1;;;15939:16:0;;;;15938:17;15930:53;;;;-1:-1:-1;;;15930:53:0;;5886:2:1;15930:53:0;;;5868:21:1;5925:2;5905:18;;;5898:30;5964:25;5944:18;;;5937:53;6007:18;;15930:53:0;5684:347:1;15930:53:0;16002:17;:24;;-1:-1:-1;;16002:24:0;16022:4;16002:24;;;16061:15;16041:17;:35;16091:16;:23;;-1:-1:-1;;;;16091:23:0;-1:-1:-1;;;16091:23:0;;;16134:16;;;;16002:17;;16134:16;15831:331::o;941:94::-;764:7;791:6;-1:-1:-1;;;;;791:6:0;326:10;853:23;845:68;;;;-1:-1:-1;;;845:68:0;;;;;;;:::i;:::-;1006:21:::1;1024:1;1006:9;:21::i;:::-;941:94::o:0;15518:180::-;764:7;791:6;-1:-1:-1;;;;;791:6:0;326:10;853:23;845:68;;;;-1:-1:-1;;;845:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15603:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;;;;:29;;-1:-1:-1;;15603:29:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15652:34;;6204:51:1;;;6271:18;;;6264:50;15652:34:0::1;::::0;6177:18:1;15652:34:0::1;;;;;;;15518:180:::0;;:::o;9558:165::-;9636:4;9653:40;9663:10;9675:9;9686:6;9653:9;:40::i;:::-;-1:-1:-1;9711:4:0;;9558:165;-1:-1:-1;;;9558:165:0:o;13080:199::-;764:7;791:6;-1:-1:-1;;;;;791:6:0;326:10;853:23;845:68;;;;-1:-1:-1;;;845:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13155:18:0;::::1;13147:50;;;::::0;-1:-1:-1;;;13147:50:0;;6527:2:1;13147:50:0::1;::::0;::::1;6509:21:1::0;6566:2;6546:18;;;6539:30;-1:-1:-1;;;6585:18:1;;;6578:50;6645:18;;13147:50:0::1;6325:344:1::0;13147:50:0::1;13208:17;:33:::0;;-1:-1:-1;;;;;;13208:33:0::1;;-1:-1:-1::0;;;;;13208:33:0;::::1;;;::::0;;13260:10:::1;::::0;-1:-1:-1;;;13260:10:0;::::1;;;13252:19;;;::::0;::::1;;13080:199:::0;:::o;1043:192::-;764:7;791:6;-1:-1:-1;;;;;791:6:0;326:10;853:23;845:68;;;;-1:-1:-1;;;845:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1132:22:0;::::1;1124:73;;;::::0;-1:-1:-1;;;1124:73:0;;6876:2:1;1124:73:0::1;::::0;::::1;6858:21:1::0;6915:2;6895:18;;;6888:30;6954:34;6934:18;;;6927:62;-1:-1:-1;;;7005:18:1;;;6998:36;7051:19;;1124:73:0::1;6674:402:1::0;1124:73:0::1;1208:19;1218:8;1208:9;:19::i;15710:107::-:0;764:7;791:6;-1:-1:-1;;;;;791:6:0;326:10;853:23;845:68;;;;-1:-1:-1;;;845:68:0;;;;;;;:::i;:::-;15780:17:::1;:25:::0;;-1:-1:-1;;15780:25:0::1;::::0;;15710:107::o;9908:310::-;-1:-1:-1;;;;;10003:20:0;;9995:52;;;;-1:-1:-1;;;9995:52:0;;7283:2:1;9995:52:0;;;7265:21:1;7322:2;7302:18;;;7295:30;-1:-1:-1;;;7341:18:1;;;7334:49;7400:18;;9995:52:0;7081:343:1;9995:52:0;-1:-1:-1;;;;;10066:21:0;;10058:53;;;;-1:-1:-1;;;10058:53:0;;7283:2:1;10058:53:0;;;7265:21:1;7322:2;7302:18;;;7295:30;-1:-1:-1;;;7341:18:1;;;7334:49;7400:18;;10058:53:0;7081:343:1;10058:53:0;-1:-1:-1;;;;;10124:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10177:33;;368:25:1;;;10177:33:0;;341:18:1;10177:33:0;;;;;;;9908:310;;;:::o;11952:1120::-;12032:4;12064;-1:-1:-1;;;;;12087:16:0;;12079:64;;;;-1:-1:-1;;;12079:64:0;;7631:2:1;12079:64:0;;;7613:21:1;7670:2;7650:18;;;7643:30;7709:34;7689:18;;;7682:62;-1:-1:-1;;;7760:18:1;;;7753:33;7803:19;;12079:64:0;7429:399:1;12079:64:0;-1:-1:-1;;;;;12162:18:0;;12154:68;;;;-1:-1:-1;;;12154:68:0;;8035:2:1;12154:68:0;;;8017:21:1;8074:2;8054:18;;;8047:30;8113:34;8093:18;;;8086:62;-1:-1:-1;;;8164:18:1;;;8157:35;8209:19;;12154:68:0;7833:401:1;12154:68:0;12250:1;12241:6;:10;12233:64;;;;-1:-1:-1;;;12233:64:0;;8441:2:1;12233:64:0;;;8423:21:1;8480:2;8460:18;;;8453:30;8519:34;8499:18;;;8492:62;-1:-1:-1;;;8570:18:1;;;8563:39;8619:19;;12233:64:0;8239:405:1;12233:64:0;12314:25;12331:4;12336:2;12314:16;:25::i;:::-;12310:108;;;12364:16;;-1:-1:-1;;;12364:16:0;;;;12356:50;;;;-1:-1:-1;;;12356:50:0;;8851:2:1;12356:50:0;;;8833:21:1;8890:2;8870:18;;;8863:30;-1:-1:-1;;;8909:18:1;;;8902:52;8971:18;;12356:50:0;8649:346:1;12356:50:0;12433:17;12441:4;12447:2;12433:7;:17::i;:::-;:29;;;;-1:-1:-1;12456:6:0;;-1:-1:-1;;;12456:6:0;;;;12455:7;12433:29;:50;;;;;12466:17;12474:4;12480:2;12466:7;:17::i;:::-;12430:291;;;12549:4;12500:28;6237:16;;;:7;:16;;;;;;6719:20;6734:5;6649:23;6719:20;:::i;:::-;12573;:37;12570:140;;12634:24;;12631:63;;12660:34;12673:20;12660:12;:34::i;:::-;12485:236;12430:291;-1:-1:-1;;;;;12737:12:0;;;;;;:6;:12;;;;;;;;;:26;;-1:-1:-1;;;;;;12753:10:0;;;;;;:6;:10;;;;;;;;12737:26;12733:73;;;-1:-1:-1;12789:5:0;12733:73;-1:-1:-1;;;;;12826:13:0;;;;;;:7;:13;;;;;:23;;12843:6;;12826:13;:23;;12843:6;;12826:23;:::i;:::-;;;;-1:-1:-1;12851:22:0;;-1:-1:-1;12877:7:0;12876:81;;12951:6;12876:81;;;12888:60;12898:4;12904:16;12911:4;12917:2;12904:6;:16::i;:::-;12922:17;12930:4;12936:2;12922:7;:17::i;:::-;12941:6;12888:9;:60::i;:::-;-1:-1:-1;;;;;12968:11:0;;;;;;:7;:11;;;;;:29;;12851:106;;-1:-1:-1;12851:106:0;;12968:11;;;:29;;12851:106;;12968:29;:::i;:::-;;;;;;;;13019:2;-1:-1:-1;;;;;13004:34:0;13013:4;-1:-1:-1;;;;;13004:34:0;;13023:14;13004:34;;;;368:25:1;;356:2;341:18;;222:177;13004:34:0;;;;;;;;-1:-1:-1;13058:4:0;;11952:1120;-1:-1:-1;;;;;11952:1120:0:o;1243:173::-;1299:16;1318:6;;-1:-1:-1;;;;;1335:17:0;;;-1:-1:-1;;;;;;1335:17:0;;;;;;1368:40;;1318:6;;;;;;;1368:40;;1299:16;1368:40;1288:128;1243:173;:::o;10858:336::-;10933:4;10952:14;10976:7;764;791:6;-1:-1:-1;;;;;791:6:0;;718:87;10976:7;-1:-1:-1;;;;;10969:14:0;:3;-1:-1:-1;;;;;10969:14:0;;;:45;;;;-1:-1:-1;764:7:0;791:6;-1:-1:-1;;;;;11000:14:0;;;791:6;;11000:14;;10969:45;:83;;;;-1:-1:-1;764:7:0;791:6;-1:-1:-1;;;;;791:6:0;11031:10;:21;;10969:83;:118;;;;-1:-1:-1;;;;;;11070:17:0;;;;;;:12;:17;;;;;;;;11069:18;10969:118;:141;;;;-1:-1:-1;;;;;;11093:17:0;;;;;;:12;:17;;;;;;;;11092:18;10969:141;:162;;;;-1:-1:-1;;;;;;11114:17:0;;;;10969:162;:186;;;;-1:-1:-1;;;;;;11135:20:0;;11150:4;11135:20;;10952:203;10858:336;-1:-1:-1;;;;10858:336:0:o;11371:165::-;-1:-1:-1;;;;;11471:13:0;;11437:4;11471:13;;;:8;:13;;;;;;11437:4;;11471:13;;:31;;;;-1:-1:-1;;;;;;;;;11489:13:0;;;;;:8;:13;;;;;;;;11488:14;;11371:165::o;11544:196::-;11642:11;;11610:4;;;;11642:11;;:37;;;;-1:-1:-1;;;;;;11658:21:0;;;;;;:16;:21;;;;;;;;11657:22;11642:37;:63;;;;-1:-1:-1;;;;;;;;11684:21:0;;;;;:16;:21;;;;;;;;11683:22;;11544:196;-1:-1:-1;11544:196:0:o;14707:799::-;7708:6;:13;;-1:-1:-1;;;;7708:13:0;-1:-1:-1;;;7708:13:0;;;14824:16:::1;::::0;;14838:1:::1;14824:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14824:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14824:16:0::1;14800:40;;14869:4;14851;14856:1;14851:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;14851:23:0::1;;;-1:-1:-1::0;;;;;14851:23:0::1;;;::::0;::::1;14895:10;;;;;;;;;-1:-1:-1::0;;;;;14895:10:0::1;-1:-1:-1::0;;;;;14895:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14885:4;14890:1;14885:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14885:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:27;;;;14949:4:::1;14929:26;::::0;;;:11:::1;:26:::0;;;;;;14964:10:::1;::::0;::::1;::::0;::::1;::::0;;::::1;14929:47:::0;;;;;;;;-1:-1:-1;;14929:68:0::1;14925:168;;15034:4;15014:26;::::0;;;:11:::1;:26;::::0;;;;;;;15049:10:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;15049:10:0::1;15014:47:::0;;;;;;;-1:-1:-1;;15014:67:0;;14925:168:::1;15109:10;::::0;:200:::1;::::0;-1:-1:-1;;;15109:200:0;;:10:::1;::::0;;::::1;-1:-1:-1::0;;;;;15109:10:0::1;::::0;:61:::1;::::0;:200:::1;::::0;15185:20;;15220:1:::1;::::0;15236:4;;15263::::1;::::0;15283:15:::1;::::0;15109:200:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;15105:247;;15334:7;;;15105:247;15362:12;15390:21;:25:::0;15387:111:::1;;15430:17;::::0;:68:::1;::::0;:17:::1;::::0;;::::1;-1:-1:-1::0;;;;;15430:17:0::1;::::0;15488:5:::1;::::0;15460:21:::1;::::0;15430:68:::1;::::0;;;15460:21;15430:17;15488:5;15430:68:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15417:81:0;;-1:-1:-1;;15387:111:0::1;14779:727;;7732:1;-1:-1:-1::0;7744:6:0;:14;;-1:-1:-1;;;;7744:14:0;;;14707:799::o;11202:161::-;-1:-1:-1;;;;;11300:13:0;;11267:4;11300:13;;;:8;:13;;;;;;11267:4;;11300:13;;11299:14;:31;;;;-1:-1:-1;;;;;;;;;11317:13:0;;;;;:8;:13;;;;;;;;;11202:161::o;13289:1410::-;13381:7;13401:11;13427:5;13423:84;;;-1:-1:-1;13441:6:0;;13423:84;;;13459:6;13455:52;;;-1:-1:-1;13474:7:0;;13455:52;;;-1:-1:-1;6849:1:0;13455:52;13525:17;;;;:70;;;;-1:-1:-1;13565:17:0;;:30;;13585:10;13565:30;:::i;:::-;13546:15;:49;;13525:70;13521:155;;;13615:5;13612:18;;;-1:-1:-1;13628:2:0;13612:18;13648:6;13645:19;;;-1:-1:-1;13662:2:0;13645:19;13692:17;;;;:70;;;;-1:-1:-1;13732:17:0;;:30;;13752:10;13732:30;:::i;:::-;13713:15;:49;;13692:70;13688:156;;;13782:5;13779:18;;;-1:-1:-1;13795:2:0;13779:18;13815:6;13812:20;;;-1:-1:-1;13829:3:0;13812:20;13860:17;;;;:70;;;;-1:-1:-1;13900:17:0;;:30;;13920:10;13900:30;:::i;:::-;13881:15;:49;;13860:70;13856:156;;;13950:5;13947:18;;;-1:-1:-1;13963:2:0;13947:18;13983:6;13980:20;;;-1:-1:-1;13997:3:0;13980:20;14036:17;;;;:69;;;;-1:-1:-1;14076:17:0;;:29;;14096:9;14076:29;:::i;:::-;14057:15;:48;;14036:69;14032:156;;;14125:5;14122:19;;;-1:-1:-1;14138:3:0;14122:19;14159:6;14156:20;;;-1:-1:-1;14173:3:0;14156:20;14205:17;;;;:69;;;;-1:-1:-1;14245:17:0;;:29;;14265:9;14245:29;:::i;:::-;14226:15;:48;;14205:69;14204:97;;;-1:-1:-1;14279:17:0;;:22;14204:97;14200:184;;;14321:5;14318:19;;;-1:-1:-1;14334:3:0;14318:19;14355:6;14352:20;;;-1:-1:-1;14369:3:0;14352:20;14400:3;14407:1;14400:8;14396:28;;14418:6;14411:13;;;;;14396:28;14438:17;6899:5;14458:12;14467:3;14458:6;:12;:::i;:::-;:30;;;;:::i;:::-;14438:50;-1:-1:-1;14503:13:0;;14499:157;;14551:4;14535:22;;;;:7;:22;;;;;:35;;14561:9;;14535:22;:35;;14561:9;;14535:35;:::i;:::-;;;;-1:-1:-1;;14590:40:0;;368:25:1;;;14613:4:0;;-1:-1:-1;;;;;14590:40:0;;;;;356:2:1;341:18;14590:40:0;;;;;;;14499:157;14673:18;14682:9;14673:6;:18;:::i;:::-;14666:25;13289:1410;-1:-1:-1;;;;;;;13289:1410:0:o;596:548:1:-;708:4;737:2;766;755:9;748:21;798:6;792:13;841:6;836:2;825:9;821:18;814:34;866:1;876:140;890:6;887:1;884:13;876:140;;;985:14;;;981:23;;975:30;951:17;;;970:2;947:26;940:66;905:10;;876:140;;;880:3;1065:1;1060:2;1051:6;1040:9;1036:22;1032:31;1025:42;1135:2;1128;1124:7;1119:2;1111:6;1107:15;1103:29;1092:9;1088:45;1084:54;1076:62;;;;596:548;;;;:::o;1149:131::-;-1:-1:-1;;;;;1224:31:1;;1214:42;;1204:70;;1270:1;1267;1260:12;1285:315;1353:6;1361;1414:2;1402:9;1393:7;1389:23;1385:32;1382:52;;;1430:1;1427;1420:12;1382:52;1469:9;1456:23;1488:31;1513:5;1488:31;:::i;:::-;1538:5;1590:2;1575:18;;;;1562:32;;-1:-1:-1;;;1285:315:1:o;1605:118::-;1691:5;1684:13;1677:21;1670:5;1667:32;1657:60;;1713:1;1710;1703:12;1728:382;1793:6;1801;1854:2;1842:9;1833:7;1829:23;1825:32;1822:52;;;1870:1;1867;1860:12;1822:52;1909:9;1896:23;1928:31;1953:5;1928:31;:::i;:::-;1978:5;-1:-1:-1;2035:2:1;2020:18;;2007:32;2048:30;2007:32;2048:30;:::i;:::-;2097:7;2087:17;;;1728:382;;;;;:::o;2115:241::-;2171:6;2224:2;2212:9;2203:7;2199:23;2195:32;2192:52;;;2240:1;2237;2230:12;2192:52;2279:9;2266:23;2298:28;2320:5;2298:28;:::i;:::-;2345:5;2115:241;-1:-1:-1;;;2115:241:1:o;2361:456::-;2438:6;2446;2454;2507:2;2495:9;2486:7;2482:23;2478:32;2475:52;;;2523:1;2520;2513:12;2475:52;2562:9;2549:23;2581:31;2606:5;2581:31;:::i;:::-;2631:5;-1:-1:-1;2688:2:1;2673:18;;2660:32;2701:33;2660:32;2701:33;:::i;:::-;2361:456;;2753:7;;-1:-1:-1;;;2807:2:1;2792:18;;;;2779:32;;2361:456::o;2822:247::-;2881:6;2934:2;2922:9;2913:7;2909:23;2905:32;2902:52;;;2950:1;2947;2940:12;2902:52;2989:9;2976:23;3008:31;3033:5;3008:31;:::i;3488:388::-;3556:6;3564;3617:2;3605:9;3596:7;3592:23;3588:32;3585:52;;;3633:1;3630;3623:12;3585:52;3672:9;3659:23;3691:31;3716:5;3691:31;:::i;:::-;3741:5;-1:-1:-1;3798:2:1;3783:18;;3770:32;3811:33;3770:32;3811:33;:::i;3881:127::-;3942:10;3937:3;3933:20;3930:1;3923:31;3973:4;3970:1;3963:15;3997:4;3994:1;3987:15;4013:217;4053:1;4079;4069:132;;4123:10;4118:3;4114:20;4111:1;4104:31;4158:4;4155:1;4148:15;4186:4;4183:1;4176:15;4069:132;-1:-1:-1;4215:9:1;;4013:217::o;4235:356::-;4437:2;4419:21;;;4456:18;;;4449:30;4515:34;4510:2;4495:18;;4488:62;4582:2;4567:18;;4235:356::o;5301:128::-;5368:9;;;5389:11;;;5386:37;;;5403:18;;:::i;5434:245::-;5501:6;5554:2;5542:9;5533:7;5529:23;5525:32;5522:52;;;5570:1;5567;5560:12;5522:52;5602:9;5596:16;5621:28;5643:5;5621:28;:::i;9000:125::-;9065:9;;;9086:10;;;9083:36;;;9099:18;;:::i;9262:127::-;9323:10;9318:3;9314:20;9311:1;9304:31;9354:4;9351:1;9344:15;9378:4;9375:1;9368:15;9394:251;9464:6;9517:2;9505:9;9496:7;9492:23;9488:32;9485:52;;;9533:1;9530;9523:12;9485:52;9565:9;9559:16;9584:31;9609:5;9584:31;:::i;9650:980::-;9912:4;9960:3;9949:9;9945:19;9991:6;9980:9;9973:25;10017:2;10055:6;10050:2;10039:9;10035:18;10028:34;10098:3;10093:2;10082:9;10078:18;10071:31;10122:6;10157;10151:13;10188:6;10180;10173:22;10226:3;10215:9;10211:19;10204:26;;10265:2;10257:6;10253:15;10239:29;;10286:1;10296:195;10310:6;10307:1;10304:13;10296:195;;;10375:13;;-1:-1:-1;;;;;10371:39:1;10359:52;;10466:15;;;;10431:12;;;;10407:1;10325:9;10296:195;;;-1:-1:-1;;;;;;;10547:32:1;;;;10542:2;10527:18;;10520:60;-1:-1:-1;;;10611:3:1;10596:19;10589:35;10508:3;9650:980;-1:-1:-1;;;9650:980:1:o;10845:168::-;10918:9;;;10949;;10966:15;;;10960:22;;10946:37;10936:71;;10987:18;;:::i

Swarm Source

ipfs://2122bc9acbbb62a56a11a94128812d4e6581fc141f80333a5a276bd550fd4859
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.