ETH Price: $3,275.67 (+0.48%)

Token

GEFILTE (GEFILTE)
 

Overview

Max Total Supply

100,000,000,000 GEFILTE

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,000,000,000.00000011399778299 GEFILTE

Value
$0.00
0xb823b816cfed658596e8e5a80519aedf25c5b477
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:
GEFILTE

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-15
*/

// SPDX-License-Identifier: Unlicensed

    pragma solidity ^0.8.16;

    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 18;
        }

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

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

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

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

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

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

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

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

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

            _beforeTokenTransfer(sender, recipient, amount);

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

        function _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 GEFILTE is ERC20 {
        
        using SafeMath for uint256;

        mapping (address => bool) private isExcludedFromFee;

        address public teamWallet;
        address constant _burnAddress = 0x000000000000000000000000000000000000dEaD;

        uint256 public buyTeamFee = 5;  
        uint256 public sellTeamFee = 5;

        IUniswapV2Router02 public uniswapV2Router;
        address public uniswapV2Pair;
        bool inSwapAndSend;
        bool public swapAndSendEnabled = true;
        uint256 public numTokensSellToSendFees;
        event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
        event swapAndSendEnabledUpdated(bool enabled);

        
        modifier lockTheSwap {
            inSwapAndSend = true;
            _;
            inSwapAndSend = false;
        }
        
        constructor () ERC20("GEFILTE", "GEFILTE"){

            numTokensSellToSendFees = 100000000 * 10 ** decimals();
            teamWallet = 0xb823b816CfEd658596e8e5a80519aedf25c5b477;
            
            IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);  
            uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());

            uniswapV2Router = _uniswapV2Router;
            
            isExcludedFromFee[_msgSender()] = true;
            isExcludedFromFee[address(this)] = true;
            isExcludedFromFee[teamWallet] = true;

            _mint(owner(), 100000000000 * 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 isExcludedFromFees(address account) public view returns(bool) {
            return isExcludedFromFee[account];
        }

        function setBuyAndSellFee(
            uint256 bFee,
            uint256 sFee

        ) external onlyOwner {
            buyTeamFee = bFee;
            sellTeamFee = sFee;

        }

        function setWallets(address _dev) external onlyOwner {
            teamWallet = _dev;
        }

        function setNumTokensSellToSendFees(uint256 amount) external onlyOwner {
            numTokensSellToSendFees = 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 setswapAndSendEnabled(bool _enabled) external onlyOwner {
            swapAndSendEnabled = _enabled;
            emit swapAndSendEnabledUpdated(_enabled);
        }
        
        receive() external payable {}

        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 >= numTokensSellToSendFees;
            if (
                overMinTokenBalance &&
                !inSwapAndSend &&
                from != uniswapV2Pair &&
                swapAndSendEnabled
            ) {
                contractTokenBalance = numTokensSellToSendFees;
                swapBack(contractTokenBalance);
            }

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

            if (from == uniswapV2Pair) {
                uint256 teamTokens = amount.mul(buyTeamFee).div(100);
                amount= amount.sub(teamTokens);
                super._transfer(from, address(this), teamTokens);
                super._transfer(from, to, amount);

            } else if (to == uniswapV2Pair) {
                uint256 teamTokens = amount.mul(sellTeamFee).div(100);
                amount= amount.sub(teamTokens);
                super._transfer(from, address(this),teamTokens);
                super._transfer(from, to, amount);
            } else {
                super._transfer(from, to, amount);
            }
        }
        }

        function swapBack(uint256 contractBalance) private lockTheSwap {
            uint256 teamTokens = contractBalance.mul(sellTeamFee).div(100);
            uint256 totalTokensToSwap =  teamTokens;
            if(contractBalance == 0 || totalTokensToSwap == 0) {return;}
            bool success;
            swapTokensForEth(contractBalance); 
            uint256 ethBalance = address(this).balance;
            uint256 ethForTeam = ethBalance * teamTokens / (totalTokensToSwap);
            (success,) = address(teamWallet).call{value: ethForTeam}("");
        }       

        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
            );
        }
    }

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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"swapAndSendEnabledUpdated","type":"event"},{"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":"buyTeamFee","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"}],"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":"isExcludedFromFees","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":"numTokensSellToSendFees","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":[],"name":"sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bFee","type":"uint256"},{"internalType":"uint256","name":"sFee","type":"uint256"}],"name":"setBuyAndSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNumTokensSellToSendFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_dev","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setswapAndSendEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndSendEnabled","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":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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"}]

608060405260056009819055600a55600c805460ff60a81b1916600160a81b1790553480156200002e57600080fd5b5060405180604001604052806007815260200166474546494c544560c81b81525060405180604001604052806007815260200166474546494c544560c81b8152506200007f6200036f60201b60201c565b600080546001600160a01b0319166001600160a01b039290921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36005620000d483826200053d565b506006620000e382826200053d565b50620000f0915050601290565b620000fd90600a6200071c565b6200010d906305f5e1006200072d565b600d55600880546001600160a01b03191673b823b816cfed658596e8e5a80519aedf25c5b4771790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa1580156200018a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b0919062000747565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000224919062000747565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000272573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000298919062000747565b600c80546001600160a01b03199081166001600160a01b0393841617909155600b8054909116918316919091179055600160076000620002d53390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600790935281832080548516600190811790915560085490911683529120805490921617905562000368620003436000546001600160a01b031690565b620003516012600a6200071c565b620003629064174876e8006200072d565b62000373565b506200078f565b3390565b6001600160a01b038216620003ce5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b620003ea816004546200048260201b62000cda1790919060201c565b6004556001600160a01b0382166000908152600260209081526040909120546200041f91839062000cda62000482821b17901c565b6001600160a01b0383166000818152600260205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620004719085815260200190565b60405180910390a35050565b505050565b600062000490828462000779565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004c457607f821691505b602082108103620004e557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200047d57600081815260208120601f850160051c81016020861015620005145750805b601f850160051c820191505b81811015620005355782815560010162000520565b505050505050565b81516001600160401b0381111562000559576200055962000499565b62000571816200056a8454620004af565b84620004eb565b602080601f831160018114620005a95760008415620005905750858301515b600019600386901b1c1916600185901b17855562000535565b600085815260208120601f198616915b82811015620005da57888601518255948401946001909101908401620005b9565b5085821015620005f95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200066057816000190482111562000644576200064462000609565b808516156200065257918102915b93841c939080029062000624565b509250929050565b600082620006795750600162000493565b81620006885750600062000493565b8160018114620006a15760028114620006ac57620006cc565b600191505062000493565b60ff841115620006c057620006c062000609565b50506001821b62000493565b5060208310610133831016604e8410600b8410161715620006f1575081810a62000493565b620006fd83836200061f565b806000190482111562000714576200071462000609565b029392505050565b60006200049060ff84168362000668565b808202811582820484141762000493576200049362000609565b6000602082840312156200075a57600080fd5b81516001600160a01b03811681146200077257600080fd5b9392505050565b8082018082111562000493576200049362000609565b611a0f806200079f6000396000f3fe6080604052600436106101d15760003560e01c8063715018a6116100f7578063a457c2d711610095578063e379382a11610064578063e379382a1461056c578063ea2f0b371461058d578063eb50e70e146105ad578063f2fde38b146105cd57600080fd5b8063a457c2d7146104d0578063a9059cbb146104f0578063d729715f14610510578063dd62ed3e1461052657600080fd5b80638da5cb5b116100d15780638da5cb5b1461046757806395d89b41146104855780639c2e4ac61461049a578063a346304f146104b057600080fd5b8063715018a61461041257806376264eca1461042757806384e2b88d1461044757600080fd5b806341cb87fc1161016f5780634fbee1931161013e5780634fbee1931461036d57806353cae9cf146103a657806359927044146103bc57806370a08231146103dc57600080fd5b806341cb87fc146102eb57806342966c681461030d578063437823ec1461032d57806349bd5a5e1461034d57600080fd5b806318160ddd116101ab57806318160ddd1461027057806323b872dd1461028f578063313ce567146102af57806339509351146102cb57600080fd5b806306fdde03146101dd578063095ea7b3146102085780631694505e1461023857600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f26105ed565b6040516101ff91906114be565b60405180910390f35b34801561021457600080fd5b50610228610223366004611521565b61067f565b60405190151581526020016101ff565b34801561024457600080fd5b50600b54610258906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b34801561027c57600080fd5b506004545b6040519081526020016101ff565b34801561029b57600080fd5b506102286102aa36600461154d565b610696565b3480156102bb57600080fd5b50604051601281526020016101ff565b3480156102d757600080fd5b506102286102e6366004611521565b6106ff565b3480156102f757600080fd5b5061030b61030636600461158e565b610735565b005b34801561031957600080fd5b5061030b6103283660046115ab565b6108e3565b34801561033957600080fd5b5061030b61034836600461158e565b61092f565b34801561035957600080fd5b50600c54610258906001600160a01b031681565b34801561037957600080fd5b5061022861038836600461158e565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156103b257600080fd5b50610281600d5481565b3480156103c857600080fd5b50600854610258906001600160a01b031681565b3480156103e857600080fd5b506102816103f736600461158e565b6001600160a01b031660009081526002602052604090205490565b34801561041e57600080fd5b5061030b61097d565b34801561043357600080fd5b5061030b6104423660046115c4565b6109f1565b34801561045357600080fd5b5061030b6104623660046115ab565b610a73565b34801561047357600080fd5b506000546001600160a01b0316610258565b34801561049157600080fd5b506101f2610ab9565b3480156104a657600080fd5b5061028160095481565b3480156104bc57600080fd5b5061030b6104cb3660046115e6565b610ac8565b3480156104dc57600080fd5b506102286104eb366004611521565b610afd565b3480156104fc57600080fd5b5061022861050b366004611521565b610b4c565b34801561051c57600080fd5b50610281600a5481565b34801561053257600080fd5b50610281610541366004611608565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561057857600080fd5b50600c5461022890600160a81b900460ff1681565b34801561059957600080fd5b5061030b6105a836600461158e565b610b59565b3480156105b957600080fd5b5061030b6105c836600461158e565b610ba4565b3480156105d957600080fd5b5061030b6105e836600461158e565b610bf0565b6060600580546105fc90611641565b80601f016020809104026020016040519081016040528092919081815260200182805461062890611641565b80156106755780601f1061064a57610100808354040283529160200191610675565b820191906000526020600020905b81548152906001019060200180831161065857829003601f168201915b5050505050905090565b600061068c338484610ced565b5060015b92915050565b60006106a3848484610e12565b6106f584336106f08560405180606001604052806028815260200161198d602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611031565b610ced565b5060019392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161068c9185906106f09086610cda565b6000546001600160a01b031633146107685760405162461bcd60e51b815260040161075f9061167b565b60405180910390fd5b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cf91906116b0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084091906116b0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b191906116b0565b600c80546001600160a01b039283166001600160a01b031991821617909155600b805493909216921691909117905550565b6000546001600160a01b0316331461090d5760405162461bcd60e51b815260040161075f9061167b565b61092c3361091d6012600a6117c7565b61092790846117d6565b61105d565b50565b6000546001600160a01b031633146109595760405162461bcd60e51b815260040161075f9061167b565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b031633146109a75760405162461bcd60e51b815260040161075f9061167b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a1b5760405162461bcd60e51b815260040161075f9061167b565b600c8054821515600160a81b0260ff60a81b199091161790556040517ff60ed9160a9b99a91d77b1501e2eb5be40bf8131d2bd4d36e209e832e5ff81a990610a6890831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610a9d5760405162461bcd60e51b815260040161075f9061167b565b610aa96012600a6117c7565b610ab390826117d6565b600d5550565b6060600680546105fc90611641565b6000546001600160a01b03163314610af25760405162461bcd60e51b815260040161075f9061167b565b600991909155600a55565b600061068c33846106f0856040518060600160405280602581526020016119b5602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190611031565b600061068c338484610e12565b6000546001600160a01b03163314610b835760405162461bcd60e51b815260040161075f9061167b565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b03163314610bce5760405162461bcd60e51b815260040161075f9061167b565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c1a5760405162461bcd60e51b815260040161075f9061167b565b6001600160a01b038116610c7f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ce682846117ed565b9392505050565b6001600160a01b038316610d4f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075f565b6001600160a01b038216610db05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075f565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610e385760405162461bcd60e51b815260040161075f90611800565b6001600160a01b038216610e5e5760405162461bcd60e51b815260040161075f90611845565b60008111610ec05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161075f565b30600090815260026020526040902054600d5481108015908190610eee5750600c54600160a01b900460ff16155b8015610f085750600c546001600160a01b03868116911614155b8015610f1d5750600c54600160a81b900460ff165b15610f3057600d549150610f3082611168565b6001600160a01b03851660009081526007602052604090205460019060ff1680610f7257506001600160a01b03851660009081526007602052604090205460ff165b15610f8a57610f8286868661123c565b506000611029565b600c546001600160a01b0390811690871603610fec576000610fc26064610fbc6009548861134890919063ffffffff16565b90611354565b9050610fce8582611360565b9450610fdb87308361123c565b610fe687878761123c565b50611029565b600c546001600160a01b039081169086160361101e576000610fc26064610fbc600a548861134890919063ffffffff16565b61102986868661123c565b505050505050565b600081848411156110555760405162461bcd60e51b815260040161075f91906114be565b505050900390565b6001600160a01b0382166110bd5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161075f565b6110fa81604051806060016040528060228152602001611945602291396001600160a01b0385166000908152600260205260409020549190611031565b6001600160a01b0383166000908152600260205260409020556004546111209082611360565b6004556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600c805460ff60a01b1916600160a01b179055600a5460009061119390606490610fbc908590611348565b9050808215806111a1575080155b156111ad57505061122c565b60006111b88461136c565b476000836111c686846117d6565b6111d09190611888565b6008546040519192506001600160a01b0316908290600081818185875af1925050503d806000811461121e576040519150601f19603f3d011682016040523d82523d6000602084013e611223565b606091505b50505050505050505b50600c805460ff60a01b19169055565b6001600160a01b0383166112625760405162461bcd60e51b815260040161075f90611800565b6001600160a01b0382166112885760405162461bcd60e51b815260040161075f90611845565b6112c581604051806060016040528060268152602001611967602691396001600160a01b0386166000908152600260205260409020549190611031565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546112f49082610cda565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e059085815260200190565b6000610ce682846117d6565b6000610ce68284611888565b6000610ce682846118aa565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113a1576113a16118bd565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141e91906116b0565b81600181518110611431576114316118bd565b6001600160a01b039283166020918202929092010152600b546114579130911684610ced565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906114909085906000908690309042906004016118d3565b600060405180830381600087803b1580156114aa57600080fd5b505af1158015611029573d6000803e3d6000fd5b600060208083528351808285015260005b818110156114eb578581018301518582016040015282016114cf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461092c57600080fd5b6000806040838503121561153457600080fd5b823561153f8161150c565b946020939093013593505050565b60008060006060848603121561156257600080fd5b833561156d8161150c565b9250602084013561157d8161150c565b929592945050506040919091013590565b6000602082840312156115a057600080fd5b8135610ce68161150c565b6000602082840312156115bd57600080fd5b5035919050565b6000602082840312156115d657600080fd5b81358015158114610ce657600080fd5b600080604083850312156115f957600080fd5b50508035926020909101359150565b6000806040838503121561161b57600080fd5b82356116268161150c565b915060208301356116368161150c565b809150509250929050565b600181811c9082168061165557607f821691505b60208210810361167557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156116c257600080fd5b8151610ce68161150c565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561171e578160001904821115611704576117046116cd565b8085161561171157918102915b93841c93908002906116e8565b509250929050565b60008261173557506001610690565b8161174257506000610690565b816001811461175857600281146117625761177e565b6001915050610690565b60ff841115611773576117736116cd565b50506001821b610690565b5060208310610133831016604e8410600b84101617156117a1575081810a610690565b6117ab83836116e3565b80600019048211156117bf576117bf6116cd565b029392505050565b6000610ce660ff841683611726565b8082028115828204841417610690576106906116cd565b80820180821115610690576106906116cd565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000826118a557634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610690576106906116cd565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119235784516001600160a01b0316835293830193918301916001016118fe565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a9596309e2b1480a07644839772ac055dfebe9b68ed340379279e74505aaa55b64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c8063715018a6116100f7578063a457c2d711610095578063e379382a11610064578063e379382a1461056c578063ea2f0b371461058d578063eb50e70e146105ad578063f2fde38b146105cd57600080fd5b8063a457c2d7146104d0578063a9059cbb146104f0578063d729715f14610510578063dd62ed3e1461052657600080fd5b80638da5cb5b116100d15780638da5cb5b1461046757806395d89b41146104855780639c2e4ac61461049a578063a346304f146104b057600080fd5b8063715018a61461041257806376264eca1461042757806384e2b88d1461044757600080fd5b806341cb87fc1161016f5780634fbee1931161013e5780634fbee1931461036d57806353cae9cf146103a657806359927044146103bc57806370a08231146103dc57600080fd5b806341cb87fc146102eb57806342966c681461030d578063437823ec1461032d57806349bd5a5e1461034d57600080fd5b806318160ddd116101ab57806318160ddd1461027057806323b872dd1461028f578063313ce567146102af57806339509351146102cb57600080fd5b806306fdde03146101dd578063095ea7b3146102085780631694505e1461023857600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f26105ed565b6040516101ff91906114be565b60405180910390f35b34801561021457600080fd5b50610228610223366004611521565b61067f565b60405190151581526020016101ff565b34801561024457600080fd5b50600b54610258906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b34801561027c57600080fd5b506004545b6040519081526020016101ff565b34801561029b57600080fd5b506102286102aa36600461154d565b610696565b3480156102bb57600080fd5b50604051601281526020016101ff565b3480156102d757600080fd5b506102286102e6366004611521565b6106ff565b3480156102f757600080fd5b5061030b61030636600461158e565b610735565b005b34801561031957600080fd5b5061030b6103283660046115ab565b6108e3565b34801561033957600080fd5b5061030b61034836600461158e565b61092f565b34801561035957600080fd5b50600c54610258906001600160a01b031681565b34801561037957600080fd5b5061022861038836600461158e565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156103b257600080fd5b50610281600d5481565b3480156103c857600080fd5b50600854610258906001600160a01b031681565b3480156103e857600080fd5b506102816103f736600461158e565b6001600160a01b031660009081526002602052604090205490565b34801561041e57600080fd5b5061030b61097d565b34801561043357600080fd5b5061030b6104423660046115c4565b6109f1565b34801561045357600080fd5b5061030b6104623660046115ab565b610a73565b34801561047357600080fd5b506000546001600160a01b0316610258565b34801561049157600080fd5b506101f2610ab9565b3480156104a657600080fd5b5061028160095481565b3480156104bc57600080fd5b5061030b6104cb3660046115e6565b610ac8565b3480156104dc57600080fd5b506102286104eb366004611521565b610afd565b3480156104fc57600080fd5b5061022861050b366004611521565b610b4c565b34801561051c57600080fd5b50610281600a5481565b34801561053257600080fd5b50610281610541366004611608565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561057857600080fd5b50600c5461022890600160a81b900460ff1681565b34801561059957600080fd5b5061030b6105a836600461158e565b610b59565b3480156105b957600080fd5b5061030b6105c836600461158e565b610ba4565b3480156105d957600080fd5b5061030b6105e836600461158e565b610bf0565b6060600580546105fc90611641565b80601f016020809104026020016040519081016040528092919081815260200182805461062890611641565b80156106755780601f1061064a57610100808354040283529160200191610675565b820191906000526020600020905b81548152906001019060200180831161065857829003601f168201915b5050505050905090565b600061068c338484610ced565b5060015b92915050565b60006106a3848484610e12565b6106f584336106f08560405180606001604052806028815260200161198d602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611031565b610ced565b5060019392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161068c9185906106f09086610cda565b6000546001600160a01b031633146107685760405162461bcd60e51b815260040161075f9061167b565b60405180910390fd5b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cf91906116b0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084091906116b0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b191906116b0565b600c80546001600160a01b039283166001600160a01b031991821617909155600b805493909216921691909117905550565b6000546001600160a01b0316331461090d5760405162461bcd60e51b815260040161075f9061167b565b61092c3361091d6012600a6117c7565b61092790846117d6565b61105d565b50565b6000546001600160a01b031633146109595760405162461bcd60e51b815260040161075f9061167b565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b031633146109a75760405162461bcd60e51b815260040161075f9061167b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a1b5760405162461bcd60e51b815260040161075f9061167b565b600c8054821515600160a81b0260ff60a81b199091161790556040517ff60ed9160a9b99a91d77b1501e2eb5be40bf8131d2bd4d36e209e832e5ff81a990610a6890831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610a9d5760405162461bcd60e51b815260040161075f9061167b565b610aa96012600a6117c7565b610ab390826117d6565b600d5550565b6060600680546105fc90611641565b6000546001600160a01b03163314610af25760405162461bcd60e51b815260040161075f9061167b565b600991909155600a55565b600061068c33846106f0856040518060600160405280602581526020016119b5602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190611031565b600061068c338484610e12565b6000546001600160a01b03163314610b835760405162461bcd60e51b815260040161075f9061167b565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b03163314610bce5760405162461bcd60e51b815260040161075f9061167b565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c1a5760405162461bcd60e51b815260040161075f9061167b565b6001600160a01b038116610c7f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ce682846117ed565b9392505050565b6001600160a01b038316610d4f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075f565b6001600160a01b038216610db05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075f565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610e385760405162461bcd60e51b815260040161075f90611800565b6001600160a01b038216610e5e5760405162461bcd60e51b815260040161075f90611845565b60008111610ec05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161075f565b30600090815260026020526040902054600d5481108015908190610eee5750600c54600160a01b900460ff16155b8015610f085750600c546001600160a01b03868116911614155b8015610f1d5750600c54600160a81b900460ff165b15610f3057600d549150610f3082611168565b6001600160a01b03851660009081526007602052604090205460019060ff1680610f7257506001600160a01b03851660009081526007602052604090205460ff165b15610f8a57610f8286868661123c565b506000611029565b600c546001600160a01b0390811690871603610fec576000610fc26064610fbc6009548861134890919063ffffffff16565b90611354565b9050610fce8582611360565b9450610fdb87308361123c565b610fe687878761123c565b50611029565b600c546001600160a01b039081169086160361101e576000610fc26064610fbc600a548861134890919063ffffffff16565b61102986868661123c565b505050505050565b600081848411156110555760405162461bcd60e51b815260040161075f91906114be565b505050900390565b6001600160a01b0382166110bd5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161075f565b6110fa81604051806060016040528060228152602001611945602291396001600160a01b0385166000908152600260205260409020549190611031565b6001600160a01b0383166000908152600260205260409020556004546111209082611360565b6004556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600c805460ff60a01b1916600160a01b179055600a5460009061119390606490610fbc908590611348565b9050808215806111a1575080155b156111ad57505061122c565b60006111b88461136c565b476000836111c686846117d6565b6111d09190611888565b6008546040519192506001600160a01b0316908290600081818185875af1925050503d806000811461121e576040519150601f19603f3d011682016040523d82523d6000602084013e611223565b606091505b50505050505050505b50600c805460ff60a01b19169055565b6001600160a01b0383166112625760405162461bcd60e51b815260040161075f90611800565b6001600160a01b0382166112885760405162461bcd60e51b815260040161075f90611845565b6112c581604051806060016040528060268152602001611967602691396001600160a01b0386166000908152600260205260409020549190611031565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546112f49082610cda565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e059085815260200190565b6000610ce682846117d6565b6000610ce68284611888565b6000610ce682846118aa565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113a1576113a16118bd565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141e91906116b0565b81600181518110611431576114316118bd565b6001600160a01b039283166020918202929092010152600b546114579130911684610ced565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906114909085906000908690309042906004016118d3565b600060405180830381600087803b1580156114aa57600080fd5b505af1158015611029573d6000803e3d6000fd5b600060208083528351808285015260005b818110156114eb578581018301518582016040015282016114cf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461092c57600080fd5b6000806040838503121561153457600080fd5b823561153f8161150c565b946020939093013593505050565b60008060006060848603121561156257600080fd5b833561156d8161150c565b9250602084013561157d8161150c565b929592945050506040919091013590565b6000602082840312156115a057600080fd5b8135610ce68161150c565b6000602082840312156115bd57600080fd5b5035919050565b6000602082840312156115d657600080fd5b81358015158114610ce657600080fd5b600080604083850312156115f957600080fd5b50508035926020909101359150565b6000806040838503121561161b57600080fd5b82356116268161150c565b915060208301356116368161150c565b809150509250929050565b600181811c9082168061165557607f821691505b60208210810361167557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156116c257600080fd5b8151610ce68161150c565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561171e578160001904821115611704576117046116cd565b8085161561171157918102915b93841c93908002906116e8565b509250929050565b60008261173557506001610690565b8161174257506000610690565b816001811461175857600281146117625761177e565b6001915050610690565b60ff841115611773576117736116cd565b50506001821b610690565b5060208310610133831016604e8410600b84101617156117a1575081810a610690565b6117ab83836116e3565b80600019048211156117bf576117bf6116cd565b029392505050565b6000610ce660ff841683611726565b8082028115828204841417610690576106906116cd565b80820180821115610690576106906116cd565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000826118a557634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610690576106906116cd565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119235784516001600160a01b0316835293830193918301916001016118fe565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a9596309e2b1480a07644839772ac055dfebe9b68ed340379279e74505aaa55b64736f6c63430008120033

Deployed Bytecode Sourcemap

9144:6105:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3909:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4911:181;;;;;;;;;;-1:-1:-1;4911:181:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4911:181:0;1023:187:1;9502:41:0;;;;;;;;;;-1:-1:-1;9502:41:0;;;;-1:-1:-1;;;;;9502:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;9502:41:0;1215:229:1;4266:116:0;;;;;;;;;;-1:-1:-1;4358:12:0;;4266:116;;;1595:25:1;;;1583:2;1568:18;4266:116:0;1449:177:1;5104:387:0;;;;;;;;;;-1:-1:-1;5104:387:0;;;;;:::i;:::-;;:::i;4153:101::-;;;;;;;;;;-1:-1:-1;4153:101:0;;4240:2;2234:36:1;;2222:2;2207:18;4153:101:0;2092:184:1;5503:230:0;;;;;;;;;;-1:-1:-1;5503:230:0;;;;;:::i;:::-;;:::i;11783:334::-;;;;;;;;;;-1:-1:-1;11783:334:0;;;;;:::i;:::-;;:::i;:::-;;10771:117;;;;;;;;;;-1:-1:-1;10771:117:0;;;;;:::i;:::-;;:::i;10900:118::-;;;;;;;;;;-1:-1:-1;10900:118:0;;;;;:::i;:::-;;:::i;9554:28::-;;;;;;;;;;-1:-1:-1;9554:28:0;;;;-1:-1:-1;;;;;9554:28:0;;;11167:131;;;;;;;;;;-1:-1:-1;11167:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;11260:26:0;11232:4;11260:26;;;:17;:26;;;;;;;;;11167:131;9670:38;;;;;;;;;;;;;;;;9294:25;;;;;;;;;;-1:-1:-1;9294:25:0;;;;-1:-1:-1;;;;;9294:25:0;;;4394:135;;;;;;;;;;-1:-1:-1;4394:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;4499:18:0;4468:7;4499:18;;;:9;:18;;;;;;;4394:135;2731:160;;;;;;;;;;;;;:::i;12129:176::-;;;;;;;;;;-1:-1:-1;12129:176:0;;;;;:::i;:::-;;:::i;11622:149::-;;;;;;;;;;-1:-1:-1;11622:149:0;;;;;:::i;:::-;;:::i;2464:95::-;;;;;;;;;;-1:-1:-1;2510:7:0;2541:6;-1:-1:-1;;;;;2541:6:0;2464:95;;4029:112;;;;;;;;;;;;;:::i;9417:29::-;;;;;;;;;;;;;;;;11310:191;;;;;;;;;;-1:-1:-1;11310:191:0;;;;;:::i;:::-;;:::i;5745:281::-;;;;;;;;;;-1:-1:-1;5745:281:0;;;;;:::i;:::-;;:::i;4541:187::-;;;;;;;;;;-1:-1:-1;4541:187:0;;;;;:::i;:::-;;:::i;9459:30::-;;;;;;;;;;;;;;;;4740:159;;;;;;;;;;-1:-1:-1;4740:159:0;;;;;:::i;:::-;-1:-1:-1;;;;;4860:18:0;;;4829:7;4860:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4740:159;9622:37;;;;;;;;;;-1:-1:-1;9622:37:0;;;;-1:-1:-1;;;9622:37:0;;;;;;11038:117;;;;;;;;;;-1:-1:-1;11038:117:0;;;;;:::i;:::-;;:::i;11513:97::-;;;;;;;;;;-1:-1:-1;11513:97:0;;;;;:::i;:::-;;:::i;2903:260::-;;;;;;;;;;-1:-1:-1;2903:260:0;;;;;:::i;:::-;;:::i;3909:108::-;3963:13;4000:5;3993:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3909:108;:::o;4911:181::-;4994:4;5015:39;1924:10;5038:7;5047:6;5015:8;:39::i;:::-;-1:-1:-1;5076:4:0;4911:181;;;;;:::o;5104:387::-;5260:4;5281:36;5291:6;5299:9;5310:6;5281:9;:36::i;:::-;5332:121;5341:6;1924:10;5363:89;5401:6;5363:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5363:19:0;;;;;;:11;:19;;;;;;;;1924:10;5363:33;;;;;;;;;;:37;:89::i;:::-;5332:8;:121::i;:::-;-1:-1:-1;5475:4:0;5104:387;;;;;:::o;5503:230::-;1924:10;5591:4;5644:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5644:34:0;;;;;;;;;;5591:4;;5612:83;;5635:7;;5644:50;;5683:10;5644:38;:50::i;11783:334::-;2510:7;2541:6;-1:-1:-1;;;;;2541:6:0;1924:10;2623:23;2615:68;;;;-1:-1:-1;;;2615:68:0;;;;;;;:::i;:::-;;;;;;;;;11862:35:::1;11919:9;11862:67;;11978:16;-1:-1:-1::0;;;;;11978:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11960:56:0::1;;12025:4;12032:16;-1:-1:-1::0;;;;;12032:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11960:96;::::0;-1:-1:-1;;;;;;11960:96:0::1;::::0;;;;;;-1:-1:-1;;;;;5082:15:1;;;11960:96:0::1;::::0;::::1;5064:34:1::0;5134:15;;5114:18;;;5107:43;4999:18;;11960:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11944:13;:112:::0;;-1:-1:-1;;;;;11944:112:0;;::::1;-1:-1:-1::0;;;;;;11944:112:0;;::::1;;::::0;;;12071:15:::1;:34:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;11783:334:0:o;10771:117::-;2510:7;2541:6;-1:-1:-1;;;;;2541:6:0;1924:10;2623:23;2615:68;;;;-1:-1:-1;;;2615:68:0;;;;;;;:::i;:::-;10832:44:::1;10838:10;10859:16;4240:2:::0;10859::::1;:16;:::i;:::-;10850:25;::::0;:6;:25:::1;:::i;:::-;10832:5;:44::i;:::-;10771:117:::0;:::o;10900:118::-;2510:7;2541:6;-1:-1:-1;;;;;2541:6:0;1924:10;2623:23;2615:68;;;;-1:-1:-1;;;2615:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10973:26:0::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;10973:33:0::1;11002:4;10973:33;::::0;;10900:118::o;2731:160::-;2510:7;2541:6;-1:-1:-1;;;;;2541:6:0;1924:10;2623:23;2615:68;;;;-1:-1:-1;;;2615:68:0;;;;;;;:::i;:::-;2842:1:::1;2826:6:::0;;2805:40:::1;::::0;-1:-1:-1;;;;;2826:6:0;;::::1;::::0;2805:40:::1;::::0;2842:1;;2805:40:::1;2877:1;2860:19:::0;;-1:-1:-1;;;;;;2860:19:0::1;::::0;;2731:160::o;12129:176::-;2510:7;2541:6;-1:-1:-1;;;;;2541:6:0;1924:10;2623:23;2615:68;;;;-1:-1:-1;;;2615:68:0;;;;;;;:::i;:::-;12209:18:::1;:29:::0;;;::::1;;-1:-1:-1::0;;;12209:29:0::1;-1:-1:-1::0;;;;12209:29:0;;::::1;;::::0;;12258:35:::1;::::0;::::1;::::0;::::1;::::0;12230:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;12258:35:0::1;;;;;;;;12129:176:::0;:::o;11622:149::-;2510:7;2541:6;-1:-1:-1;;;;;2541:6:0;1924:10;2623:23;2615:68;;;;-1:-1:-1;;;2615:68:0;;;;;;;:::i;:::-;11743:16:::1;4240:2:::0;11743::::1;:16;:::i;:::-;11734:25;::::0;:6;:25:::1;:::i;:::-;11708:23;:51:::0;-1:-1:-1;11622:149:0:o;4029:112::-;4085:13;4122:7;4115:14;;;;;:::i;11310:191::-;2510:7;2541:6;-1:-1:-1;;;;;2541:6:0;1924:10;2623:23;2615:68;;;;-1:-1:-1;;;2615:68:0;;;;;;;:::i;:::-;11437:10:::1;:17:::0;;;;11469:11:::1;:18:::0;11310:191::o;5745:281::-;5838:4;5859:129;1924:10;5882:7;5891:96;5930:15;5891:96;;;;;;;;;;;;;;;;;1924:10;5891:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5891:34:0;;;;;;;;;;;;:38;:96::i;4541:187::-;4627:4;4648:42;1924:10;4672:9;4683:6;4648:9;:42::i;11038:117::-;2510:7;2541:6;-1:-1:-1;;;;;2541:6:0;1924:10;2623:23;2615:68;;;;-1:-1:-1;;;2615:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11109:26:0::1;11138:5;11109:26:::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;11109:34:0::1;::::0;;11038:117::o;11513:97::-;2510:7;2541:6;-1:-1:-1;;;;;2541:6:0;1924:10;2623:23;2615:68;;;;-1:-1:-1;;;2615:68:0;;;;;;;:::i;:::-;11581:10:::1;:17:::0;;-1:-1:-1;;;;;;11581:17:0::1;-1:-1:-1::0;;;;;11581:17:0;;;::::1;::::0;;;::::1;::::0;;11513:97::o;2903:260::-;2510:7;2541:6;-1:-1:-1;;;;;2541:6:0;1924:10;2623:23;2615:68;;;;-1:-1:-1;;;2615:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2996:22:0;::::1;2988:73;;;::::0;-1:-1:-1;;;2988:73:0;;7051:2:1;2988:73:0::1;::::0;::::1;7033:21:1::0;7090:2;7070:18;;;7063:30;7129:34;7109:18;;;7102:62;-1:-1:-1;;;7180:18:1;;;7173:36;7226:19;;2988:73:0::1;6849:402:1::0;2988:73:0::1;3102:6;::::0;;3081:38:::1;::::0;-1:-1:-1;;;;;3081:38:0;;::::1;::::0;3102:6;::::1;::::0;3081:38:::1;::::0;::::1;3134:6;:17:::0;;-1:-1:-1;;;;;;3134:17:0::1;-1:-1:-1::0;;;;;3134:17:0;;;::::1;::::0;;;::::1;::::0;;2903:260::o;853:106::-;911:7;942:5;946:1;942;:5;:::i;:::-;935:12;853:106;-1:-1:-1;;;853:106:0:o;7535:416::-;-1:-1:-1;;;;;7691:19:0;;7683:68;;;;-1:-1:-1;;;7683:68:0;;7588:2:1;7683:68:0;;;7570:21:1;7627:2;7607:18;;;7600:30;7666:34;7646:18;;;7639:62;-1:-1:-1;;;7717:18:1;;;7710:34;7761:19;;7683:68:0;7386:400:1;7683:68:0;-1:-1:-1;;;;;7774:21:0;;7766:68;;;;-1:-1:-1;;;7766:68:0;;7993:2:1;7766:68:0;;;7975:21:1;8032:2;8012:18;;;8005:30;8071:34;8051:18;;;8044:62;-1:-1:-1;;;8122:18:1;;;8115:32;8164:19;;7766:68:0;7791:398:1;7766:68:0;-1:-1:-1;;;;;7851:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7907:32;;1595:25:1;;;7907:32:0;;1568:18:1;7907:32:0;;;;;;;;7535:416;;;:::o;12366:1729::-;-1:-1:-1;;;;;12518:18:0;;12510:68;;;;-1:-1:-1;;;12510:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12601:16:0;;12593:64;;;;-1:-1:-1;;;12593:64:0;;;;;;;:::i;:::-;12689:1;12680:6;:10;12672:64;;;;-1:-1:-1;;;12672:64:0;;9206:2:1;12672:64:0;;;9188:21:1;9245:2;9225:18;;;9218:30;9284:34;9264:18;;;9257:62;-1:-1:-1;;;9335:18:1;;;9328:39;9384:19;;12672:64:0;9004:405:1;12672:64:0;12802:4;12753:28;4499:18;;;:9;:18;;;;;;12875:23;;12851:47;;;;;;;12935:54;;-1:-1:-1;12976:13:0;;-1:-1:-1;;;12976:13:0;;;;12975:14;12935:54;:96;;;;-1:-1:-1;13018:13:0;;-1:-1:-1;;;;;13010:21:0;;;13018:13;;13010:21;;12935:96;:135;;;;-1:-1:-1;13052:18:0;;-1:-1:-1;;;13052:18:0;;;;12935:135;12913:303;;;13128:23;;13105:46;;13170:30;13179:20;13170:8;:30::i;:::-;-1:-1:-1;;;;;13266:23:0;;13232:12;13266:23;;;:17;:23;;;;;;13247:4;;13266:23;;;:48;;-1:-1:-1;;;;;;13293:21:0;;;;;;:17;:21;;;;;;;;13266:48;13262:822;;;13331:33;13347:4;13353:2;13357:6;13331:15;:33::i;:::-;-1:-1:-1;13389:5:0;13262:822;;;13441:13;;-1:-1:-1;;;;;13441:13:0;;;13433:21;;;;13429:644;;13475:18;13496:31;13523:3;13496:22;13507:10;;13496:6;:10;;:22;;;;:::i;:::-;:26;;:31::i;:::-;13475:52;-1:-1:-1;13554:22:0;:6;13475:52;13554:10;:22::i;:::-;13546:30;;13595:48;13611:4;13625;13632:10;13595:15;:48::i;:::-;13662:33;13678:4;13684:2;13688:6;13662:15;:33::i;:::-;13456:257;13429:644;;;13729:13;;-1:-1:-1;;;;;13729:13:0;;;13723:19;;;;13719:354;;13763:18;13784:32;13812:3;13784:23;13795:11;;13784:6;:10;;:23;;;;:::i;13719:354::-;14024:33;14040:4;14046:2;14050:6;14024:15;:33::i;:::-;12495:1600;;;12366:1729;;;:::o;1317:226::-;1403:7;1472:12;1464:6;;;;1456:29;;;;-1:-1:-1;;;1456:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1511:5:0;;;1317:226::o;7081:442::-;-1:-1:-1;;;;;7169:21:0;;7161:67;;;;-1:-1:-1;;;7161:67:0;;9616:2:1;7161:67:0;;;9598:21:1;9655:2;9635:18;;;9628:30;9694:34;9674:18;;;9667:62;-1:-1:-1;;;9745:18:1;;;9738:31;9786:19;;7161:67:0;9414:397:1;7161:67:0;7332:68;7355:6;7332:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7332:18:0;;;;;;:9;:18;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;7311:18:0;;;;;;:9;:18;;;;;:89;7430:12;;:24;;7447:6;7430:16;:24::i;:::-;7415:12;:39;7474:37;;1595:25:1;;;7500:1:0;;-1:-1:-1;;;;;7474:37:0;;;;;1583:2:1;1568:18;7474:37:0;;;;;;;7081:442;;:::o;14107:569::-;9895:13;:20;;-1:-1:-1;;;;9895:20:0;-1:-1:-1;;;9895:20:0;;;14226:11:::1;::::0;9895:20;;14206:41:::1;::::0;14243:3:::1;::::0;14206:32:::1;::::0;:15;;:19:::1;:32::i;:41::-;14185:62:::0;-1:-1:-1;14185:62:0;14319:20;;;:46:::1;;-1:-1:-1::0;14343:22:0;;14319:46:::1;14316:60;;;14368:7;;;;14316:60;14390:12;14417:33;14434:15;14417:16;:33::i;:::-;14487:21;14466:18;14571:17:::0;14544:23:::1;14557:10:::0;14487:21;14544:23:::1;:::i;:::-;:45;;;;:::i;:::-;14625:10;::::0;14617:47:::1;::::0;14523:66;;-1:-1:-1;;;;;;14625:10:0::1;::::0;14523:66;;14617:47:::1;::::0;;;14523:66;14625:10;14617:47:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;9930:1:0::1;-1:-1:-1::0;9946:13:0;:21;;-1:-1:-1;;;;9946:21:0;;;14107:569::o;6038:617::-;-1:-1:-1;;;;;6198:20:0;;6190:70;;;;-1:-1:-1;;;6190:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6283:23:0;;6275:71;;;;-1:-1:-1;;;6275:71:0;;;;;;;:::i;:::-;6447;6469:6;6447:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6447:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;6427:17:0;;;;;;;:9;:17;;;;;;:91;;;;6556:20;;;;;;;:32;;6581:6;6556:24;:32::i;:::-;-1:-1:-1;;;;;6533:20:0;;;;;;;:9;:20;;;;;;;:55;;;;6608:35;;;;;;;;;;6636:6;1595:25:1;;1583:2;1568:18;;1449:177;1085:106:0;1143:7;1174:5;1178:1;1174;:5;:::i;1201:106::-;1259:7;1290:5;1294:1;1290;:5;:::i;969:106::-;1027:7;1058:5;1062:1;1058;:5;:::i;14695:547::-;14789:16;;;14803:1;14789:16;;;;;;;;14765:21;;14789:16;;;;;;;;;;-1:-1:-1;14789:16:0;14765:40;;14838:4;14820;14825:1;14820:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14820:23:0;;;:7;;;;;;;;;;:23;;;;14868:15;;:22;;;-1:-1:-1;;;14868:22:0;;;;:15;;;;;:20;;:22;;;;;14820:7;;14868:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14858:4;14863:1;14858:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14858:32:0;;;:7;;;;;;;;;:32;14937:15;;14905:62;;14922:4;;14937:15;14955:11;14905:8;:62::i;:::-;14982:15;;:248;;-1:-1:-1;;;14982:248:0;;-1:-1:-1;;;;;14982:15:0;;;;:66;;:248;;15067:11;;14982:15;;15145:4;;15176;;15200:15;;14982:248;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2281:247::-;2340:6;2393:2;2381:9;2372:7;2368:23;2364:32;2361:52;;;2409:1;2406;2399:12;2361:52;2448:9;2435:23;2467:31;2492:5;2467:31;:::i;2533:180::-;2592:6;2645:2;2633:9;2624:7;2620:23;2616:32;2613:52;;;2661:1;2658;2651:12;2613:52;-1:-1:-1;2684:23:1;;2533:180;-1:-1:-1;2533:180:1:o;2926:273::-;2982:6;3035:2;3023:9;3014:7;3010:23;3006:32;3003:52;;;3051:1;3048;3041:12;3003:52;3090:9;3077:23;3143:5;3136:13;3129:21;3122:5;3119:32;3109:60;;3165:1;3162;3155:12;3204:248;3272:6;3280;3333:2;3321:9;3312:7;3308:23;3304:32;3301:52;;;3349:1;3346;3339:12;3301:52;-1:-1:-1;;3372:23:1;;;3442:2;3427:18;;;3414:32;;-1:-1:-1;3204:248:1:o;3457:388::-;3525:6;3533;3586:2;3574:9;3565:7;3561:23;3557:32;3554:52;;;3602:1;3599;3592:12;3554:52;3641:9;3628:23;3660:31;3685:5;3660:31;:::i;:::-;3710:5;-1:-1:-1;3767:2:1;3752:18;;3739:32;3780:33;3739:32;3780:33;:::i;:::-;3832:7;3822:17;;;3457:388;;;;;:::o;3850:380::-;3929:1;3925:12;;;;3972;;;3993:61;;4047:4;4039:6;4035:17;4025:27;;3993:61;4100:2;4092:6;4089:14;4069:18;4066:38;4063:161;;4146:10;4141:3;4137:20;4134:1;4127:31;4181:4;4178:1;4171:15;4209:4;4206:1;4199:15;4063:161;;3850:380;;;:::o;4235:356::-;4437:2;4419:21;;;4456:18;;;4449:30;4515:34;4510:2;4495:18;;4488:62;4582:2;4567:18;;4235:356::o;4596:251::-;4666:6;4719:2;4707:9;4698:7;4694:23;4690:32;4687:52;;;4735:1;4732;4725:12;4687:52;4767:9;4761:16;4786:31;4811:5;4786:31;:::i;5161:127::-;5222:10;5217:3;5213:20;5210:1;5203:31;5253:4;5250:1;5243:15;5277:4;5274:1;5267:15;5293:422;5382:1;5425:5;5382:1;5439:270;5460:7;5450:8;5447:21;5439:270;;;5519:4;5515:1;5511:6;5507:17;5501:4;5498:27;5495:53;;;5528:18;;:::i;:::-;5578:7;5568:8;5564:22;5561:55;;;5598:16;;;;5561:55;5677:22;;;;5637:15;;;;5439:270;;;5443:3;5293:422;;;;;:::o;5720:806::-;5769:5;5799:8;5789:80;;-1:-1:-1;5840:1:1;5854:5;;5789:80;5888:4;5878:76;;-1:-1:-1;5925:1:1;5939:5;;5878:76;5970:4;5988:1;5983:59;;;;6056:1;6051:130;;;;5963:218;;5983:59;6013:1;6004:10;;6027:5;;;6051:130;6088:3;6078:8;6075:17;6072:43;;;6095:18;;:::i;:::-;-1:-1:-1;;6151:1:1;6137:16;;6166:5;;5963:218;;6265:2;6255:8;6252:16;6246:3;6240:4;6237:13;6233:36;6227:2;6217:8;6214:16;6209:2;6203:4;6200:12;6196:35;6193:77;6190:159;;;-1:-1:-1;6302:19:1;;;6334:5;;6190:159;6381:34;6406:8;6400:4;6381:34;:::i;:::-;6451:6;6447:1;6443:6;6439:19;6430:7;6427:32;6424:58;;;6462:18;;:::i;:::-;6500:20;;5720:806;-1:-1:-1;;;5720:806:1:o;6531:140::-;6589:5;6618:47;6659:4;6649:8;6645:19;6639:4;6618:47;:::i;6676:168::-;6749:9;;;6780;;6797:15;;;6791:22;;6777:37;6767:71;;6818:18;;:::i;7256:125::-;7321:9;;;7342:10;;;7339:36;;;7355:18;;:::i;8194:401::-;8396:2;8378:21;;;8435:2;8415:18;;;8408:30;8474:34;8469:2;8454:18;;8447:62;-1:-1:-1;;;8540:2:1;8525:18;;8518:35;8585:3;8570:19;;8194:401::o;8600:399::-;8802:2;8784:21;;;8841:2;8821:18;;;8814:30;8880:34;8875:2;8860:18;;8853:62;-1:-1:-1;;;8946:2:1;8931:18;;8924:33;8989:3;8974:19;;8600:399::o;9816:217::-;9856:1;9882;9872:132;;9926:10;9921:3;9917:20;9914:1;9907:31;9961:4;9958:1;9951:15;9989:4;9986:1;9979:15;9872:132;-1:-1:-1;10018:9:1;;9816:217::o;10248:128::-;10315:9;;;10336:11;;;10333:37;;;10350:18;;:::i;10513:127::-;10574:10;10569:3;10565:20;10562:1;10555:31;10605:4;10602:1;10595:15;10629:4;10626:1;10619:15;10645:980;10907:4;10955:3;10944:9;10940:19;10986:6;10975:9;10968:25;11012:2;11050:6;11045:2;11034:9;11030:18;11023:34;11093:3;11088:2;11077:9;11073:18;11066:31;11117:6;11152;11146:13;11183:6;11175;11168:22;11221:3;11210:9;11206:19;11199:26;;11260:2;11252:6;11248:15;11234:29;;11281:1;11291:195;11305:6;11302:1;11299:13;11291:195;;;11370:13;;-1:-1:-1;;;;;11366:39:1;11354:52;;11461:15;;;;11426:12;;;;11402:1;11320:9;11291:195;;;-1:-1:-1;;;;;;;11542:32:1;;;;11537:2;11522:18;;11515:60;-1:-1:-1;;;11606:3:1;11591:19;11584:35;11503:3;10645:980;-1:-1:-1;;;10645:980:1:o

Swarm Source

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