ETH Price: $2,226.02 (-5.50%)
 

Overview

Max Total Supply

42,000,000,000 JERRY

Holders

31

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 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:
JERRY

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-09-18
*/

// SPDX-License-Identifier: MIT
// https://t.me/Jerry_portal
// https://x.com/jerryerc_portal

pragma solidity ^0.8.0;

library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } }
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } }
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } }
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } }
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } }
    function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; }
    function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } }
}

library TransferHelper {
    function safeApprove(address token, address to, uint256 value) internal { (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper::safeApprove: approve failed'); }
    function safeTransfer(address token, address to, uint256 value) internal { (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper::safeTransfer: transfer failed'); }
    function safeTransferFrom(address token, address from, address to, uint256 value) internal { (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper::transferFrom: transferFrom failed'); }
    function safeTransferETH(address to, uint256 value) internal { (bool success, ) = to.call{value: value}(new bytes(0)); require(success, 'TransferHelper::safeTransferETH: ETH transfer failed'); }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IWETH is IERC20 {
    function deposit() external payable;
    function transfer(address to, uint256 value) external returns (bool);
    function withdraw(uint256) external;
}

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

interface IRouter {
    function factory() external view returns (address);
    function WETH() external view returns (address);
    function swapExactTokensForETH(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;
    function swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (
        uint256 amountA,
        uint256 amountB,
        uint256 liquidity
    );
}

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

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() { _transferOwnership(_msgSender()); }
    modifier onlyOwner() { _checkOwner(); _; }
    function owner() public view virtual returns (address) { return _owner; }
    function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); }
    function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); }
    function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); }
    function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); }
}

abstract contract ERC20 is Context, IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    uint8 private _decimals;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_, uint8 decimals_) { _name = name_; _symbol = symbol_; _decimals = decimals_; }
    function name() public view virtual override returns (string memory) { return _name; }
    function symbol() public view virtual override returns (string memory) { return _symbol; }
    function decimals() public view virtual override returns (uint8) { return _decimals; }
    function totalSupply() public view virtual override returns (uint256) { return _totalSupply; }
    function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; }
    function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; }
    function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; }
    function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; }
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; }
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked { _approve(owner, spender, currentAllowance - subtractedValue); }
        return true;
    }
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(from, to, amount);
        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; }
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _beforeTokenTransfer(address(0), account, amount);
        _totalSupply += amount;
        unchecked { _balances[account] += amount; }
        emit Transfer(address(0), account, amount);
        _afterTokenTransfer(address(0), account, amount);
    }
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        _beforeTokenTransfer(account, address(0), amount);
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; }
        emit Transfer(account, address(0), amount);
        _afterTokenTransfer(account, address(0), amount);
    }
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked { _approve(owner, spender, currentAllowance - amount); }
        }
    }
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

abstract contract TOKEN is ERC20, Ownable {
    using SafeMath for uint256;

    address public WETH;
    address public mainpair; // v2 weth-fomo
    address public routerAddr = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public marketingAddr;

    uint256 public launchblock;
    uint256 public tax;

    bool    private _swapping;
    uint256 private _swapAmount;

    mapping(address => bool) public _isBlacklisted;
    mapping(address => bool) private _isExcludedFromFees;

    modifier lockSwap() { _swapping = true; _; _swapping = false; }

    constructor(string memory name_, string memory symbol_, uint8 decimals_, uint256 totalSupply_, uint256 tax_, address marketingAddr_) ERC20(name_, symbol_, decimals_) {
        {
            WETH = IRouter(routerAddr).WETH();
            tax = tax_;
            marketingAddr = marketingAddr_;
            _swapAmount = totalSupply_.div(1000); // per 0.1% swap once
        }

        {
            excludeFromFees(address(this), true);
            excludeFromFees(marketingAddr, true);
            excludeFromFees(msg.sender, true);
        }

        {
            uint256 toTOKEN = totalSupply_.mul(10).div(100);
            uint256 toLP = totalSupply_.sub(toTOKEN);
            _mint(msg.sender, toTOKEN); // 10% for marketing
            _mint(address(this), toLP); // 90% for LP
            _approve(address(this), routerAddr, ~uint256(0));
        }
    }

    receive() external payable {}

    function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; }

    function setBLs(address[] calldata accounts, bool bled) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) _isBlacklisted[accounts[i]] = bled; }

    function sweep(address token, address to) public onlyOwner {
        TransferHelper.safeTransfer(token, to, IERC20(token).balanceOf(address(this)));
    }
    function sweepETH(address to) public onlyOwner {
        TransferHelper.safeTransferETH(to, address(this).balance);
    }

    function launch(address[] memory adrs) external payable onlyOwner {
        launchblock = block.number;
        IWETH(WETH).deposit{value: msg.value}();
        IERC20(WETH).approve(routerAddr, msg.value);
        uint256 amount = msg.value.div(adrs.length);
        for(uint i=0;i<adrs.length;i++) _swapTOKEN(amount,adrs[i]);
    }

    function setTax(uint256 tax_) public onlyOwner {
        require(tax_ <= 20, "invalid tax");
        tax = tax_;
    }

    function initLP(address to) public payable onlyOwner lockSwap {
        IWETH(WETH).deposit{value: msg.value}();
        IERC20(WETH).approve(routerAddr, msg.value);
        mainpair = IFactory(IRouter(routerAddr).factory()).createPair(WETH, address(this));
        IRouter(routerAddr).addLiquidity(WETH, address(this), msg.value, balanceOf(address(this)), 0, 0, to, block.timestamp);
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0) && to != address(0) && amount != 0, "invalid transfer");
        require(launchblock > 0 || _isExcludedFromFees[from] || _isExcludedFromFees[to], "not launched");
        require(!_isBlacklisted[from], "blacklisted");

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

        bool isBuy = from == mainpair; // BUY OR REMOVELP
        bool isSell = to == mainpair;  // SELL OR ADDLP

        uint256 fee = isBuy || isSell ? tax : 0;

        if (isSell) {
            if (balanceOf(address(this)) >= _swapAmount) {
                _swapETH(_swapAmount, marketingAddr);
            }

            if (amount > 1) amount = amount.sub(1);
        }

        uint256 feeAmount = amount.mul(fee).div(100);
        if (feeAmount > 0) { amount = amount.sub(feeAmount); super._transfer(from, address(this), feeAmount); }
        super._transfer(from, to, amount);
    }

    function _swapETH(uint256 amount, address to) internal lockSwap {
        if (amount == 0) return;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;
        IRouter(routerAddr).swapExactTokensForETHSupportingFeeOnTransferTokens(amount, 0, path, to, block.timestamp);
    }

    function _swapTOKEN(uint256 amount, address to) internal lockSwap {
        if (amount == 0) return;
        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = address(this);
        IRouter(routerAddr).swapExactTokensForTokensSupportingFeeOnTransferTokens(amount, 0, path, to, block.timestamp);
    }
}

contract JERRY is TOKEN {
    constructor()
    TOKEN(
        /* name */        "JERRY",
        /* symbol */      "JERRY",
        /* decimals */    18,
        /* totalSupply */ 420 * 10000 * 10000 * (10**18),
        /* tax */         20, // tax: 20% -> 10% -> 5% -> 2%
        /* marketingAdd*/ 0x806ee7F227653BD77f73899CE485A80fa1C249b3
    )
    {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","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":"to","type":"address"}],"name":"initLP","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"adrs","type":"address[]"}],"name":"launch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"launchblock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainpair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"bled","type":"bool"}],"name":"setBLs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax_","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"sweep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"sweepETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790553480156200003757600080fd5b506040805180820182526005808252644a4552525960d81b60208084018290528451808601909552918452908301529060126b87b595f2383509fe10000000601473806ee7f227653bd77f73899ce485a80fa1c249b385858560046200009e84826200061e565b506005620000ad83826200061e565b506003805460ff191660ff9290921691909117905550620000d79050620000d13390565b6200026e565b600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200012b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001519190620006ea565b600780546001600160a01b03199081166001600160a01b0393841617909155600c849055600a80549091169183169190911790556200019f836103e8620002c0602090811b62000d4117901c565b600e55620001af306001620002d7565b600a54620001c8906001600160a01b03166001620002d7565b620001d5336001620002d7565b60006200020c6064620001f8600a876200030c60201b62000d541790919060201c565b620002c060201b62000d411790919060201c565b905060006200022a82866200031a60201b62000d601790919060201c565b905062000238338362000328565b62000244308262000328565b600954620002609030906001600160a01b0316600019620003ef565b50505050505050506200079b565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000620002ce828462000732565b90505b92915050565b620002e162000517565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000620002ce828462000755565b6000620002ce82846200076f565b6001600160a01b038216620003845760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b806002600082825462000398919062000785565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038316620004535760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200037b565b6001600160a01b038216620004b65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200037b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6006546001600160a01b03163314620005735760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200037b565b565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005a557607f821691505b602082108103620005c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200057557600081815260208120601f850160051c81016020861015620005f55750805b601f850160051c820191505b81811015620006165782815560010162000601565b505050505050565b81516001600160401b038111156200063a576200063a6200057a565b62000652816200064b845462000590565b84620005cc565b602080601f8311600181146200068a5760008415620006715750858301515b600019600386901b1c1916600185901b17855562000616565b600085815260208120601f198616915b82811015620006bb578886015182559484019460019091019084016200069a565b5085821015620006da5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620006fd57600080fd5b81516001600160a01b03811681146200071557600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b6000826200075057634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417620002d157620002d16200071c565b81810381811115620002d157620002d16200071c565b80820180821115620002d157620002d16200071c565b611cb480620007ab6000396000f3fe6080604052600436106101bb5760003560e01c8063715018a6116100ec578063ad5c46481161008a578063c024666811610064578063c0246668146104dd578063dd62ed3e146104fd578063e997e5d21461051d578063f2fde38b1461053d57600080fd5b8063ad5c464814610487578063b4942988146104a7578063b8dc491b146104bd57600080fd5b806395d89b41116100c657806395d89b411461041c57806399c8d55614610431578063a457c2d714610447578063a9059cbb1461046757600080fd5b8063715018a6146103d657806374baf2cf146103eb5780638da5cb5b146103fe57600080fd5b8063313ce567116101595780634428da9c116101335780634428da9c1461034d5780634f360148146103605780636b90694c1461038057806370a08231146103a057600080fd5b8063313ce567146102d357806339509351146102f55780633ff42b921461031557600080fd5b806318160ddd1161019557806318160ddd146102445780631cdd3be31461026357806323b872dd146102935780632e5bb6ff146102b357600080fd5b806306fdde03146101c7578063095ea7b3146101f25780631163b2b01461022257600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dc61055d565b6040516101e991906117c1565b60405180910390f35b3480156101fe57600080fd5b5061021261020d366004611819565b6105ef565b60405190151581526020016101e9565b34801561022e57600080fd5b5061024261023d366004611845565b610609565b005b34801561025057600080fd5b506002545b6040519081526020016101e9565b34801561026f57600080fd5b5061021261027e366004611845565b600f6020526000908152604090205460ff1681565b34801561029f57600080fd5b506102126102ae366004611862565b61061e565b3480156102bf57600080fd5b506102426102ce3660046118a3565b610642565b3480156102df57600080fd5b5060035460405160ff90911681526020016101e9565b34801561030157600080fd5b50610212610310366004611819565b610693565b34801561032157600080fd5b50600a54610335906001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b61024261035b3660046118d2565b6106b5565b34801561036c57600080fd5b50600854610335906001600160a01b031681565b34801561038c57600080fd5b50600954610335906001600160a01b031681565b3480156103ac57600080fd5b506102556103bb366004611845565b6001600160a01b031660009081526020819052604090205490565b3480156103e257600080fd5b506102426107f9565b6102426103f9366004611845565b61080d565b34801561040a57600080fd5b506006546001600160a01b0316610335565b34801561042857600080fd5b506101dc610ad5565b34801561043d57600080fd5b50610255600c5481565b34801561045357600080fd5b50610212610462366004611819565b610ae4565b34801561047357600080fd5b50610212610482366004611819565b610b5f565b34801561049357600080fd5b50600754610335906001600160a01b031681565b3480156104b357600080fd5b50610255600b5481565b3480156104c957600080fd5b506102426104d8366004611997565b610b6d565b3480156104e957600080fd5b506102426104f83660046119de565b610bee565b34801561050957600080fd5b50610255610518366004611997565b610c21565b34801561052957600080fd5b50610242610538366004611a0c565b610c4c565b34801561054957600080fd5b50610242610558366004611845565b610ccb565b60606004805461056c90611a92565b80601f016020809104026020016040519081016040528092919081815260200182805461059890611a92565b80156105e55780601f106105ba576101008083540402835291602001916105e5565b820191906000526020600020905b8154815290600101906020018083116105c857829003601f168201915b5050505050905090565b6000336105fd818585610d6c565b60019150505b92915050565b610611610e90565b61061b8147610eea565b50565b60003361062c858285610fc4565b610637858585611038565b506001949350505050565b61064a610e90565b601481111561068e5760405162461bcd60e51b815260206004820152600b60248201526a0d2dcecc2d8d2c840e8c2f60ab1b60448201526064015b60405180910390fd5b600c55565b6000336105fd8185856106a68383610c21565b6106b09190611ae2565b610d6c565b6106bd610e90565b43600b5560075460408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0913491600480830192600092919082900301818588803b15801561070857600080fd5b505af115801561071c573d6000803e3d6000fd5b505060075460095460405163095ea7b360e01b81526001600160a01b0391821660048201523460248201529116935063095ea7b3925060440190506020604051808303816000875af1158015610776573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079a9190611af5565b5060006107b1825134610d4190919063ffffffff16565b905060005b82518110156107f4576107e2828483815181106107d5576107d5611b12565b60200260200101516112a7565b806107ec81611b28565b9150506107b6565b505050565b610801610e90565b61080b60006113b7565b565b610815610e90565b600d805460ff1916600117905560075460408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0913491600480830192600092919082900301818588803b15801561086957600080fd5b505af115801561087d573d6000803e3d6000fd5b505060075460095460405163095ea7b360e01b81526001600160a01b0391821660048201523460248201529116935063095ea7b3925060440190506020604051808303816000875af11580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190611af5565b50600960009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190611b41565b6007546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156109c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e89190611b41565b600880546001600160a01b0319166001600160a01b03928316179055600954600754306000818152602081905260409020549284169363e8e337009392169134906040516001600160e01b031960e087901b1681526001600160a01b03948516600482015292841660248401526044830191909152606482015260006084820181905260a482015290841660c48201524260e4820152610104016060604051808303816000875af1158015610aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac59190611b5e565b5050600d805460ff191690555050565b60606005805461056c90611a92565b60003381610af28286610c21565b905083811015610b525760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610685565b6106378286868403610d6c565b6000336105fd818585611038565b610b75610e90565b6040516370a0823160e01b8152306004820152610bea90839083906001600160a01b038316906370a0823190602401602060405180830381865afa158015610bc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be59190611b8c565b611409565b5050565b610bf6610e90565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610c54610e90565b60005b82811015610cc55781600f6000868685818110610c7657610c76611b12565b9050602002016020810190610c8b9190611845565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610cbd81611b28565b915050610c57565b50505050565b610cd3610e90565b6001600160a01b038116610d385760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610685565b61061b816113b7565b6000610d4d8284611ba5565b9392505050565b6000610d4d8284611bc7565b6000610d4d8284611bde565b6001600160a01b038316610dce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610685565b6001600160a01b038216610e2f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610685565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6006546001600160a01b0316331461080b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610685565b604080516000808252602082019092526001600160a01b038416908390604051610f149190611bf1565b60006040518083038185875af1925050503d8060008114610f51576040519150601f19603f3d011682016040523d82523d6000602084013e610f56565b606091505b50509050806107f45760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610685565b6000610fd08484610c21565b90506000198114610cc5578181101561102b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610685565b610cc58484848403610d6c565b6001600160a01b0383161580159061105857506001600160a01b03821615155b801561106357508015155b6110a25760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b2103a3930b739b332b960811b6044820152606401610685565b6000600b5411806110cb57506001600160a01b03831660009081526010602052604090205460ff165b806110ee57506001600160a01b03821660009081526010602052604090205460ff165b6111295760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd081b185d5b98da195960a21b6044820152606401610685565b6001600160a01b0383166000908152600f602052604090205460ff16156111805760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b6044820152606401610685565b600d5460ff16806111a957506001600160a01b03831660009081526010602052604090205460ff165b806111cc57506001600160a01b03821660009081526010602052604090205460ff165b156111dc576107f483838361153a565b6008546001600160a01b03908116848216811491841614600082806111fe5750815b61120957600061120d565b600c545b9050811561125d57600e54306000908152602081905260409020541061124657600e54600a5461124691906001600160a01b03166116de565b600184111561125d5761125a846001610d60565b93505b6000611274606461126e8785610d54565b90610d41565b90508015611293576112868582610d60565b945061129387308361153a565b61129e87878761153a565b50505050505050565b600d805460ff1916600117905581156113a957604080516002808252606082018352600092602083019080368337505060075482519293506001600160a01b0316918391506000906112fb576112fb611b12565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061132f5761132f611b12565b6001600160a01b039283166020918202929092010152600954604051635c11d79560e01b8152911690635c11d79590611375908690600090869088904290600401611c0d565b600060405180830381600087803b15801561138f57600080fd5b505af11580156113a3573d6000803e3d6000fd5b50505050505b5050600d805460ff19169055565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916114659190611bf1565b6000604051808303816000865af19150503d80600081146114a2576040519150601f19603f3d011682016040523d82523d6000602084013e6114a7565b606091505b50915091508180156114d15750805115806114d15750808060200190518101906114d19190611af5565b6115335760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b6064820152608401610685565b5050505050565b6001600160a01b03831661159e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610685565b6001600160a01b0382166116005760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610685565b6001600160a01b038316600090815260208190526040902054818110156116785760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610685565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610cc5565b600d805460ff1916600117905581156113a957604080516002808252606082018352600092602083019080368337019050509050308160008151811061172657611726611b12565b6001600160a01b03928316602091820292909201015260075482519116908290600190811061175757611757611b12565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac94790611375908690600090869088904290600401611c0d565b60005b838110156117b85781810151838201526020016117a0565b50506000910152565b60208152600082518060208401526117e081604085016020870161179d565b601f01601f19169190910160400192915050565b6001600160a01b038116811461061b57600080fd5b8035611814816117f4565b919050565b6000806040838503121561182c57600080fd5b8235611837816117f4565b946020939093013593505050565b60006020828403121561185757600080fd5b8135610d4d816117f4565b60008060006060848603121561187757600080fd5b8335611882816117f4565b92506020840135611892816117f4565b929592945050506040919091013590565b6000602082840312156118b557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156118e557600080fd5b823567ffffffffffffffff808211156118fd57600080fd5b818501915085601f83011261191157600080fd5b813581811115611923576119236118bc565b8060051b604051601f19603f83011681018181108582111715611948576119486118bc565b60405291825284820192508381018501918883111561196657600080fd5b938501935b8285101561198b5761197c85611809565b8452938501939285019261196b565b98975050505050505050565b600080604083850312156119aa57600080fd5b82356119b5816117f4565b915060208301356119c5816117f4565b809150509250929050565b801515811461061b57600080fd5b600080604083850312156119f157600080fd5b82356119fc816117f4565b915060208301356119c5816119d0565b600080600060408486031215611a2157600080fd5b833567ffffffffffffffff80821115611a3957600080fd5b818601915086601f830112611a4d57600080fd5b813581811115611a5c57600080fd5b8760208260051b8501011115611a7157600080fd5b60209283019550935050840135611a87816119d0565b809150509250925092565b600181811c90821680611aa657607f821691505b602082108103611ac657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561060357610603611acc565b600060208284031215611b0757600080fd5b8151610d4d816119d0565b634e487b7160e01b600052603260045260246000fd5b600060018201611b3a57611b3a611acc565b5060010190565b600060208284031215611b5357600080fd5b8151610d4d816117f4565b600080600060608486031215611b7357600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b9e57600080fd5b5051919050565b600082611bc257634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761060357610603611acc565b8181038181111561060357610603611acc565b60008251611c0381846020870161179d565b9190910192915050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c5d5784516001600160a01b031683529383019391830191600101611c38565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220939360a9d243cb78f37f75f905b80c14c200fce4a778064318a64aea329838cc64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063715018a6116100ec578063ad5c46481161008a578063c024666811610064578063c0246668146104dd578063dd62ed3e146104fd578063e997e5d21461051d578063f2fde38b1461053d57600080fd5b8063ad5c464814610487578063b4942988146104a7578063b8dc491b146104bd57600080fd5b806395d89b41116100c657806395d89b411461041c57806399c8d55614610431578063a457c2d714610447578063a9059cbb1461046757600080fd5b8063715018a6146103d657806374baf2cf146103eb5780638da5cb5b146103fe57600080fd5b8063313ce567116101595780634428da9c116101335780634428da9c1461034d5780634f360148146103605780636b90694c1461038057806370a08231146103a057600080fd5b8063313ce567146102d357806339509351146102f55780633ff42b921461031557600080fd5b806318160ddd1161019557806318160ddd146102445780631cdd3be31461026357806323b872dd146102935780632e5bb6ff146102b357600080fd5b806306fdde03146101c7578063095ea7b3146101f25780631163b2b01461022257600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dc61055d565b6040516101e991906117c1565b60405180910390f35b3480156101fe57600080fd5b5061021261020d366004611819565b6105ef565b60405190151581526020016101e9565b34801561022e57600080fd5b5061024261023d366004611845565b610609565b005b34801561025057600080fd5b506002545b6040519081526020016101e9565b34801561026f57600080fd5b5061021261027e366004611845565b600f6020526000908152604090205460ff1681565b34801561029f57600080fd5b506102126102ae366004611862565b61061e565b3480156102bf57600080fd5b506102426102ce3660046118a3565b610642565b3480156102df57600080fd5b5060035460405160ff90911681526020016101e9565b34801561030157600080fd5b50610212610310366004611819565b610693565b34801561032157600080fd5b50600a54610335906001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b61024261035b3660046118d2565b6106b5565b34801561036c57600080fd5b50600854610335906001600160a01b031681565b34801561038c57600080fd5b50600954610335906001600160a01b031681565b3480156103ac57600080fd5b506102556103bb366004611845565b6001600160a01b031660009081526020819052604090205490565b3480156103e257600080fd5b506102426107f9565b6102426103f9366004611845565b61080d565b34801561040a57600080fd5b506006546001600160a01b0316610335565b34801561042857600080fd5b506101dc610ad5565b34801561043d57600080fd5b50610255600c5481565b34801561045357600080fd5b50610212610462366004611819565b610ae4565b34801561047357600080fd5b50610212610482366004611819565b610b5f565b34801561049357600080fd5b50600754610335906001600160a01b031681565b3480156104b357600080fd5b50610255600b5481565b3480156104c957600080fd5b506102426104d8366004611997565b610b6d565b3480156104e957600080fd5b506102426104f83660046119de565b610bee565b34801561050957600080fd5b50610255610518366004611997565b610c21565b34801561052957600080fd5b50610242610538366004611a0c565b610c4c565b34801561054957600080fd5b50610242610558366004611845565b610ccb565b60606004805461056c90611a92565b80601f016020809104026020016040519081016040528092919081815260200182805461059890611a92565b80156105e55780601f106105ba576101008083540402835291602001916105e5565b820191906000526020600020905b8154815290600101906020018083116105c857829003601f168201915b5050505050905090565b6000336105fd818585610d6c565b60019150505b92915050565b610611610e90565b61061b8147610eea565b50565b60003361062c858285610fc4565b610637858585611038565b506001949350505050565b61064a610e90565b601481111561068e5760405162461bcd60e51b815260206004820152600b60248201526a0d2dcecc2d8d2c840e8c2f60ab1b60448201526064015b60405180910390fd5b600c55565b6000336105fd8185856106a68383610c21565b6106b09190611ae2565b610d6c565b6106bd610e90565b43600b5560075460408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0913491600480830192600092919082900301818588803b15801561070857600080fd5b505af115801561071c573d6000803e3d6000fd5b505060075460095460405163095ea7b360e01b81526001600160a01b0391821660048201523460248201529116935063095ea7b3925060440190506020604051808303816000875af1158015610776573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079a9190611af5565b5060006107b1825134610d4190919063ffffffff16565b905060005b82518110156107f4576107e2828483815181106107d5576107d5611b12565b60200260200101516112a7565b806107ec81611b28565b9150506107b6565b505050565b610801610e90565b61080b60006113b7565b565b610815610e90565b600d805460ff1916600117905560075460408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0913491600480830192600092919082900301818588803b15801561086957600080fd5b505af115801561087d573d6000803e3d6000fd5b505060075460095460405163095ea7b360e01b81526001600160a01b0391821660048201523460248201529116935063095ea7b3925060440190506020604051808303816000875af11580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190611af5565b50600960009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190611b41565b6007546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156109c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e89190611b41565b600880546001600160a01b0319166001600160a01b03928316179055600954600754306000818152602081905260409020549284169363e8e337009392169134906040516001600160e01b031960e087901b1681526001600160a01b03948516600482015292841660248401526044830191909152606482015260006084820181905260a482015290841660c48201524260e4820152610104016060604051808303816000875af1158015610aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac59190611b5e565b5050600d805460ff191690555050565b60606005805461056c90611a92565b60003381610af28286610c21565b905083811015610b525760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610685565b6106378286868403610d6c565b6000336105fd818585611038565b610b75610e90565b6040516370a0823160e01b8152306004820152610bea90839083906001600160a01b038316906370a0823190602401602060405180830381865afa158015610bc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be59190611b8c565b611409565b5050565b610bf6610e90565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610c54610e90565b60005b82811015610cc55781600f6000868685818110610c7657610c76611b12565b9050602002016020810190610c8b9190611845565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610cbd81611b28565b915050610c57565b50505050565b610cd3610e90565b6001600160a01b038116610d385760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610685565b61061b816113b7565b6000610d4d8284611ba5565b9392505050565b6000610d4d8284611bc7565b6000610d4d8284611bde565b6001600160a01b038316610dce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610685565b6001600160a01b038216610e2f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610685565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6006546001600160a01b0316331461080b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610685565b604080516000808252602082019092526001600160a01b038416908390604051610f149190611bf1565b60006040518083038185875af1925050503d8060008114610f51576040519150601f19603f3d011682016040523d82523d6000602084013e610f56565b606091505b50509050806107f45760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610685565b6000610fd08484610c21565b90506000198114610cc5578181101561102b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610685565b610cc58484848403610d6c565b6001600160a01b0383161580159061105857506001600160a01b03821615155b801561106357508015155b6110a25760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b2103a3930b739b332b960811b6044820152606401610685565b6000600b5411806110cb57506001600160a01b03831660009081526010602052604090205460ff165b806110ee57506001600160a01b03821660009081526010602052604090205460ff165b6111295760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd081b185d5b98da195960a21b6044820152606401610685565b6001600160a01b0383166000908152600f602052604090205460ff16156111805760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b6044820152606401610685565b600d5460ff16806111a957506001600160a01b03831660009081526010602052604090205460ff165b806111cc57506001600160a01b03821660009081526010602052604090205460ff165b156111dc576107f483838361153a565b6008546001600160a01b03908116848216811491841614600082806111fe5750815b61120957600061120d565b600c545b9050811561125d57600e54306000908152602081905260409020541061124657600e54600a5461124691906001600160a01b03166116de565b600184111561125d5761125a846001610d60565b93505b6000611274606461126e8785610d54565b90610d41565b90508015611293576112868582610d60565b945061129387308361153a565b61129e87878761153a565b50505050505050565b600d805460ff1916600117905581156113a957604080516002808252606082018352600092602083019080368337505060075482519293506001600160a01b0316918391506000906112fb576112fb611b12565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061132f5761132f611b12565b6001600160a01b039283166020918202929092010152600954604051635c11d79560e01b8152911690635c11d79590611375908690600090869088904290600401611c0d565b600060405180830381600087803b15801561138f57600080fd5b505af11580156113a3573d6000803e3d6000fd5b50505050505b5050600d805460ff19169055565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916114659190611bf1565b6000604051808303816000865af19150503d80600081146114a2576040519150601f19603f3d011682016040523d82523d6000602084013e6114a7565b606091505b50915091508180156114d15750805115806114d15750808060200190518101906114d19190611af5565b6115335760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b6064820152608401610685565b5050505050565b6001600160a01b03831661159e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610685565b6001600160a01b0382166116005760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610685565b6001600160a01b038316600090815260208190526040902054818110156116785760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610685565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610cc5565b600d805460ff1916600117905581156113a957604080516002808252606082018352600092602083019080368337019050509050308160008151811061172657611726611b12565b6001600160a01b03928316602091820292909201015260075482519116908290600190811061175757611757611b12565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac94790611375908690600090869088904290600401611c0d565b60005b838110156117b85781810151838201526020016117a0565b50506000910152565b60208152600082518060208401526117e081604085016020870161179d565b601f01601f19169190910160400192915050565b6001600160a01b038116811461061b57600080fd5b8035611814816117f4565b919050565b6000806040838503121561182c57600080fd5b8235611837816117f4565b946020939093013593505050565b60006020828403121561185757600080fd5b8135610d4d816117f4565b60008060006060848603121561187757600080fd5b8335611882816117f4565b92506020840135611892816117f4565b929592945050506040919091013590565b6000602082840312156118b557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156118e557600080fd5b823567ffffffffffffffff808211156118fd57600080fd5b818501915085601f83011261191157600080fd5b813581811115611923576119236118bc565b8060051b604051601f19603f83011681018181108582111715611948576119486118bc565b60405291825284820192508381018501918883111561196657600080fd5b938501935b8285101561198b5761197c85611809565b8452938501939285019261196b565b98975050505050505050565b600080604083850312156119aa57600080fd5b82356119b5816117f4565b915060208301356119c5816117f4565b809150509250929050565b801515811461061b57600080fd5b600080604083850312156119f157600080fd5b82356119fc816117f4565b915060208301356119c5816119d0565b600080600060408486031215611a2157600080fd5b833567ffffffffffffffff80821115611a3957600080fd5b818601915086601f830112611a4d57600080fd5b813581811115611a5c57600080fd5b8760208260051b8501011115611a7157600080fd5b60209283019550935050840135611a87816119d0565b809150509250925092565b600181811c90821680611aa657607f821691505b602082108103611ac657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561060357610603611acc565b600060208284031215611b0757600080fd5b8151610d4d816119d0565b634e487b7160e01b600052603260045260246000fd5b600060018201611b3a57611b3a611acc565b5060010190565b600060208284031215611b5357600080fd5b8151610d4d816117f4565b600080600060608486031215611b7357600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b9e57600080fd5b5051919050565b600082611bc257634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761060357610603611acc565b8181038181111561060357610603611acc565b60008251611c0381846020870161179d565b9190910192915050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c5d5784516001600160a01b031683529383019391830191600101611c38565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220939360a9d243cb78f37f75f905b80c14c200fce4a778064318a64aea329838cc64736f6c63430008120033

Deployed Bytecode Sourcemap

16118:368:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6981:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7790:169;;;;;;;;;;-1:-1:-1;7790:169:0;;;;;:::i;:::-;;:::i;:::-;;;1430:14:1;;1423:22;1405:41;;1393:2;1378:18;7790:169:0;1265:187:1;13299:123:0;;;;;;;;;;-1:-1:-1;13299:123:0;;;;;:::i;:::-;;:::i;:::-;;7261:94;;;;;;;;;;-1:-1:-1;7340:12:0;;7261:94;;;1855:25:1;;;1843:2;1828:18;7261:94:0;1709:177:1;11733:46:0;;;;;;;;;;-1:-1:-1;11733:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7965:220;;;;;;;;;;-1:-1:-1;7965:220:0;;;;;:::i;:::-;;:::i;13776:121::-;;;;;;;;;;-1:-1:-1;13776:121:0;;;;;:::i;:::-;;:::i;7169:86::-;;;;;;;;;;-1:-1:-1;7243:9:0;;7169:86;;7243:9;;;;2679:36:1;;2667:2;2652:18;7169:86:0;2537:184:1;8191:206:0;;;;;;;;;;-1:-1:-1;8191:206:0;;;;;:::i;:::-;;:::i;11568:28::-;;;;;;;;;;-1:-1:-1;11568:28:0;;;;-1:-1:-1;;;;;11568:28:0;;;;;;-1:-1:-1;;;;;2890:32:1;;;2872:51;;2860:2;2845:18;11568:28:0;2726:203:1;13430:338:0;;;;;;:::i;:::-;;:::i;11445:23::-;;;;;;;;;;-1:-1:-1;11445:23:0;;;;-1:-1:-1;;;;;11445:23:0;;;11491:70;;;;;;;;;;-1:-1:-1;11491:70:0;;;;-1:-1:-1;;;;;11491:70:0;;;7361:113;;;;;;;;;;-1:-1:-1;7361:113:0;;;;;:::i;:::-;-1:-1:-1;;;;;7453:18:0;7435:7;7453:18;;;;;;;;;;;;7361:113;6098:89;;;;;;;;;;;;;:::i;13905:395::-;;;;;;:::i;:::-;;:::i;5895:73::-;;;;;;;;;;-1:-1:-1;5959:6:0;;-1:-1:-1;;;;;5959:6:0;5895:73;;7073:90;;;;;;;;;;;;;:::i;11638:18::-;;;;;;;;;;;;;;;;8403:412;;;;;;;;;;-1:-1:-1;8403:412:0;;;;;:::i;:::-;;:::i;7480:161::-;;;;;;;;;;-1:-1:-1;7480:161:0;;;;;:::i;:::-;;:::i;11419:19::-;;;;;;;;;;-1:-1:-1;11419:19:0;;;;-1:-1:-1;;;;;11419:19:0;;;11605:26;;;;;;;;;;;;;;;;13137:156;;;;;;;;;;-1:-1:-1;13137:156:0;;;;;:::i;:::-;;:::i;12845:118::-;;;;;;;;;;-1:-1:-1;12845:118:0;;;;;:::i;:::-;;:::i;7647:137::-;;;;;;;;;;-1:-1:-1;7647:137:0;;;;;:::i;:::-;;:::i;12971:158::-;;;;;;;;;;-1:-1:-1;12971:158:0;;;;;:::i;:::-;;:::i;6193:178::-;;;;;;;;;;-1:-1:-1;6193:178:0;;;;;:::i;:::-;;:::i;6981:86::-;7035:13;7059:5;7052:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6981:86;:::o;7790:169::-;7873:4;5514:10;7911:32;5514:10;7927:7;7936:6;7911:8;:32::i;:::-;7952:4;7945:11;;;7790:169;;;;;:::o;13299:123::-;5870:13;:11;:13::i;:::-;13357:57:::1;13388:2;13392:21;13357:30;:57::i;:::-;13299:123:::0;:::o;7965:220::-;8062:4;5514:10;8102:38;8118:4;5514:10;8133:6;8102:15;:38::i;:::-;8142:27;8152:4;8158:2;8162:6;8142:9;:27::i;:::-;-1:-1:-1;8178:4:0;;7965:220;-1:-1:-1;;;;7965:220:0:o;13776:121::-;5870:13;:11;:13::i;:::-;13850:2:::1;13842:4;:10;;13834:34;;;::::0;-1:-1:-1;;;13834:34:0;;6437:2:1;13834:34:0::1;::::0;::::1;6419:21:1::0;6476:2;6456:18;;;6449:30;-1:-1:-1;;;6495:18:1;;;6488:41;6546:18;;13834:34:0::1;;;;;;;;;13879:3;:10:::0;13776:121::o;8191:206::-;8279:4;5514:10;8317:64;5514:10;8333:7;8370:10;8342:25;5514:10;8333:7;8342:9;:25::i;:::-;:38;;;;:::i;:::-;8317:8;:64::i;13430:338::-;5870:13;:11;:13::i;:::-;13521:12:::1;13507:11;:26:::0;13550:4:::1;::::0;13544:39:::1;::::0;;-1:-1:-1;;;13544:39:0;;;;-1:-1:-1;;;;;13550:4:0;;::::1;::::0;13544:19:::1;::::0;13571:9:::1;::::0;13544:39:::1;::::0;;::::1;::::0;13550:4:::1;::::0;13544:39;;;;;;;13571:9;13550:4;13544:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13601:4:0::1;::::0;13615:10:::1;::::0;13594:43:::1;::::0;-1:-1:-1;;;13594:43:0;;-1:-1:-1;;;;;13615:10:0;;::::1;13594:43;::::0;::::1;7011:51:1::0;13627:9:0::1;7078:18:1::0;;;7071:34;13601:4:0;::::1;::::0;-1:-1:-1;13594:20:0::1;::::0;-1:-1:-1;6984:18:1;;;-1:-1:-1;13594:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13648:14;13665:26;13679:4;:11;13665:9;:13;;:26;;;;:::i;:::-;13648:43;;13706:6;13702:58;13717:4;:11;13715:1;:13;13702:58;;;13734:26;13745:6;13752:4;13757:1;13752:7;;;;;;;;:::i;:::-;;;;;;;13734:10;:26::i;:::-;13729:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13702:58;;;;13496:272;13430:338:::0;:::o;6098:89::-;5870:13;:11;:13::i;:::-;6154:30:::1;6181:1;6154:18;:30::i;:::-;6098:89::o:0;13905:395::-;5870:13;:11;:13::i;:::-;11869:9:::1;:16:::0;;-1:-1:-1;;11869:16:0::1;11881:4;11869:16;::::0;;13984:4:::2;::::0;13978:39:::2;::::0;;-1:-1:-1;;;13978:39:0;;;;-1:-1:-1;;;;;13984:4:0;;::::2;::::0;13978:19:::2;::::0;14005:9:::2;::::0;13978:39:::2;::::0;;::::2;::::0;11869:9:::1;::::0;13978:39;;;;;;;14005:9;13984:4;13978:39;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;14035:4:0::2;::::0;14049:10:::2;::::0;14028:43:::2;::::0;-1:-1:-1;;;14028:43:0;;-1:-1:-1;;;;;14049:10:0;;::::2;14028:43;::::0;::::2;7011:51:1::0;14061:9:0::2;7078:18:1::0;;;7071:34;14035:4:0;::::2;::::0;-1:-1:-1;14028:20:0::2;::::0;-1:-1:-1;6984:18:1;;;-1:-1:-1;14028:43:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14110:10;;;;;;;;;-1:-1:-1::0;;;;;14110:10:0::2;-1:-1:-1::0;;;;;14102:27:0::2;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14144:4;::::0;14093:71:::2;::::0;-1:-1:-1;;;14093:71:0;;-1:-1:-1;;;;;14144:4:0;;::::2;14093:71;::::0;::::2;8106:34:1::0;14158:4:0::2;8156:18:1::0;;;8149:43;14093:50:0;::::2;::::0;::::2;::::0;8041:18:1;;14093:71:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14082:8;:82:::0;;-1:-1:-1;;;;;;14082:82:0::2;-1:-1:-1::0;;;;;14082:82:0;;::::2;;::::0;;14183:10:::2;::::0;14208:4:::2;::::0;14222::::2;-1:-1:-1::0;7453:18:0;;;;;;;;;;;14183:10;;::::2;::::0;14175:32:::2;::::0;14208:4;::::2;::::0;14229:9:::2;::::0;14175:117:::2;::::0;-1:-1:-1;;;;;;14175:117:0::2;::::0;;;;;;-1:-1:-1;;;;;8618:15:1;;;14175:117:0::2;::::0;::::2;8600:34:1::0;8670:15;;;8650:18;;;8643:43;8702:18;;;8695:34;;;;8745:18;;;8738:34;14266:1:0::2;8788:19:1::0;;;8781:35;;;8832:19;;;8825:35;8897:15;;;8876:19;;;8869:44;14276:15:0::2;8929:19:1::0;;;8922:35;8534:19;;14175:117:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11890:9:0::1;:17:::0;;-1:-1:-1;;11890:17:0::1;::::0;;-1:-1:-1;;13905:395:0:o;7073:90::-;7129:13;7153:7;7146:14;;;;;:::i;8403:412::-;8496:4;5514:10;8496:4;8579:25;5514:10;8596:7;8579:9;:25::i;:::-;8552:52;;8643:15;8623:16;:35;;8615:85;;;;-1:-1:-1;;;8615:85:0;;9481:2:1;8615:85:0;;;9463:21:1;9520:2;9500:18;;;9493:30;9559:34;9539:18;;;9532:62;-1:-1:-1;;;9610:18:1;;;9603:35;9655:19;;8615:85:0;9279:401:1;8615:85:0;8723:60;8732:5;8739:7;8767:15;8748:16;:34;8723:8;:60::i;7480:161::-;7559:4;5514:10;7597:28;5514:10;7614:2;7618:6;7597:9;:28::i;13137:156::-;5870:13;:11;:13::i;:::-;13246:38:::1;::::0;-1:-1:-1;;;13246:38:0;;13278:4:::1;13246:38;::::0;::::1;2872:51:1::0;13207:78:0::1;::::0;13235:5;;13242:2;;-1:-1:-1;;;;;13246:23:0;::::1;::::0;::::1;::::0;2845:18:1;;13246:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13207:27;:78::i;:::-;13137:156:::0;;:::o;12845:118::-;5870:13;:11;:13::i;:::-;-1:-1:-1;;;;;12921:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;12921:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12845:118::o;7647:137::-;-1:-1:-1;;;;;7754:18:0;;;7736:7;7754:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7647:137::o;12971:158::-;5870:13;:11;:13::i;:::-;13051:9:::1;13046:80;13066:19:::0;;::::1;13046:80;;;13122:4;13092:14;:27;13107:8;;13116:1;13107:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13092:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13092:27:0;:34;;-1:-1:-1;;13092:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13087:3;::::1;::::0;::::1;:::i;:::-;;;;13046:80;;;;12971:158:::0;;;:::o;6193:178::-;5870:13;:11;:13::i;:::-;-1:-1:-1;;;;;6273:22:0;::::1;6265:73;;;::::0;-1:-1:-1;;;6265:73:0;;10076:2:1;6265:73:0::1;::::0;::::1;10058:21:1::0;10115:2;10095:18;;;10088:30;10154:34;10134:18;;;10127:62;-1:-1:-1;;;10205:18:1;;;10198:36;10251:19;;6265:73:0::1;9874:402:1::0;6265:73:0::1;6340:28;6359:8;6340:18;:28::i;1242:84::-:0;1300:7;1318:5;1322:1;1318;:5;:::i;:::-;1311:12;1242:84;-1:-1:-1;;;1242:84:0:o;1152:::-;1210:7;1228:5;1232:1;1228;:5;:::i;1062:84::-;1120:7;1138:5;1142:1;1138;:5;:::i;10396:344::-;-1:-1:-1;;;;;10498:19:0;;10490:68;;;;-1:-1:-1;;;10490:68:0;;11011:2:1;10490:68:0;;;10993:21:1;11050:2;11030:18;;;11023:30;11089:34;11069:18;;;11062:62;-1:-1:-1;;;11140:18:1;;;11133:34;11184:19;;10490:68:0;10809:400:1;10490:68:0;-1:-1:-1;;;;;10577:21:0;;10569:68;;;;-1:-1:-1;;;10569:68:0;;11416:2:1;10569:68:0;;;11398:21:1;11455:2;11435:18;;;11428:30;11494:34;11474:18;;;11467:62;-1:-1:-1;;;11545:18:1;;;11538:32;11587:19;;10569:68:0;11214:398:1;10569:68:0;-1:-1:-1;;;;;10648:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10700:32;;1855:25:1;;;10700:32:0;;1828:18:1;10700:32:0;;;;;;;10396:344;;;:::o;5974:118::-;5959:6;;-1:-1:-1;;;;;5959:6:0;5514:10;6029:23;6021:68;;;;-1:-1:-1;;;6021:68:0;;11819:2:1;6021:68:0;;;11801:21:1;;;11838:18;;;11831:30;11897:34;11877:18;;;11870:62;11949:18;;6021:68:0;11617:356:1;2847:194:0;2951:12;;;2911;2951;;;;;;;;;-1:-1:-1;;;;;2929:7:0;;;2944:5;;2929:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2910:54;;;2974:7;2966:72;;;;-1:-1:-1;;;2966:72:0;;12472:2:1;2966:72:0;;;12454:21:1;12511:2;12491:18;;;12484:30;12550:34;12530:18;;;12523:62;-1:-1:-1;;;12601:18:1;;;12594:50;12661:19;;2966:72:0;12270:416:1;10746:389:0;10847:24;10874:25;10884:5;10891:7;10874:9;:25::i;:::-;10847:52;;-1:-1:-1;;10914:16:0;:37;10910:218;;10996:6;10976:16;:26;;10968:68;;;;-1:-1:-1;;;10968:68:0;;12893:2:1;10968:68:0;;;12875:21:1;12932:2;12912:18;;;12905:30;12971:31;12951:18;;;12944:59;13020:18;;10968:68:0;12691:353:1;10968:68:0;11063:51;11072:5;11079:7;11107:6;11088:16;:25;11063:8;:51::i;14308:1112::-;-1:-1:-1;;;;;14406:18:0;;;;;;:38;;-1:-1:-1;;;;;;14428:16:0;;;;14406:38;:53;;;;-1:-1:-1;14448:11:0;;;14406:53;14398:82;;;;-1:-1:-1;;;14398:82:0;;13251:2:1;14398:82:0;;;13233:21:1;13290:2;13270:18;;;13263:30;-1:-1:-1;;;13309:18:1;;;13302:46;13365:18;;14398:82:0;13049:340:1;14398:82:0;14513:1;14499:11;;:15;:44;;;-1:-1:-1;;;;;;14518:25:0;;;;;;:19;:25;;;;;;;;14499:44;:71;;;-1:-1:-1;;;;;;14547:23:0;;;;;;:19;:23;;;;;;;;14499:71;14491:96;;;;-1:-1:-1;;;14491:96:0;;13596:2:1;14491:96:0;;;13578:21:1;13635:2;13615:18;;;13608:30;-1:-1:-1;;;13654:18:1;;;13647:42;13706:18;;14491:96:0;13394:336:1;14491:96:0;-1:-1:-1;;;;;14607:20:0;;;;;;:14;:20;;;;;;;;14606:21;14598:45;;;;-1:-1:-1;;;14598:45:0;;13937:2:1;14598:45:0;;;13919:21:1;13976:2;13956:18;;;13949:30;-1:-1:-1;;;13995:18:1;;;13988:41;14046:18;;14598:45:0;13735:335:1;14598:45:0;14660:9;;;;;:38;;-1:-1:-1;;;;;;14673:25:0;;;;;;:19;:25;;;;;;;;14660:38;:65;;;-1:-1:-1;;;;;;14702:23:0;;;;;;:19;:23;;;;;;;;14660:65;14656:152;;;14742:33;14758:4;14764:2;14768:6;14742:15;:33::i;14656:152::-;14841:8;;-1:-1:-1;;;;;14841:8:0;;;14833:16;;;;;;14893:14;;;14820:10;14833:16;;14952:15;;;14961:6;14952:15;:25;;14976:1;14952:25;;;14970:3;;14952:25;14938:39;;14994:6;14990:209;;;15049:11;;15039:4;7435:7;7453:18;;;;;;;;;;;15021:39;15017:116;;15090:11;;15103:13;;15081:36;;15090:11;-1:-1:-1;;;;;15103:13:0;15081:8;:36::i;:::-;15162:1;15153:6;:10;15149:38;;;15174:13;:6;15185:1;15174:10;:13::i;:::-;15165:22;;15149:38;15211:17;15231:24;15251:3;15231:15;:6;15242:3;15231:10;:15::i;:::-;:19;;:24::i;:::-;15211:44;-1:-1:-1;15270:13:0;;15266:103;;15296:21;:6;15307:9;15296:10;:21::i;:::-;15287:30;;15319:47;15335:4;15349;15356:9;15319:15;:47::i;:::-;15379:33;15395:4;15401:2;15405:6;15379:15;:33::i;:::-;14387:1033;;;;14308:1112;;;:::o;15771:340::-;11869:9;:16;;-1:-1:-1;;11869:16:0;11881:4;11869:16;;;15848:24;;15865:7:::1;15848:24;15906:16;::::0;;15920:1:::1;15906:16:::0;;;;;::::1;::::0;;15882:21:::1;::::0;15906:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;15943:4:0::1;::::0;15933:7;;;;-1:-1:-1;;;;;;15943:4:0::1;::::0;15933:7;;-1:-1:-1;15943:4:0::1;::::0;15933:7:::1;;;;:::i;:::-;;;;;;:14;-1:-1:-1::0;;;;;15933:14:0::1;;;-1:-1:-1::0;;;;;15933:14:0::1;;;::::0;::::1;15976:4;15958;15963:1;15958:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15958:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;16000:10:::1;::::0;15992:111:::1;::::0;-1:-1:-1;;;15992:111:0;;16000:10;::::1;::::0;15992:73:::1;::::0;:111:::1;::::0;16066:6;;16000:10:::1;::::0;16077:4;;16083:2;;16087:15:::1;::::0;15992:111:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15837:274;11887:1;-1:-1:-1::0;;11890:9:0;:17;;-1:-1:-1;;11890:17:0;;;15771:340::o;6377:159::-;6461:6;;;-1:-1:-1;;;;;6469:17:0;;;-1:-1:-1;;;;;;6469:17:0;;;;;;;6493:40;;6461:6;;;6469:17;6461:6;;6493:40;;6442:16;;6493:40;6440:96;6377:159;:::o;2231:288::-;2353:45;;;-1:-1:-1;;;;;7029:32:1;;;2353:45:0;;;7011:51:1;7078:18;;;;7071:34;;;2353:45:0;;;;;;;;;;6984:18:1;;;;2353:45:0;;;;;;;-1:-1:-1;;;;;2353:45:0;-1:-1:-1;;;2353:45:0;;;2342:57;;-1:-1:-1;;;;2342:10:0;;;;:57;;2353:45;2342:57;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2306:93;;;;2409:7;:57;;;;-1:-1:-1;2421:11:0;;:16;;:44;;;2452:4;2441:24;;;;;;;;;;;;:::i;:::-;2401:115;;;;-1:-1:-1;;;2401:115:0;;15262:2:1;2401:115:0;;;15244:21:1;15301:2;15281:18;;;15274:30;15340:34;15320:18;;;15313:62;-1:-1:-1;;;15391:18:1;;;15384:43;15444:19;;2401:115:0;15060:409:1;2401:115:0;2304:215;;2231:288;;;:::o;8821:598::-;-1:-1:-1;;;;;8918:18:0;;8910:68;;;;-1:-1:-1;;;8910:68:0;;15676:2:1;8910:68:0;;;15658:21:1;15715:2;15695:18;;;15688:30;15754:34;15734:18;;;15727:62;-1:-1:-1;;;15805:18:1;;;15798:35;15850:19;;8910:68:0;15474:401:1;8910:68:0;-1:-1:-1;;;;;8997:16:0;;8989:64;;;;-1:-1:-1;;;8989:64:0;;16082:2:1;8989:64:0;;;16064:21:1;16121:2;16101:18;;;16094:30;16160:34;16140:18;;;16133:62;-1:-1:-1;;;16211:18:1;;;16204:33;16254:19;;8989:64:0;15880:399:1;8989:64:0;-1:-1:-1;;;;;9135:15:0;;9113:19;9135:15;;;;;;;;;;;9169:21;;;;9161:72;;;;-1:-1:-1;;;9161:72:0;;16486:2:1;9161:72:0;;;16468:21:1;16525:2;16505:18;;;16498:30;16564:34;16544:18;;;16537:62;-1:-1:-1;;;16615:18:1;;;16608:36;16661:19;;9161:72:0;16284:402:1;9161:72:0;-1:-1:-1;;;;;9256:15:0;;;:9;:15;;;;;;;;;;;9274:20;;;9256:38;;9296:13;;;;;;;;;;:23;;;;;;9337:26;;1855:25:1;;;9296:13:0;;9337:26;;1828:18:1;9337:26:0;;;;;;;9374:37;13430:338;15428:335;11869:9;:16;;-1:-1:-1;;11869:16:0;11881:4;11869:16;;;15503:24;;15520:7:::1;15503:24;15561:16;::::0;;15575:1:::1;15561:16:::0;;;;;::::1;::::0;;15537:21:::1;::::0;15561:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15561:16:0::1;15537:40;;15606:4;15588;15593:1;15588:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15588:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15632:4:::1;::::0;15622:7;;15632:4;::::1;::::0;15622;;15632;;15622:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15622:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15655:10:::1;::::0;15647:108:::1;::::0;-1:-1:-1;;;15647:108:0;;15655:10;::::1;::::0;15647:70:::1;::::0;:108:::1;::::0;15718:6;;15655:10:::1;::::0;15729:4;;15735:2;;15739:15:::1;::::0;15647:108:::1;;;:::i;14:250:1:-:0;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:131::-;-1:-1:-1;;;;;745:31:1;;735:42;;725:70;;791:1;788;781:12;806:134;874:20;;903:31;874:20;903:31;:::i;:::-;806:134;;;:::o;945:315::-;1013:6;1021;1074:2;1062:9;1053:7;1049:23;1045:32;1042:52;;;1090:1;1087;1080:12;1042:52;1129:9;1116:23;1148:31;1173:5;1148:31;:::i;:::-;1198:5;1250:2;1235:18;;;;1222:32;;-1:-1:-1;;;945:315:1:o;1457:247::-;1516:6;1569:2;1557:9;1548:7;1544:23;1540:32;1537:52;;;1585:1;1582;1575:12;1537:52;1624:9;1611:23;1643:31;1668:5;1643:31;:::i;1891:456::-;1968:6;1976;1984;2037:2;2025:9;2016:7;2012:23;2008:32;2005:52;;;2053:1;2050;2043:12;2005:52;2092:9;2079:23;2111:31;2136:5;2111:31;:::i;:::-;2161:5;-1:-1:-1;2218:2:1;2203:18;;2190:32;2231:33;2190:32;2231:33;:::i;:::-;1891:456;;2283:7;;-1:-1:-1;;;2337:2:1;2322:18;;;;2309:32;;1891:456::o;2352:180::-;2411:6;2464:2;2452:9;2443:7;2439:23;2435:32;2432:52;;;2480:1;2477;2470:12;2432:52;-1:-1:-1;2503:23:1;;2352:180;-1:-1:-1;2352:180:1:o;2934:127::-;2995:10;2990:3;2986:20;2983:1;2976:31;3026:4;3023:1;3016:15;3050:4;3047:1;3040:15;3066:1121;3150:6;3181:2;3224;3212:9;3203:7;3199:23;3195:32;3192:52;;;3240:1;3237;3230:12;3192:52;3280:9;3267:23;3309:18;3350:2;3342:6;3339:14;3336:34;;;3366:1;3363;3356:12;3336:34;3404:6;3393:9;3389:22;3379:32;;3449:7;3442:4;3438:2;3434:13;3430:27;3420:55;;3471:1;3468;3461:12;3420:55;3507:2;3494:16;3529:2;3525;3522:10;3519:36;;;3535:18;;:::i;:::-;3581:2;3578:1;3574:10;3613:2;3607:9;3676:2;3672:7;3667:2;3663;3659:11;3655:25;3647:6;3643:38;3731:6;3719:10;3716:22;3711:2;3699:10;3696:18;3693:46;3690:72;;;3742:18;;:::i;:::-;3778:2;3771:22;3828:18;;;3862:15;;;;-1:-1:-1;3904:11:1;;;3900:20;;;3932:19;;;3929:39;;;3964:1;3961;3954:12;3929:39;3988:11;;;;4008:148;4024:6;4019:3;4016:15;4008:148;;;4090:23;4109:3;4090:23;:::i;:::-;4078:36;;4041:12;;;;4134;;;;4008:148;;;4175:6;3066:1121;-1:-1:-1;;;;;;;;3066:1121:1:o;4192:388::-;4260:6;4268;4321:2;4309:9;4300:7;4296:23;4292:32;4289:52;;;4337:1;4334;4327:12;4289:52;4376:9;4363:23;4395:31;4420:5;4395:31;:::i;:::-;4445:5;-1:-1:-1;4502:2:1;4487:18;;4474:32;4515:33;4474:32;4515:33;:::i;:::-;4567:7;4557:17;;;4192:388;;;;;:::o;4585:118::-;4671:5;4664:13;4657:21;4650:5;4647:32;4637:60;;4693:1;4690;4683:12;4708:382;4773:6;4781;4834:2;4822:9;4813:7;4809:23;4805:32;4802:52;;;4850:1;4847;4840:12;4802:52;4889:9;4876:23;4908:31;4933:5;4908:31;:::i;:::-;4958:5;-1:-1:-1;5015:2:1;5000:18;;4987:32;5028:30;4987:32;5028:30;:::i;5095:750::-;5187:6;5195;5203;5256:2;5244:9;5235:7;5231:23;5227:32;5224:52;;;5272:1;5269;5262:12;5224:52;5312:9;5299:23;5341:18;5382:2;5374:6;5371:14;5368:34;;;5398:1;5395;5388:12;5368:34;5436:6;5425:9;5421:22;5411:32;;5481:7;5474:4;5470:2;5466:13;5462:27;5452:55;;5503:1;5500;5493:12;5452:55;5543:2;5530:16;5569:2;5561:6;5558:14;5555:34;;;5585:1;5582;5575:12;5555:34;5640:7;5633:4;5623:6;5620:1;5616:14;5612:2;5608:23;5604:34;5601:47;5598:67;;;5661:1;5658;5651:12;5598:67;5692:4;5684:13;;;;-1:-1:-1;5716:6:1;-1:-1:-1;;5757:20:1;;5744:34;5787:28;5744:34;5787:28;:::i;:::-;5834:5;5824:15;;;5095:750;;;;;:::o;5850:380::-;5929:1;5925:12;;;;5972;;;5993:61;;6047:4;6039:6;6035:17;6025:27;;5993:61;6100:2;6092:6;6089:14;6069:18;6066:38;6063:161;;6146:10;6141:3;6137:20;6134:1;6127:31;6181:4;6178:1;6171:15;6209:4;6206:1;6199:15;6063:161;;5850:380;;;:::o;6575:127::-;6636:10;6631:3;6627:20;6624:1;6617:31;6667:4;6664:1;6657:15;6691:4;6688:1;6681:15;6707:125;6772:9;;;6793:10;;;6790:36;;;6806:18;;:::i;7116:245::-;7183:6;7236:2;7224:9;7215:7;7211:23;7207:32;7204:52;;;7252:1;7249;7242:12;7204:52;7284:9;7278:16;7303:28;7325:5;7303:28;:::i;7366:127::-;7427:10;7422:3;7418:20;7415:1;7408:31;7458:4;7455:1;7448:15;7482:4;7479:1;7472:15;7498:135;7537:3;7558:17;;;7555:43;;7578:18;;:::i;:::-;-1:-1:-1;7625:1:1;7614:13;;7498:135::o;7638:251::-;7708:6;7761:2;7749:9;7740:7;7736:23;7732:32;7729:52;;;7777:1;7774;7767:12;7729:52;7809:9;7803:16;7828:31;7853:5;7828:31;:::i;8968:306::-;9056:6;9064;9072;9125:2;9113:9;9104:7;9100:23;9096:32;9093:52;;;9141:1;9138;9131:12;9093:52;9170:9;9164:16;9154:26;;9220:2;9209:9;9205:18;9199:25;9189:35;;9264:2;9253:9;9249:18;9243:25;9233:35;;8968:306;;;;;:::o;9685:184::-;9755:6;9808:2;9796:9;9787:7;9783:23;9779:32;9776:52;;;9824:1;9821;9814:12;9776:52;-1:-1:-1;9847:16:1;;9685:184;-1:-1:-1;9685:184:1:o;10281:217::-;10321:1;10347;10337:132;;10391:10;10386:3;10382:20;10379:1;10372:31;10426:4;10423:1;10416:15;10454:4;10451:1;10444:15;10337:132;-1:-1:-1;10483:9:1;;10281:217::o;10503:168::-;10576:9;;;10607;;10624:15;;;10618:22;;10604:37;10594:71;;10645:18;;:::i;10676:128::-;10743:9;;;10764:11;;;10761:37;;;10778:18;;:::i;11978:287::-;12107:3;12145:6;12139:13;12161:66;12220:6;12215:3;12208:4;12200:6;12196:17;12161:66;:::i;:::-;12243:16;;;;;11978:287;-1:-1:-1;;11978:287:1:o;14075:980::-;14337:4;14385:3;14374:9;14370:19;14416:6;14405:9;14398:25;14442:2;14480:6;14475:2;14464:9;14460:18;14453:34;14523:3;14518:2;14507:9;14503:18;14496:31;14547:6;14582;14576:13;14613:6;14605;14598:22;14651:3;14640:9;14636:19;14629:26;;14690:2;14682:6;14678:15;14664:29;;14711:1;14721:195;14735:6;14732:1;14729:13;14721:195;;;14800:13;;-1:-1:-1;;;;;14796:39:1;14784:52;;14891:15;;;;14856:12;;;;14832:1;14750:9;14721:195;;;-1:-1:-1;;;;;;;14972:32:1;;;;14967:2;14952:18;;14945:60;-1:-1:-1;;;15036:3:1;15021:19;15014:35;14933:3;14075:980;-1:-1:-1;;;14075:980:1:o

Swarm Source

ipfs://939360a9d243cb78f37f75f905b80c14c200fce4a778064318a64aea329838cc
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.