ETH Price: $3,366.76 (-0.02%)
Gas: 6.27 Gwei

Token

Pepe Bond (007)
 

Overview

Max Total Supply

50,000,000,000,000,000 007

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 007

Value
$0.00
0x3153c2ecd40376625254e28f8b752ecbc1e8c0d8
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TOKEN

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

    pragma solidity ^0.8.4;

    interface IERC20 {
        
        function totalSupply() external view returns (uint256);
        function balanceOf(address account) external view returns (uint256);
        function transfer(address recipient, uint256 amount) external returns (bool);
        function allowance(address owner, address spender) external view returns (uint256);
        function approve(address spender, uint256 amount) external returns (bool);
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
        
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }

    library SafeMath {
        
        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 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;
            }
        }
        
    }

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

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

    abstract contract Ownable is Context {
        address internal _owner;
        address private _previousOwner;

        event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
        constructor () {
            _owner = _msgSender();
            emit OwnershipTransferred(address(0), _owner);
        }
        
        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 {
            emit OwnershipTransferred(_owner, address(0));
            _owner = address(0);
        }

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

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

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

        mapping(address => uint256) private _balances;

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

        uint256 private _totalSupply;

        string private _name;
        string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

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

        function _transfer(
            address sender,
            address recipient,
            uint256 amount
        ) internal virtual {
            require(sender != address(0), "ERC20: transfer from the zero address");
            require(recipient != address(0), "ERC20: transfer to the zero address");

            _beforeTokenTransfer(sender, recipient, amount);

            _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }

        function _mint(address account, uint256 amount) internal virtual {
            require(account != address(0), "ERC20: mint to the zero address");

            _beforeTokenTransfer(address(0), account, amount);

            _totalSupply = _totalSupply.add(amount);
            _balances[account] = _balances[account].add(amount);
            emit Transfer(address(0), account, amount);
        }

        function _burn(address account, uint256 amount) internal virtual {
            require(account != address(0), "ERC20: burn from the zero address");

            _beforeTokenTransfer(account, address(0), amount);

            _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
            _totalSupply = _totalSupply.sub(amount);
            emit Transfer(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 _beforeTokenTransfer(
            address from,
            address to,
            uint256 amount
        ) internal virtual {}
    }


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

    interface IUniswapV2Pair {
        function factory() external view returns (address);
    }

    interface IUniswapV2Router01 {
        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);
    }

    interface IUniswapV2Router02 is IUniswapV2Router01 {     
       function swapExactTokensForETHSupportingFeeOnTransferTokens(
            uint amountIn,
            uint amountOutMin,
            address[] calldata path,
            address to,
            uint deadline
        ) external;
    }

    contract TOKEN is ERC20 {
        
        using SafeMath for uint256;

        mapping (address => bool) private _isExcludedFromFee;

        address public _marketingWalletAddress;
        address constant _burnAddress = 0x000000000000000000000000000000000000dEaD;


        uint256 public _buyLiquidityFee = 10;  
        uint256 public _buyMarketingFee = 20;
        uint256 public _buyBurnFee = 5;  

        uint256 public _sellLiquidityFee = 10; 
        uint256 public _sellMarketingFee = 50; 
        uint256 public _sellBurnFee = 5;


        IUniswapV2Router02 public uniswapV2Router;
        address public uniswapV2Pair;
        bool inSwapAndLiquify;
        bool public swapAndLiquifyEnabled = true;
        uint256 public numTokensSellToAddToLiquidity;
        event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
        event SwapAndLiquifyEnabledUpdated(bool enabled);
        event SwapAndLiquify(
            uint256 tokensSwapped,
            uint256 ethReceived,
            uint256 tokensIntoLiqudity
        );
        
        modifier lockTheSwap {
            inSwapAndLiquify = true;
            _;
            inSwapAndLiquify = false;
        }
        
        constructor () ERC20("Pepe Bond", "007"){

            numTokensSellToAddToLiquidity = 1000000000000 * 10 ** decimals();
            _marketingWalletAddress = 0xc8f41d14e7EDBBBAe1e0F6449C727A794f8Fb8EA;
            
            IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());

            uniswapV2Router = _uniswapV2Router;
            
            _isExcludedFromFee[_msgSender()] = true;
            _isExcludedFromFee[address(this)] = true;
            _isExcludedFromFee[_marketingWalletAddress] = true;

            _mint(owner(), 35000000000000000 * 10 ** decimals());
            _mint(_marketingWalletAddress, 15000000000000000 * 10 ** decimals());
        }

        function burn(uint tokens) external onlyOwner {
            _burn(msg.sender, tokens * 10 ** decimals());
        }

        function excludeFromFee(address account) public onlyOwner {
            _isExcludedFromFee[account] = true;
        }
        
        function includeInFee(address account) public onlyOwner {
            _isExcludedFromFee[account] = false;
        }

        function setSellFeePercent(
            uint256 lFee,
            uint256 mFee,
            uint256 bFee
        ) external onlyOwner {
            _sellLiquidityFee = lFee;
            _sellMarketingFee = mFee;
            _sellBurnFee = bFee;
        }

        function setBuyFeePercent(
            uint256 lFee,
            uint256 mFee,
            uint256 bFee
        ) external onlyOwner {
            _buyLiquidityFee = lFee;
            _buyMarketingFee = mFee;
            _buyBurnFee = bFee;
        }

        function setMarketingWalletAddress(address _addr) external onlyOwner {
            _marketingWalletAddress = _addr;
        }  

        function setNumTokensSellToAddToLiquidity(uint256 amount) external onlyOwner {
            numTokensSellToAddToLiquidity = amount * 10 ** decimals();
        }

        function setRouterAddress(address newRouter) external onlyOwner {
            IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouter);
            uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
            uniswapV2Router = _uniswapV2Router;
        }

        function setSwapAndLiquifyEnabled(bool _enabled) external onlyOwner {
            swapAndLiquifyEnabled = _enabled;
            emit SwapAndLiquifyEnabledUpdated(_enabled);
        }
        
        receive() external payable {}

        function isExcludedFromFee(address account) public view returns(bool) {
            return _isExcludedFromFee[account];
        }

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

            uint256 contractTokenBalance = balanceOf(address(this)); 
            bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
            if (
                overMinTokenBalance &&
                !inSwapAndLiquify &&
                from != uniswapV2Pair &&
                swapAndLiquifyEnabled
            ) {
                contractTokenBalance = numTokensSellToAddToLiquidity;
                swapBack(contractTokenBalance);
            }

            bool takeFee = true;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            super._transfer(from, to, amount);
            takeFee = false;
        } else {

            if (from == uniswapV2Pair) {
                uint256 liquidityTokens = amount.mul(_buyLiquidityFee).div(1000);
                uint256 marketingTokens = amount.mul(_buyMarketingFee).div(1000);
                uint256 burnTokens = amount.mul(_buyBurnFee).div(1000);
                amount= amount.sub(liquidityTokens.add(marketingTokens).add(burnTokens));
                super._transfer(from, address(this), liquidityTokens.add(marketingTokens));
                super._transfer(from,_burnAddress,burnTokens);
                super._transfer(from, to, amount);

            } else if (to == uniswapV2Pair) {
                uint256 liquidityTokens = amount.mul(_sellLiquidityFee).div(1000);
                uint256 marketingTokens = amount.mul(_sellMarketingFee).div(1000);
                uint256 burnTokens = amount.mul(_sellBurnFee).div(1000);
                amount= amount.sub(liquidityTokens.add(marketingTokens).add(burnTokens));
                super._transfer(from, address(this), liquidityTokens.add(marketingTokens));
                super._transfer(from,_burnAddress, burnTokens);
                super._transfer(from, to, amount);
            } else {
                super._transfer(from, to, amount);
            }
        }
        }

        function swapBack(uint256 contractBalance) private lockTheSwap {

                uint256 tokensForLiquidity = contractBalance.mul(_sellLiquidityFee).div(100);
                uint256 marketingTokens = contractBalance.mul(_sellMarketingFee).div(100);

                uint256 totalTokensToSwap = tokensForLiquidity + marketingTokens;
                
                if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

                bool success;
                
                uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
                
                swapTokensForEth(contractBalance - liquidityTokens); 
                
                uint256 ethBalance = address(this).balance;
                uint256 ethForLiquidity = ethBalance;

                uint256 ethForMarketing = ethBalance * marketingTokens / (totalTokensToSwap - (tokensForLiquidity/2));

                ethForLiquidity -= ethForMarketing;
                                
                if(liquidityTokens > 0 && ethForLiquidity > 0){
                    addLiquidity(liquidityTokens, ethForLiquidity);

                }

                (success,) = address(_marketingWalletAddress).call{value: ethForMarketing}("");
        }       

        function swapTokensForEth(uint256 tokenAmount) private {
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0, // accept any amount of ETH
                path,
                address(this),
                block.timestamp
            );
        }

        function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.addLiquidityETH{value: ethAmount}(
                address(this),
                tokenAmount,
                0, // slippage is unavoidable
                0, // slippage is unavoidable
                owner(),
                block.timestamp
            );
        }
    }

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":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","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":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"},{"internalType":"uint256","name":"bFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"},{"internalType":"uint256","name":"bFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a6009819055601481556005600b819055600c919091556032600d55600e556010805460ff60a81b1916600160a81b1790553480156200004457600080fd5b506040518060400160405280600981526020016814195c1948109bdb9960ba1b8152506040518060400160405280600381526020016230303760e81b81525062000093620003b860201b60201c565b600080546001600160a01b0319166001600160a01b039290921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36005620000e8838262000586565b506006620000f7828262000586565b5062000104915050600990565b6200011190600a62000765565b620001229064e8d4a5100062000776565b601155600880546001600160a01b03191673c8f41d14e7edbbbae1e0f6449c727a794f8fb8ea1790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa1580156200019f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c5919062000790565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000213573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000239919062000790565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ad919062000790565b601080546001600160a01b03199081166001600160a01b0393841617909155600f8054909116918316919091179055600160076000620002ea3390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260079093528183208054851660019081179091556008549091168352912080549092161790556200037f620003586000546001600160a01b031690565b620003666009600a62000765565b6200037990667c58508723800062000776565b620003bc565b600854620003b1906001600160a01b03166200039e6009600a62000765565b620003799066354a6ba7a1800062000776565b50620007d8565b3390565b6001600160a01b038216620004175760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b6200043381600454620004cb60201b62000dc81790919060201c565b6004556001600160a01b0382166000908152600260209081526040909120546200046891839062000dc8620004cb821b17901c565b6001600160a01b0383166000818152600260205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620004ba9085815260200190565b60405180910390a35050565b505050565b6000620004d98284620007c2565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200050d57607f821691505b6020821081036200052e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004c657600081815260208120601f850160051c810160208610156200055d5750805b601f850160051c820191505b818110156200057e5782815560010162000569565b505050505050565b81516001600160401b03811115620005a257620005a2620004e2565b620005ba81620005b38454620004f8565b8462000534565b602080601f831160018114620005f25760008415620005d95750858301515b600019600386901b1c1916600185901b1785556200057e565b600085815260208120601f198616915b82811015620006235788860151825594840194600190910190840162000602565b5085821015620006425787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006a95781600019048211156200068d576200068d62000652565b808516156200069b57918102915b93841c93908002906200066d565b509250929050565b600082620006c257506001620004dc565b81620006d157506000620004dc565b8160018114620006ea5760028114620006f55762000715565b6001915050620004dc565b60ff84111562000709576200070962000652565b50506001821b620004dc565b5060208310610133831016604e8410600b84101617156200073a575081810a620004dc565b62000746838362000668565b80600019048211156200075d576200075d62000652565b029392505050565b6000620004d960ff841683620006b1565b8082028115828204841417620004dc57620004dc62000652565b600060208284031215620007a357600080fd5b81516001600160a01b0381168114620007bb57600080fd5b9392505050565b80820180821115620004dc57620004dc62000652565b611d5180620007e86000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063c49b9a80116100a0578063dc44b6a01161006f578063dc44b6a0146105e4578063dd62ed3e146105fa578063ea2f0b3714610640578063f0f165af14610660578063f2fde38b1461068057600080fd5b8063c49b9a8014610582578063c5d24189146105a2578063c8607952146105b8578063d12a7688146105ce57600080fd5b80638da5cb5b116100e75780638da5cb5b146104ef57806395d89b411461050d578063a457c2d714610522578063a9059cbb14610542578063be19674b1461056257600080fd5b806370a0823114610478578063715018a6146104ae5780637abdc1ca146104c357806388790a68146104d957600080fd5b8063395093511161019b578063437823ec1161016a578063437823ec146103be57806349bd5a5e146103de5780634a74bb02146103fe5780634cb80fd51461041f5780635342acb41461043f57600080fd5b8063395093511461033e5780634144d9e41461035e57806341cb87fc1461037e57806342966c681461039e57600080fd5b806316f2f1a8116101d757806316f2f1a8146102c957806318160ddd146102ed57806323b872dd14610302578063313ce5671461032257600080fd5b806306fdde0314610214578063095ea7b31461023f578063151cd1c21461026f5780631694505e1461029157600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b506102296106a0565b60405161023691906117c8565b60405180910390f35b34801561024b57600080fd5b5061025f61025a36600461182b565b610732565b6040519015158152602001610236565b34801561027b57600080fd5b5061028f61028a366004611857565b610749565b005b34801561029d57600080fd5b50600f546102b1906001600160a01b031681565b6040516001600160a01b039091168152602001610236565b3480156102d557600080fd5b506102df600b5481565b604051908152602001610236565b3480156102f957600080fd5b506004546102df565b34801561030e57600080fd5b5061025f61031d366004611883565b61078a565b34801561032e57600080fd5b5060405160098152602001610236565b34801561034a57600080fd5b5061025f61035936600461182b565b6107f3565b34801561036a57600080fd5b506008546102b1906001600160a01b031681565b34801561038a57600080fd5b5061028f6103993660046118c4565b610829565b3480156103aa57600080fd5b5061028f6103b93660046118e1565b6109ce565b3480156103ca57600080fd5b5061028f6103d93660046118c4565b610a1a565b3480156103ea57600080fd5b506010546102b1906001600160a01b031681565b34801561040a57600080fd5b5060105461025f90600160a81b900460ff1681565b34801561042b57600080fd5b5061028f61043a3660046118c4565b610a68565b34801561044b57600080fd5b5061025f61045a3660046118c4565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561048457600080fd5b506102df6104933660046118c4565b6001600160a01b031660009081526002602052604090205490565b3480156104ba57600080fd5b5061028f610ab4565b3480156104cf57600080fd5b506102df600e5481565b3480156104e557600080fd5b506102df600c5481565b3480156104fb57600080fd5b506000546001600160a01b03166102b1565b34801561051957600080fd5b50610229610b28565b34801561052e57600080fd5b5061025f61053d36600461182b565b610b37565b34801561054e57600080fd5b5061025f61055d36600461182b565b610b86565b34801561056e57600080fd5b5061028f61057d366004611857565b610b93565b34801561058e57600080fd5b5061028f61059d3660046118fa565b610bcb565b3480156105ae57600080fd5b506102df600a5481565b3480156105c457600080fd5b506102df600d5481565b3480156105da57600080fd5b506102df60115481565b3480156105f057600080fd5b506102df60095481565b34801561060657600080fd5b506102df61061536600461191c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561064c57600080fd5b5061028f61065b3660046118c4565b610c4d565b34801561066c57600080fd5b5061028f61067b3660046118e1565b610c98565b34801561068c57600080fd5b5061028f61069b3660046118c4565b610cde565b6060600580546106af90611955565b80601f01602080910402602001604051908101604052809291908181526020018280546106db90611955565b80156107285780601f106106fd57610100808354040283529160200191610728565b820191906000526020600020905b81548152906001019060200180831161070b57829003601f168201915b5050505050905090565b600061073f338484610ddb565b5060015b92915050565b6000546001600160a01b0316331461077c5760405162461bcd60e51b81526004016107739061198f565b60405180910390fd5b600c92909255600d55600e55565b6000610797848484610f00565b6107e984336107e485604051806060016040528060288152602001611ccf602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906111c9565b610ddb565b5060019392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161073f9185906107e49086610dc8565b6000546001600160a01b031633146108535760405162461bcd60e51b81526004016107739061198f565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610896573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ba91906119c4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092b91906119c4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c91906119c4565b601080546001600160a01b039283166001600160a01b031991821617909155600f805493909216921691909117905550565b6000546001600160a01b031633146109f85760405162461bcd60e51b81526004016107739061198f565b610a1733610a086009600a611adb565b610a129084611aea565b6111f5565b50565b6000546001600160a01b03163314610a445760405162461bcd60e51b81526004016107739061198f565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610a925760405162461bcd60e51b81526004016107739061198f565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ade5760405162461bcd60e51b81526004016107739061198f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600680546106af90611955565b600061073f33846107e485604051806060016040528060258152602001611cf7602591393360009081526003602090815260408083206001600160a01b038d16845290915290205491906111c9565b600061073f338484610f00565b6000546001600160a01b03163314610bbd5760405162461bcd60e51b81526004016107739061198f565b600992909255600a55600b55565b6000546001600160a01b03163314610bf55760405162461bcd60e51b81526004016107739061198f565b60108054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610c4290831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610c775760405162461bcd60e51b81526004016107739061198f565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b03163314610cc25760405162461bcd60e51b81526004016107739061198f565b610cce6009600a611adb565b610cd89082611aea565b60115550565b6000546001600160a01b03163314610d085760405162461bcd60e51b81526004016107739061198f565b6001600160a01b038116610d6d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610773565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610dd48284611b01565b9392505050565b6001600160a01b038316610e3d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610773565b6001600160a01b038216610e9e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610773565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610f265760405162461bcd60e51b815260040161077390611b14565b6001600160a01b038216610f4c5760405162461bcd60e51b815260040161077390611b59565b60008111610fae5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610773565b3060009081526002602052604090205460115481108015908190610fdc5750601054600160a01b900460ff16155b8015610ff657506010546001600160a01b03868116911614155b801561100b5750601054600160a81b900460ff165b1561101e57601154915061101e82611300565b6001600160a01b03851660009081526007602052604090205460019060ff168061106057506001600160a01b03851660009081526007602052604090205460ff165b1561107857611070868686611471565b5060006111c1565b6010546001600160a01b03908116908716036111455760006110b16103e86110ab6009548861157d90919063ffffffff16565b90611589565b905060006110d06103e86110ab600a548961157d90919063ffffffff16565b905060006110ef6103e86110ab600b548a61157d90919063ffffffff16565b905061110f611108826111028686610dc8565b90610dc8565b8890611595565b965061112589306111208686610dc8565b611471565b6111328961dead83611471565b61113d898989611471565b5050506111c1565b6010546001600160a01b03908116908616036111b65760006111786103e86110ab600c548861157d90919063ffffffff16565b905060006111976103e86110ab600d548961157d90919063ffffffff16565b905060006110ef6103e86110ab600e548a61157d90919063ffffffff16565b6111c1868686611471565b505050505050565b600081848411156111ed5760405162461bcd60e51b815260040161077391906117c8565b505050900390565b6001600160a01b0382166112555760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610773565b61129281604051806060016040528060228152602001611c87602291396001600160a01b03851660009081526002602052604090205491906111c9565b6001600160a01b0383166000908152600260205260409020556004546112b89082611595565b6004556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6010805460ff60a01b1916600160a01b179055600c5460009061132b906064906110ab90859061157d565b9050600061134960646110ab600d548661157d90919063ffffffff16565b905060006113578284611b01565b9050831580611364575080155b1561137157505050611461565b6000806002836113818789611aea565b61138b9190611b9c565b6113959190611b9c565b90506113a96113a48288611bbe565b6115a1565b478060006113b8600289611b9c565b6113c29087611bbe565b6113cc8885611aea565b6113d69190611b9c565b90506113e28183611bbe565b91506000841180156113f45750600082115b156114035761140384836116f3565b6008546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611450576040519150601f19603f3d011682016040523d82523d6000602084013e611455565b606091505b50505050505050505050505b506010805460ff60a01b19169055565b6001600160a01b0383166114975760405162461bcd60e51b815260040161077390611b14565b6001600160a01b0382166114bd5760405162461bcd60e51b815260040161077390611b59565b6114fa81604051806060016040528060268152602001611ca9602691396001600160a01b03861660009081526002602052604090205491906111c9565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546115299082610dc8565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef39085815260200190565b6000610dd48284611aea565b6000610dd48284611b9c565b6000610dd48284611bbe565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115d6576115d6611bd1565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561162f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165391906119c4565b8160018151811061166657611666611bd1565b6001600160a01b039283166020918202929092010152600f5461168c9130911684610ddb565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac947906116c5908590600090869030904290600401611be7565b600060405180830381600087803b1580156116df57600080fd5b505af11580156111c1573d6000803e3d6000fd5b600f5461170b9030906001600160a01b031684610ddb565b600f546001600160a01b031663f305d7198230856000806117346000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561179c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117c19190611c58565b5050505050565b600060208083528351808285015260005b818110156117f5578581018301518582016040015282016117d9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a1757600080fd5b6000806040838503121561183e57600080fd5b823561184981611816565b946020939093013593505050565b60008060006060848603121561186c57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561189857600080fd5b83356118a381611816565b925060208401356118b381611816565b929592945050506040919091013590565b6000602082840312156118d657600080fd5b8135610dd481611816565b6000602082840312156118f357600080fd5b5035919050565b60006020828403121561190c57600080fd5b81358015158114610dd457600080fd5b6000806040838503121561192f57600080fd5b823561193a81611816565b9150602083013561194a81611816565b809150509250929050565b600181811c9082168061196957607f821691505b60208210810361198957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119d657600080fd5b8151610dd481611816565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a32578160001904821115611a1857611a186119e1565b80851615611a2557918102915b93841c93908002906119fc565b509250929050565b600082611a4957506001610743565b81611a5657506000610743565b8160018114611a6c5760028114611a7657611a92565b6001915050610743565b60ff841115611a8757611a876119e1565b50506001821b610743565b5060208310610133831016604e8410600b8410161715611ab5575081810a610743565b611abf83836119f7565b8060001904821115611ad357611ad36119e1565b029392505050565b6000610dd460ff841683611a3a565b8082028115828204841417610743576107436119e1565b80820180821115610743576107436119e1565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082611bb957634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610743576107436119e1565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c375784516001600160a01b031683529383019391830191600101611c12565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611c6d57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220570d13d9ad0c349590f5079957ea6db8f2996a32a7c64ceae7915eabf1cf60ad64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806370a0823111610118578063c49b9a80116100a0578063dc44b6a01161006f578063dc44b6a0146105e4578063dd62ed3e146105fa578063ea2f0b3714610640578063f0f165af14610660578063f2fde38b1461068057600080fd5b8063c49b9a8014610582578063c5d24189146105a2578063c8607952146105b8578063d12a7688146105ce57600080fd5b80638da5cb5b116100e75780638da5cb5b146104ef57806395d89b411461050d578063a457c2d714610522578063a9059cbb14610542578063be19674b1461056257600080fd5b806370a0823114610478578063715018a6146104ae5780637abdc1ca146104c357806388790a68146104d957600080fd5b8063395093511161019b578063437823ec1161016a578063437823ec146103be57806349bd5a5e146103de5780634a74bb02146103fe5780634cb80fd51461041f5780635342acb41461043f57600080fd5b8063395093511461033e5780634144d9e41461035e57806341cb87fc1461037e57806342966c681461039e57600080fd5b806316f2f1a8116101d757806316f2f1a8146102c957806318160ddd146102ed57806323b872dd14610302578063313ce5671461032257600080fd5b806306fdde0314610214578063095ea7b31461023f578063151cd1c21461026f5780631694505e1461029157600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b506102296106a0565b60405161023691906117c8565b60405180910390f35b34801561024b57600080fd5b5061025f61025a36600461182b565b610732565b6040519015158152602001610236565b34801561027b57600080fd5b5061028f61028a366004611857565b610749565b005b34801561029d57600080fd5b50600f546102b1906001600160a01b031681565b6040516001600160a01b039091168152602001610236565b3480156102d557600080fd5b506102df600b5481565b604051908152602001610236565b3480156102f957600080fd5b506004546102df565b34801561030e57600080fd5b5061025f61031d366004611883565b61078a565b34801561032e57600080fd5b5060405160098152602001610236565b34801561034a57600080fd5b5061025f61035936600461182b565b6107f3565b34801561036a57600080fd5b506008546102b1906001600160a01b031681565b34801561038a57600080fd5b5061028f6103993660046118c4565b610829565b3480156103aa57600080fd5b5061028f6103b93660046118e1565b6109ce565b3480156103ca57600080fd5b5061028f6103d93660046118c4565b610a1a565b3480156103ea57600080fd5b506010546102b1906001600160a01b031681565b34801561040a57600080fd5b5060105461025f90600160a81b900460ff1681565b34801561042b57600080fd5b5061028f61043a3660046118c4565b610a68565b34801561044b57600080fd5b5061025f61045a3660046118c4565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561048457600080fd5b506102df6104933660046118c4565b6001600160a01b031660009081526002602052604090205490565b3480156104ba57600080fd5b5061028f610ab4565b3480156104cf57600080fd5b506102df600e5481565b3480156104e557600080fd5b506102df600c5481565b3480156104fb57600080fd5b506000546001600160a01b03166102b1565b34801561051957600080fd5b50610229610b28565b34801561052e57600080fd5b5061025f61053d36600461182b565b610b37565b34801561054e57600080fd5b5061025f61055d36600461182b565b610b86565b34801561056e57600080fd5b5061028f61057d366004611857565b610b93565b34801561058e57600080fd5b5061028f61059d3660046118fa565b610bcb565b3480156105ae57600080fd5b506102df600a5481565b3480156105c457600080fd5b506102df600d5481565b3480156105da57600080fd5b506102df60115481565b3480156105f057600080fd5b506102df60095481565b34801561060657600080fd5b506102df61061536600461191c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561064c57600080fd5b5061028f61065b3660046118c4565b610c4d565b34801561066c57600080fd5b5061028f61067b3660046118e1565b610c98565b34801561068c57600080fd5b5061028f61069b3660046118c4565b610cde565b6060600580546106af90611955565b80601f01602080910402602001604051908101604052809291908181526020018280546106db90611955565b80156107285780601f106106fd57610100808354040283529160200191610728565b820191906000526020600020905b81548152906001019060200180831161070b57829003601f168201915b5050505050905090565b600061073f338484610ddb565b5060015b92915050565b6000546001600160a01b0316331461077c5760405162461bcd60e51b81526004016107739061198f565b60405180910390fd5b600c92909255600d55600e55565b6000610797848484610f00565b6107e984336107e485604051806060016040528060288152602001611ccf602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906111c9565b610ddb565b5060019392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161073f9185906107e49086610dc8565b6000546001600160a01b031633146108535760405162461bcd60e51b81526004016107739061198f565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610896573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ba91906119c4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092b91906119c4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c91906119c4565b601080546001600160a01b039283166001600160a01b031991821617909155600f805493909216921691909117905550565b6000546001600160a01b031633146109f85760405162461bcd60e51b81526004016107739061198f565b610a1733610a086009600a611adb565b610a129084611aea565b6111f5565b50565b6000546001600160a01b03163314610a445760405162461bcd60e51b81526004016107739061198f565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610a925760405162461bcd60e51b81526004016107739061198f565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ade5760405162461bcd60e51b81526004016107739061198f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600680546106af90611955565b600061073f33846107e485604051806060016040528060258152602001611cf7602591393360009081526003602090815260408083206001600160a01b038d16845290915290205491906111c9565b600061073f338484610f00565b6000546001600160a01b03163314610bbd5760405162461bcd60e51b81526004016107739061198f565b600992909255600a55600b55565b6000546001600160a01b03163314610bf55760405162461bcd60e51b81526004016107739061198f565b60108054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610c4290831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610c775760405162461bcd60e51b81526004016107739061198f565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b03163314610cc25760405162461bcd60e51b81526004016107739061198f565b610cce6009600a611adb565b610cd89082611aea565b60115550565b6000546001600160a01b03163314610d085760405162461bcd60e51b81526004016107739061198f565b6001600160a01b038116610d6d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610773565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610dd48284611b01565b9392505050565b6001600160a01b038316610e3d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610773565b6001600160a01b038216610e9e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610773565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610f265760405162461bcd60e51b815260040161077390611b14565b6001600160a01b038216610f4c5760405162461bcd60e51b815260040161077390611b59565b60008111610fae5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610773565b3060009081526002602052604090205460115481108015908190610fdc5750601054600160a01b900460ff16155b8015610ff657506010546001600160a01b03868116911614155b801561100b5750601054600160a81b900460ff165b1561101e57601154915061101e82611300565b6001600160a01b03851660009081526007602052604090205460019060ff168061106057506001600160a01b03851660009081526007602052604090205460ff165b1561107857611070868686611471565b5060006111c1565b6010546001600160a01b03908116908716036111455760006110b16103e86110ab6009548861157d90919063ffffffff16565b90611589565b905060006110d06103e86110ab600a548961157d90919063ffffffff16565b905060006110ef6103e86110ab600b548a61157d90919063ffffffff16565b905061110f611108826111028686610dc8565b90610dc8565b8890611595565b965061112589306111208686610dc8565b611471565b6111328961dead83611471565b61113d898989611471565b5050506111c1565b6010546001600160a01b03908116908616036111b65760006111786103e86110ab600c548861157d90919063ffffffff16565b905060006111976103e86110ab600d548961157d90919063ffffffff16565b905060006110ef6103e86110ab600e548a61157d90919063ffffffff16565b6111c1868686611471565b505050505050565b600081848411156111ed5760405162461bcd60e51b815260040161077391906117c8565b505050900390565b6001600160a01b0382166112555760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610773565b61129281604051806060016040528060228152602001611c87602291396001600160a01b03851660009081526002602052604090205491906111c9565b6001600160a01b0383166000908152600260205260409020556004546112b89082611595565b6004556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6010805460ff60a01b1916600160a01b179055600c5460009061132b906064906110ab90859061157d565b9050600061134960646110ab600d548661157d90919063ffffffff16565b905060006113578284611b01565b9050831580611364575080155b1561137157505050611461565b6000806002836113818789611aea565b61138b9190611b9c565b6113959190611b9c565b90506113a96113a48288611bbe565b6115a1565b478060006113b8600289611b9c565b6113c29087611bbe565b6113cc8885611aea565b6113d69190611b9c565b90506113e28183611bbe565b91506000841180156113f45750600082115b156114035761140384836116f3565b6008546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611450576040519150601f19603f3d011682016040523d82523d6000602084013e611455565b606091505b50505050505050505050505b506010805460ff60a01b19169055565b6001600160a01b0383166114975760405162461bcd60e51b815260040161077390611b14565b6001600160a01b0382166114bd5760405162461bcd60e51b815260040161077390611b59565b6114fa81604051806060016040528060268152602001611ca9602691396001600160a01b03861660009081526002602052604090205491906111c9565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546115299082610dc8565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef39085815260200190565b6000610dd48284611aea565b6000610dd48284611b9c565b6000610dd48284611bbe565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115d6576115d6611bd1565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561162f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165391906119c4565b8160018151811061166657611666611bd1565b6001600160a01b039283166020918202929092010152600f5461168c9130911684610ddb565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac947906116c5908590600090869030904290600401611be7565b600060405180830381600087803b1580156116df57600080fd5b505af11580156111c1573d6000803e3d6000fd5b600f5461170b9030906001600160a01b031684610ddb565b600f546001600160a01b031663f305d7198230856000806117346000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561179c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117c19190611c58565b5050505050565b600060208083528351808285015260005b818110156117f5578581018301518582016040015282016117d9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a1757600080fd5b6000806040838503121561183e57600080fd5b823561184981611816565b946020939093013593505050565b60008060006060848603121561186c57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561189857600080fd5b83356118a381611816565b925060208401356118b381611816565b929592945050506040919091013590565b6000602082840312156118d657600080fd5b8135610dd481611816565b6000602082840312156118f357600080fd5b5035919050565b60006020828403121561190c57600080fd5b81358015158114610dd457600080fd5b6000806040838503121561192f57600080fd5b823561193a81611816565b9150602083013561194a81611816565b809150509250929050565b600181811c9082168061196957607f821691505b60208210810361198957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119d657600080fd5b8151610dd481611816565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a32578160001904821115611a1857611a186119e1565b80851615611a2557918102915b93841c93908002906119fc565b509250929050565b600082611a4957506001610743565b81611a5657506000610743565b8160018114611a6c5760028114611a7657611a92565b6001915050610743565b60ff841115611a8757611a876119e1565b50506001821b610743565b5060208310610133831016604e8410600b8410161715611ab5575081810a610743565b611abf83836119f7565b8060001904821115611ad357611ad36119e1565b029392505050565b6000610dd460ff841683611a3a565b8082028115828204841417610743576107436119e1565b80820180821115610743576107436119e1565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082611bb957634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610743576107436119e1565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c375784516001600160a01b031683529383019391830191600101611c12565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611c6d57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220570d13d9ad0c349590f5079957ea6db8f2996a32a7c64ceae7915eabf1cf60ad64736f6c63430008120033

Deployed Bytecode Sourcemap

9142:8818:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3908:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4909:181;;;;;;;;;;-1:-1:-1;4909:181:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4909:181:0;1023:187:1;11674:262:0;;;;;;;;;;-1:-1:-1;11674:262:0;;;;;:::i;:::-;;:::i;:::-;;9714:41;;;;;;;;;;-1:-1:-1;9714:41:0;;;;-1:-1:-1;;;;;9714:41:0;;;;;;-1:-1:-1;;;;;1726:32:1;;;1708:51;;1696:2;1681:18;9714:41:0;1536:229:1;9525:30:0;;;;;;;;;;;;;;;;;;;1916:25:1;;;1904:2;1889:18;9525:30:0;1770:177:1;4264:116:0;;;;;;;;;;-1:-1:-1;4356:12:0;;4264:116;;5102:387;;;;;;;;;;-1:-1:-1;5102:387:0;;;;;:::i;:::-;;:::i;4152:100::-;;;;;;;;;;-1:-1:-1;4152:100:0;;4239:1;2555:36:1;;2543:2;2528:18;4152:100:0;2413:184:1;5501:230:0;;;;;;;;;;-1:-1:-1;5501:230:0;;;;;:::i;:::-;;:::i;9291:38::-;;;;;;;;;;-1:-1:-1;9291:38:0;;;;-1:-1:-1;;;;;9291:38:0;;;12532:334;;;;;;;;;;-1:-1:-1;12532:334:0;;;;;:::i;:::-;;:::i;11276:117::-;;;;;;;;;;-1:-1:-1;11276:117:0;;;;;:::i;:::-;;:::i;11405:119::-;;;;;;;;;;-1:-1:-1;11405:119:0;;;;;:::i;:::-;;:::i;9766:28::-;;;;;;;;;;-1:-1:-1;9766:28:0;;;;-1:-1:-1;;;;;9766:28:0;;;9837:40;;;;;;;;;;-1:-1:-1;9837:40:0;;;;-1:-1:-1;;;9837:40:0;;;;;;12218:127;;;;;;;;;;-1:-1:-1;12218:127:0;;;;;:::i;:::-;;:::i;13124:131::-;;;;;;;;;;-1:-1:-1;13124:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;13216:27:0;13188:4;13216:27;;;:18;:27;;;;;;;;;13124:131;4392:135;;;;;;;;;;-1:-1:-1;4392:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;4497:18:0;4466:7;4497:18;;;:9;:18;;;;;;;4392:135;2730:160;;;;;;;;;;;;;:::i;9668:31::-;;;;;;;;;;;;;;;;9570:37;;;;;;;;;;;;;;;;2463:95;;;;;;;;;;-1:-1:-1;2509:7:0;2540:6;-1:-1:-1;;;;;2540:6:0;2463:95;;4028:112;;;;;;;;;;;;;:::i;5743:281::-;;;;;;;;;;-1:-1:-1;5743:281:0;;;;;:::i;:::-;;:::i;4539:187::-;;;;;;;;;;-1:-1:-1;4539:187:0;;;;;:::i;:::-;;:::i;11948:258::-;;;;;;;;;;-1:-1:-1;11948:258:0;;;;;:::i;:::-;;:::i;12878:185::-;;;;;;;;;;-1:-1:-1;12878:185:0;;;;;:::i;:::-;;:::i;9478:36::-;;;;;;;;;;;;;;;;9619:37;;;;;;;;;;;;;;;;9888:44;;;;;;;;;;;;;;;;9429:36;;;;;;;;;;;;;;;;4738:159;;;;;;;;;;-1:-1:-1;4738:159:0;;;;;:::i;:::-;-1:-1:-1;;;;;4858:18:0;;;4827:7;4858:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4738:159;11544:118;;;;;;;;;;-1:-1:-1;11544:118:0;;;;;:::i;:::-;;:::i;12359:161::-;;;;;;;;;;-1:-1:-1;12359:161:0;;;;;:::i;:::-;;:::i;2902:260::-;;;;;;;;;;-1:-1:-1;2902:260:0;;;;;:::i;:::-;;:::i;3908:108::-;3962:13;3999:5;3992:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3908:108;:::o;4909:181::-;4992:4;5013:39;1923:10;5036:7;5045:6;5013:8;:39::i;:::-;-1:-1:-1;5074:4:0;4909:181;;;;;:::o;11674:262::-;2509:7;2540:6;-1:-1:-1;;;;;2540:6:0;1923:10;2622:23;2614:68;;;;-1:-1:-1;;;2614:68:0;;;;;;;:::i;:::-;;;;;;;;;11827:17:::1;:24:::0;;;;11866:17:::1;:24:::0;11905:12:::1;:19:::0;11674:262::o;5102:387::-;5258:4;5279:36;5289:6;5297:9;5308:6;5279:9;:36::i;:::-;5330:121;5339:6;1923:10;5361:89;5399:6;5361:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5361:19:0;;;;;;:11;:19;;;;;;;;1923:10;5361:33;;;;;;;;;;:37;:89::i;:::-;5330:8;:121::i;:::-;-1:-1:-1;5473:4:0;5102:387;;;;;:::o;5501:230::-;1923:10;5589:4;5642:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5642:34:0;;;;;;;;;;5589:4;;5610:83;;5633:7;;5642:50;;5681:10;5642:38;:50::i;12532:334::-;2509:7;2540:6;-1:-1:-1;;;;;2540:6:0;1923:10;2622:23;2614:68;;;;-1:-1:-1;;;2614:68:0;;;;;;;:::i;:::-;12611:35:::1;12668:9;12611:67;;12727:16;-1:-1:-1::0;;;;;12727:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12709:56:0::1;;12774:4;12781:16;-1:-1:-1::0;;;;;12781:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12709:96;::::0;-1:-1:-1;;;;;;12709:96:0::1;::::0;;;;;;-1:-1:-1;;;;;5150:15:1;;;12709:96:0::1;::::0;::::1;5132:34:1::0;5202:15;;5182:18;;;5175:43;5067:18;;12709:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12693:13;:112:::0;;-1:-1:-1;;;;;12693:112:0;;::::1;-1:-1:-1::0;;;;;;12693:112:0;;::::1;;::::0;;;12820:15:::1;:34:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;12532:334:0:o;11276:117::-;2509:7;2540:6;-1:-1:-1;;;;;2540:6:0;1923:10;2622:23;2614:68;;;;-1:-1:-1;;;2614:68:0;;;;;;;:::i;:::-;11337:44:::1;11343:10;11364:16;4239:1:::0;11364:2:::1;:16;:::i;:::-;11355:25;::::0;:6;:25:::1;:::i;:::-;11337:5;:44::i;:::-;11276:117:::0;:::o;11405:119::-;2509:7;2540:6;-1:-1:-1;;;;;2540:6:0;1923:10;2622:23;2614:68;;;;-1:-1:-1;;;2614:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11478:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;11478:34:0::1;11508:4;11478:34;::::0;;11405:119::o;12218:127::-;2509:7;2540:6;-1:-1:-1;;;;;2540:6:0;1923:10;2622:23;2614:68;;;;-1:-1:-1;;;2614:68:0;;;;;;;:::i;:::-;12302:23:::1;:31:::0;;-1:-1:-1;;;;;;12302:31:0::1;-1:-1:-1::0;;;;;12302:31:0;;;::::1;::::0;;;::::1;::::0;;12218:127::o;2730:160::-;2509:7;2540:6;-1:-1:-1;;;;;2540:6:0;1923:10;2622:23;2614:68;;;;-1:-1:-1;;;2614:68:0;;;;;;;:::i;:::-;2841:1:::1;2825:6:::0;;2804:40:::1;::::0;-1:-1:-1;;;;;2825:6:0;;::::1;::::0;2804:40:::1;::::0;2841:1;;2804:40:::1;2876:1;2859:19:::0;;-1:-1:-1;;;;;;2859:19:0::1;::::0;;2730:160::o;4028:112::-;4084:13;4121:7;4114:14;;;;;:::i;5743:281::-;5836:4;5857:129;1923:10;5880:7;5889:96;5928:15;5889:96;;;;;;;;;;;;;;;;;1923:10;5889:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5889:34:0;;;;;;;;;;;;:38;:96::i;4539:187::-;4625:4;4646:42;1923:10;4670:9;4681:6;4646:9;:42::i;11948:258::-;2509:7;2540:6;-1:-1:-1;;;;;2540:6:0;1923:10;2622:23;2614:68;;;;-1:-1:-1;;;2614:68:0;;;;;;;:::i;:::-;12100:16:::1;:23:::0;;;;12138:16:::1;:23:::0;12176:11:::1;:18:::0;11948:258::o;12878:185::-;2509:7;2540:6;-1:-1:-1;;;;;2540:6:0;1923:10;2622:23;2614:68;;;;-1:-1:-1;;;2614:68:0;;;;;;;:::i;:::-;12961:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;12961:32:0::1;-1:-1:-1::0;;;;12961:32:0;;::::1;;::::0;;13013:38:::1;::::0;::::1;::::0;::::1;::::0;12985:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;13013:38:0::1;;;;;;;;12878:185:::0;:::o;11544:118::-;2509:7;2540:6;-1:-1:-1;;;;;2540:6:0;1923:10;2622:23;2614:68;;;;-1:-1:-1;;;2614:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11615:27:0::1;11645:5;11615:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;11615:35:0::1;::::0;;11544:118::o;12359:161::-;2509:7;2540:6;-1:-1:-1;;;;;2540:6:0;1923:10;2622:23;2614:68;;;;-1:-1:-1;;;2614:68:0;;;;;;;:::i;:::-;12492:16:::1;4239:1:::0;12492:2:::1;:16;:::i;:::-;12483:25;::::0;:6;:25:::1;:::i;:::-;12451:29;:57:::0;-1:-1:-1;12359:161:0:o;2902:260::-;2509:7;2540:6;-1:-1:-1;;;;;2540:6:0;1923:10;2622:23;2614:68;;;;-1:-1:-1;;;2614:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2995:22:0;::::1;2987:73;;;::::0;-1:-1:-1;;;2987:73:0;;7119:2:1;2987:73:0::1;::::0;::::1;7101:21:1::0;7158:2;7138:18;;;7131:30;7197:34;7177:18;;;7170:62;-1:-1:-1;;;7248:18:1;;;7241:36;7294:19;;2987:73:0::1;6917:402:1::0;2987:73:0::1;3101:6;::::0;;3080:38:::1;::::0;-1:-1:-1;;;;;3080:38:0;;::::1;::::0;3101:6;::::1;::::0;3080:38:::1;::::0;::::1;3133:6;:17:::0;;-1:-1:-1;;;;;;3133:17:0::1;-1:-1:-1::0;;;;;3133:17:0;;;::::1;::::0;;;::::1;::::0;;2902:260::o;852:106::-;910:7;941:5;945:1;941;:5;:::i;:::-;934:12;852:106;-1:-1:-1;;;852:106:0:o;7533:416::-;-1:-1:-1;;;;;7689:19:0;;7681:68;;;;-1:-1:-1;;;7681:68:0;;7656:2:1;7681:68:0;;;7638:21:1;7695:2;7675:18;;;7668:30;7734:34;7714:18;;;7707:62;-1:-1:-1;;;7785:18:1;;;7778:34;7829:19;;7681:68:0;7454:400:1;7681:68:0;-1:-1:-1;;;;;7772:21:0;;7764:68;;;;-1:-1:-1;;;7764:68:0;;8061:2:1;7764:68:0;;;8043:21:1;8100:2;8080:18;;;8073:30;8139:34;8119:18;;;8112:62;-1:-1:-1;;;8190:18:1;;;8183:32;8232:19;;7764:68:0;7859:398:1;7764:68:0;-1:-1:-1;;;;;7849:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7905:32;;1916:25:1;;;7905:32:0;;1889:18:1;7905:32:0;;;;;;;;7533:416;;;:::o;13267:2353::-;-1:-1:-1;;;;;13419:18:0;;13411:68;;;;-1:-1:-1;;;13411:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13502:16:0;;13494:64;;;;-1:-1:-1;;;13494:64:0;;;;;;;:::i;:::-;13590:1;13581:6;:10;13573:64;;;;-1:-1:-1;;;13573:64:0;;9274:2:1;13573:64:0;;;9256:21:1;9313:2;9293:18;;;9286:30;9352:34;9332:18;;;9325:62;-1:-1:-1;;;9403:18:1;;;9396:39;9452:19;;13573:64:0;9072:405:1;13573:64:0;13703:4;13654:28;4497:18;;;:9;:18;;;;;;13776:29;;13752:53;;;;;;;13842:57;;-1:-1:-1;13883:16:0;;-1:-1:-1;;;13883:16:0;;;;13882:17;13842:57;:99;;;;-1:-1:-1;13928:13:0;;-1:-1:-1;;;;;13920:21:0;;;13928:13;;13920:21;;13842:99;:141;;;;-1:-1:-1;13962:21:0;;-1:-1:-1;;;13962:21:0;;;;13842:141;13820:315;;;14041:29;;14018:52;;14089:30;14098:20;14089:8;:30::i;:::-;-1:-1:-1;;;;;14185:24:0;;14151:12;14185:24;;;:18;:24;;;;;;14166:4;;14185:24;;;:50;;-1:-1:-1;;;;;;14213:22:0;;;;;;:18;:22;;;;;;;;14185:50;14181:1428;;;14252:33;14268:4;14274:2;14278:6;14252:15;:33::i;:::-;-1:-1:-1;14310:5:0;14181:1428;;;14362:13;;-1:-1:-1;;;;;14362:13:0;;;14354:21;;;;14350:1248;;14396:23;14422:38;14455:4;14422:28;14433:16;;14422:6;:10;;:28;;;;:::i;:::-;:32;;:38::i;:::-;14396:64;;14479:23;14505:38;14538:4;14505:28;14516:16;;14505:6;:10;;:28;;;;:::i;:38::-;14479:64;;14562:18;14583:33;14611:4;14583:23;14594:11;;14583:6;:10;;:23;;;;:::i;:33::-;14562:54;-1:-1:-1;14643:64:0;14654:52;14562:54;14654:36;:15;14674;14654:19;:36::i;:::-;:40;;:52::i;:::-;14643:6;;:10;:64::i;:::-;14635:72;-1:-1:-1;14726:74:0;14742:4;14756;14763:36;:15;14783;14763:19;:36::i;:::-;14726:15;:74::i;:::-;14819:45;14835:4;9372:42;14853:10;14819:15;:45::i;:::-;14883:33;14899:4;14905:2;14909:6;14883:15;:33::i;:::-;14377:557;;;14350:1248;;;14950:13;;-1:-1:-1;;;;;14950:13:0;;;14944:19;;;;14940:658;;14984:23;15010:39;15044:4;15010:29;15021:17;;15010:6;:10;;:29;;;;:::i;:39::-;14984:65;;15068:23;15094:39;15128:4;15094:29;15105:17;;15094:6;:10;;:29;;;;:::i;:39::-;15068:65;;15152:18;15173:34;15202:4;15173:24;15184:12;;15173:6;:10;;:24;;;;:::i;14940:658::-;15549:33;15565:4;15571:2;15575:6;15549:15;:33::i;:::-;13396:2224;;;13267:2353;;;:::o;1316:226::-;1402:7;1471:12;1463:6;;;;1455:29;;;;-1:-1:-1;;;1455:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1510:5:0;;;1316:226::o;7079:442::-;-1:-1:-1;;;;;7167:21:0;;7159:67;;;;-1:-1:-1;;;7159:67:0;;9684:2:1;7159:67:0;;;9666:21:1;9723:2;9703:18;;;9696:30;9762:34;9742:18;;;9735:62;-1:-1:-1;;;9813:18:1;;;9806:31;9854:19;;7159:67:0;9482:397:1;7159:67:0;7330:68;7353:6;7330:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7330:18:0;;;;;;:9;:18;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;7309:18:0;;;;;;:9;:18;;;;;:89;7428:12;;:24;;7445:6;7428:16;:24::i;:::-;7413:12;:39;7472:37;;1916:25:1;;;7498:1:0;;-1:-1:-1;;;;;7472:37:0;;;;;1904:2:1;1889:18;7472:37:0;;;;;;;7079:442;;:::o;15632:1289::-;10273:16;:23;;-1:-1:-1;;;;10273:23:0;-1:-1:-1;;;10273:23:0;;;15765:17:::1;::::0;10273:23;;15745:47:::1;::::0;15788:3:::1;::::0;15745:38:::1;::::0;:15;;:19:::1;:38::i;:47::-;15716:76;;15811:23;15837:47;15880:3;15837:38;15857:17;;15837:15;:19;;:38;;;;:::i;:47::-;15811:73:::0;-1:-1:-1;15905:25:0::1;15933:36;15811:73:::0;15933:18;:36:::1;:::i;:::-;15905:64:::0;-1:-1:-1;16009:20:0;;;:46:::1;;-1:-1:-1::0;16033:22:0;;16009:46:::1;16006:60;;;16058:7;;;;;16006:60;16086:12;::::0;16220:1:::1;16200:17:::0;16161:36:::1;16179:18:::0;16161:15;:36:::1;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;16135:86:::0;-1:-1:-1;16258:51:0::1;16275:33;16135:86:::0;16275:15;:33:::1;:::i;:::-;16258:16;:51::i;:::-;16368:21;::::0;16347:18:::1;16544:20;16563:1;16544:18:::0;:20:::1;:::i;:::-;16523:42;::::0;:17;:42:::1;:::i;:::-;16491:28;16504:15:::0;16491:10;:28:::1;:::i;:::-;:75;;;;:::i;:::-;16465:101:::0;-1:-1:-1;16587:34:0::1;16465:101:::0;16587:34;::::1;:::i;:::-;;;16695:1;16677:15;:19;:42;;;;;16718:1;16700:15;:19;16677:42;16674:137;;;16743:46;16756:15;16773;16743:12;:46::i;:::-;16852:23;::::0;16844:65:::1;::::0;-1:-1:-1;;;;;16852:23:0;;::::1;::::0;16889:15;;16844:65:::1;::::0;;;16889:15;16852:23;16844:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;10311:1:0::1;-1:-1:-1::0;10327:16:0;:24;;-1:-1:-1;;;;10327:24:0;;;15632:1289::o;6036:617::-;-1:-1:-1;;;;;6196:20:0;;6188:70;;;;-1:-1:-1;;;6188:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6281:23:0;;6273:71;;;;-1:-1:-1;;;6273:71:0;;;;;;;:::i;:::-;6445;6467:6;6445:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6445:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;6425:17:0;;;;;;;:9;:17;;;;;;:91;;;;6554:20;;;;;;;:32;;6579:6;6554:24;:32::i;:::-;-1:-1:-1;;;;;6531:20:0;;;;;;;:9;:20;;;;;;;:55;;;;6606:35;;;;;;;;;;6634:6;1916:25:1;;1904:2;1889:18;;1770:177;1084:106:0;1142:7;1173:5;1177:1;1173;:5;:::i;1200:106::-;1258:7;1289:5;1293:1;1289;:5;:::i;968:106::-;1026:7;1057:5;1061:1;1057;:5;:::i;16940:547::-;17034:16;;;17048:1;17034:16;;;;;;;;17010:21;;17034:16;;;;;;;;;;-1:-1:-1;17034:16:0;17010:40;;17083:4;17065;17070:1;17065:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17065:23:0;;;:7;;;;;;;;;;:23;;;;17113:15;;:22;;;-1:-1:-1;;;17113:22:0;;;;:15;;;;;:20;;:22;;;;;17065:7;;17113:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17103:4;17108:1;17103:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17103:32:0;;;:7;;;;;;;;;:32;17182:15;;17150:62;;17167:4;;17182:15;17200:11;17150:8;:62::i;:::-;17227:15;;:248;;-1:-1:-1;;;17227:248:0;;-1:-1:-1;;;;;17227:15:0;;;;:66;;:248;;17312:11;;17227:15;;17390:4;;17421;;17445:15;;17227:248;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17499:454;17616:15;;17584:62;;17601:4;;-1:-1:-1;;;;;17616:15:0;17634:11;17584:8;:62::i;:::-;17661:15;;-1:-1:-1;;;;;17661:15:0;:31;17700:9;17737:4;17761:11;17661:15;;17885:7;2509;2540:6;-1:-1:-1;;;;;2540:6:0;;2463:95;17885:7;17661:280;;;;;;-1:-1:-1;;;;;;17661:280:0;;;-1:-1:-1;;;;;12057:15:1;;;17661:280:0;;;12039:34:1;12089:18;;;12082:34;;;;12132:18;;;12125:34;;;;12175:18;;;12168:34;12239:15;;;12218:19;;;12211:44;17911:15:0;12271:19:1;;;12264:35;11973:19;;17661:280:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17499:454;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:316::-;1292:6;1300;1308;1361:2;1349:9;1340:7;1336:23;1332:32;1329:52;;;1377:1;1374;1367:12;1329:52;-1:-1:-1;;1400:23:1;;;1470:2;1455:18;;1442:32;;-1:-1:-1;1521:2:1;1506:18;;;1493:32;;1215:316;-1:-1:-1;1215:316:1:o;1952:456::-;2029:6;2037;2045;2098:2;2086:9;2077:7;2073:23;2069:32;2066:52;;;2114:1;2111;2104:12;2066:52;2153:9;2140:23;2172:31;2197:5;2172:31;:::i;:::-;2222:5;-1:-1:-1;2279:2:1;2264:18;;2251:32;2292:33;2251:32;2292:33;:::i;:::-;1952:456;;2344:7;;-1:-1:-1;;;2398:2:1;2383:18;;;;2370:32;;1952:456::o;2810:247::-;2869:6;2922:2;2910:9;2901:7;2897:23;2893:32;2890:52;;;2938:1;2935;2928:12;2890:52;2977:9;2964:23;2996:31;3021:5;2996:31;:::i;3062:180::-;3121:6;3174:2;3162:9;3153:7;3149:23;3145:32;3142:52;;;3190:1;3187;3180:12;3142:52;-1:-1:-1;3213:23:1;;3062:180;-1:-1:-1;3062:180:1:o;3247:273::-;3303:6;3356:2;3344:9;3335:7;3331:23;3327:32;3324:52;;;3372:1;3369;3362:12;3324:52;3411:9;3398:23;3464:5;3457:13;3450:21;3443:5;3440:32;3430:60;;3486:1;3483;3476:12;3525:388;3593:6;3601;3654:2;3642:9;3633:7;3629:23;3625:32;3622:52;;;3670:1;3667;3660:12;3622:52;3709:9;3696:23;3728:31;3753:5;3728:31;:::i;:::-;3778:5;-1:-1:-1;3835:2:1;3820:18;;3807:32;3848:33;3807:32;3848:33;:::i;:::-;3900:7;3890:17;;;3525:388;;;;;:::o;3918:380::-;3997:1;3993:12;;;;4040;;;4061:61;;4115:4;4107:6;4103:17;4093:27;;4061:61;4168:2;4160:6;4157:14;4137:18;4134:38;4131:161;;4214:10;4209:3;4205:20;4202:1;4195:31;4249:4;4246:1;4239:15;4277:4;4274:1;4267:15;4131:161;;3918:380;;;:::o;4303:356::-;4505:2;4487:21;;;4524:18;;;4517:30;4583:34;4578:2;4563:18;;4556:62;4650:2;4635:18;;4303:356::o;4664:251::-;4734:6;4787:2;4775:9;4766:7;4762:23;4758:32;4755:52;;;4803:1;4800;4793:12;4755:52;4835:9;4829:16;4854:31;4879:5;4854:31;:::i;5229:127::-;5290:10;5285:3;5281:20;5278:1;5271:31;5321:4;5318:1;5311:15;5345:4;5342:1;5335:15;5361:422;5450:1;5493:5;5450:1;5507:270;5528:7;5518:8;5515:21;5507:270;;;5587:4;5583:1;5579:6;5575:17;5569:4;5566:27;5563:53;;;5596:18;;:::i;:::-;5646:7;5636:8;5632:22;5629:55;;;5666:16;;;;5629:55;5745:22;;;;5705:15;;;;5507:270;;;5511:3;5361:422;;;;;:::o;5788:806::-;5837:5;5867:8;5857:80;;-1:-1:-1;5908:1:1;5922:5;;5857:80;5956:4;5946:76;;-1:-1:-1;5993:1:1;6007:5;;5946:76;6038:4;6056:1;6051:59;;;;6124:1;6119:130;;;;6031:218;;6051:59;6081:1;6072:10;;6095:5;;;6119:130;6156:3;6146:8;6143:17;6140:43;;;6163:18;;:::i;:::-;-1:-1:-1;;6219:1:1;6205:16;;6234:5;;6031:218;;6333:2;6323:8;6320:16;6314:3;6308:4;6305:13;6301:36;6295:2;6285:8;6282:16;6277:2;6271:4;6268:12;6264:35;6261:77;6258:159;;;-1:-1:-1;6370:19:1;;;6402:5;;6258:159;6449:34;6474:8;6468:4;6449:34;:::i;:::-;6519:6;6515:1;6511:6;6507:19;6498:7;6495:32;6492:58;;;6530:18;;:::i;:::-;6568:20;;5788:806;-1:-1:-1;;;5788:806:1:o;6599:140::-;6657:5;6686:47;6727:4;6717:8;6713:19;6707:4;6686:47;:::i;6744:168::-;6817:9;;;6848;;6865:15;;;6859:22;;6845:37;6835:71;;6886:18;;:::i;7324:125::-;7389:9;;;7410:10;;;7407:36;;;7423:18;;:::i;8262:401::-;8464:2;8446:21;;;8503:2;8483:18;;;8476:30;8542:34;8537:2;8522:18;;8515:62;-1:-1:-1;;;8608:2:1;8593:18;;8586:35;8653:3;8638:19;;8262:401::o;8668:399::-;8870:2;8852:21;;;8909:2;8889:18;;;8882:30;8948:34;8943:2;8928:18;;8921:62;-1:-1:-1;;;9014:2:1;8999:18;;8992:33;9057:3;9042:19;;8668:399::o;9884:217::-;9924:1;9950;9940:132;;9994:10;9989:3;9985:20;9982:1;9975:31;10029:4;10026:1;10019:15;10057:4;10054:1;10047:15;9940:132;-1:-1:-1;10086:9:1;;9884:217::o;10106:128::-;10173:9;;;10194:11;;;10191:37;;;10208:18;;:::i;10581:127::-;10642:10;10637:3;10633:20;10630:1;10623:31;10673:4;10670:1;10663:15;10697:4;10694:1;10687:15;10713:980;10975:4;11023:3;11012:9;11008:19;11054:6;11043:9;11036:25;11080:2;11118:6;11113:2;11102:9;11098:18;11091:34;11161:3;11156:2;11145:9;11141:18;11134:31;11185:6;11220;11214:13;11251:6;11243;11236:22;11289:3;11278:9;11274:19;11267:26;;11328:2;11320:6;11316:15;11302:29;;11349:1;11359:195;11373:6;11370:1;11367:13;11359:195;;;11438:13;;-1:-1:-1;;;;;11434:39:1;11422:52;;11529:15;;;;11494:12;;;;11470:1;11388:9;11359:195;;;-1:-1:-1;;;;;;;11610:32:1;;;;11605:2;11590:18;;11583:60;-1:-1:-1;;;11674:3:1;11659:19;11652:35;11571:3;10713:980;-1:-1:-1;;;10713:980:1:o;12310:306::-;12398:6;12406;12414;12467:2;12455:9;12446:7;12442:23;12438:32;12435:52;;;12483:1;12480;12473:12;12435:52;12512:9;12506:16;12496:26;;12562:2;12551:9;12547:18;12541:25;12531:35;;12606:2;12595:9;12591:18;12585:25;12575:35;;12310:306;;;;;:::o

Swarm Source

ipfs://570d13d9ad0c349590f5079957ea6db8f2996a32a7c64ceae7915eabf1cf60ad
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.