ETH Price: $2,539.98 (+2.20%)

Token

ƘILLƐR ƤƐƤƐ (KEPE)
 

Overview

Max Total Supply

690,000,000,000,000 KEPE

Holders

299

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.834458928373134795 KEPE

Value
$0.00
0x3300dbf763154a8f26fb8f82b82e0ff4b0a2f18c
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:
KillerPepe

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.18;

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

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

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

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() external 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;
    }
}

contract KillerPepe is Ownable {

    IRouter public uniswapV2Router;
    address public uniswapV2Pair;
    address public router;
    
    uint8 private _decimals = 18;
    string private _name = unicode"ƘILLƐR ƤƐƤƐ";
    string private _symbol = unicode"KEPE";
    uint256 private _totalSupply = 690_000_000_000_000 * 1e18;
    uint256 private maxTxAmount = _totalSupply / 100;
    
    mapping(address => uint256) private _balances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => mapping(address => uint256)) private _allowances;
    
    uint256 private supplyForLiq = _totalSupply * 90 / 100;
    uint256 private supplyToOwner = _totalSupply * 10 / 100;
    
    uint256 private buyTaxes = 30;
    uint256 private sellTaxes = 30;
    uint256 private swapTokensAtAmount = _totalSupply / 2000;
    uint256 private readSwapAtAmount = 5;
    address public marketingWallet = 0x730aa5Dc96B3D769391f26424b9a496A48e8D882;
    
    bool private autoSwapTaxes;
    bool private inSwapAndLiquify;
    bool private swapForETH = true;
    bool private sendTokens = false;
    bool public tradingOpen = false;
    bool public liquidityAdded = false;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    constructor() {

        if(block.chainid == 1) {
            router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;    // ETH Uniswap V2 mainnet
        } else if(block.chainid == 56) {
            router = 0x10ED43C718714eb63d5aA57B78B54704E256024E;    // BSC PCS V2 mainnet
        } else if(block.chainid == 97) {
            router = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1;    // BSC PCS V2 testnet
        }

        uniswapV2Router = IRouter(router);
        uniswapV2Pair = IFactory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        transferOwnership(msg.sender);
        _balances[address(this)] = supplyForLiq;
        _balances[owner()] = supplyToOwner;
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[marketingWallet] = true;
        _approve(address(this), router, type(uint256).max);
        emit Transfer(address(0), owner(), supplyToOwner);
        emit Transfer(address(0), address(this), supplyForLiq);
    }

    modifier preventClog {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    receive() external payable {}
    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  returns (uint256)  {return _totalSupply; }
    function balanceOf(address account) public view returns (uint256) { return _balances[account]; }

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal {
        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 currentMaxTransaction() public view returns(uint256) {
        return maxTxAmount / 1e18;
    }

    function checkLimits() public view returns(string memory) {
        string memory currentLimits = "No Limits";
        if(maxTxAmount < _totalSupply) {
            currentLimits = "Max tx limits in effect";
            return currentLimits;
        } else {
            return currentLimits;
        }
    }

    function setMaxTx(uint8 maxTxPercent) public onlyOwner {
        require(maxTxPercent >= 1 && maxTxPercent <= 10, "Can set from 1 to 10.");
        maxTxAmount = _totalSupply * maxTxPercent / 100;
    }

    function removeLimits() public onlyOwner {
        maxTxAmount = _totalSupply;
    }

   function launchNow() public onlyOwner() {
        require(!tradingOpen,"trading is already open");
        tradingOpen = true;
        autoSwapTaxes = true;
    }

    function addInitialLiquidity() external onlyOwner {
        require(!liquidityAdded,"Initial liquidity already added");
        uint256 ethToAdd = address(this).balance;
        uint256 tokensToAdd = _totalSupply * 80 / 100;
        uniswapV2Router.addLiquidityETH{value: ethToAdd}(address(this), tokensToAdd, 0, 0, owner(), block.timestamp);
        liquidityAdded = true;
    }

    function setTaxes(uint256 newBuyTax, uint256 newSellTax) public onlyOwner {
        require(newBuyTax <= 60 && newSellTax <= 60, "Taxes cannot exceed 60% each.");
        buyTaxes = newBuyTax;
        sellTaxes = newSellTax;
    }

    function setPhase(uint8 launchPhase) public onlyOwner {
        if(launchPhase == 1) {
            buyTaxes = 30;
            sellTaxes = 30;
        } else if(launchPhase == 2) {
            buyTaxes = 15;
            sellTaxes = 15;
        } else if(launchPhase == 3) {
            buyTaxes = 1;
            sellTaxes = 15;
        } else if(launchPhase == 4) {
            buyTaxes = 1;
            sellTaxes = 1;
        } else {
            revert();
        }
    }

    function setAutoSwap(bool swapTrueOrFalse) public {
        require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing.");
        autoSwapTaxes = swapTrueOrFalse;
    }

    function setTokensForSwap(uint256 tokensForSwap) public {
        require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing.");
        require(tokensForSwap >= 1, "Cannot set below 0.01% of total supply.");
        require(tokensForSwap <= 100, "Cannot set above 1% of total supply.");
        swapTokensAtAmount = _totalSupply * tokensForSwap / 10000;
        readSwapAtAmount = tokensForSwap;
    }

    function setTokens() public {
        require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing.");
        sendTokens = true;
        swapForETH = false;
    }

    function setETH() public {
        require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing.");
        swapForETH = true;
        sendTokens = false;
    }

     function withdrawTokens(address _token) public {
        require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing.");
        require(_token != address(0), "_token address cannot be 0");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        IERC20(_token).transfer(msg.sender, _contractBalance);
    }

    function withdrawETH() public {
        require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing.");
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function changeMarketingWallet(address newMarketing) public {
        require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing.");
        marketingWallet = newMarketing;
    }

    function autoSwapSettings() public view returns(string memory, string memory, uint256 triggerAmount) {
        string memory current;
        string memory autoSwapTax;
        triggerAmount = readSwapAtAmount;

        if(autoSwapTaxes) {
            autoSwapTax = "Autoswap is ON";
        } else if(!autoSwapTaxes) {
            autoSwapTax = "Autoswap is OFF";
        }

        if(swapForETH) {
            current = "E";
        } else if(sendTokens) {
            current = 'T';
        }

        return (autoSwapTax, current, triggerAmount);
    }

    function taxes() public view returns(uint256 buyTax, uint256 sellTax) {
        return(buyTaxes, sellTaxes);
    }

    function releaseFees(uint256 feeTokens) internal {
        _balances[address(this)] -= feeTokens;
        _balances[marketingWallet] += feeTokens;
        emit Transfer(address(this), marketingWallet, feeTokens);
    }

    function _transfer(address from, address to, uint256 amount) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(balanceOf(from) >= amount, "Excessive amount");

        uint256 fees;
        uint256 finalTransferAmount;
        uint256 contractBalances = balanceOf(address(this));
        bool sendTaxes = contractBalances >= swapTokensAtAmount;

        if(!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            require(tradingOpen, "Trading not opened yet.");
            require(amount <= maxTxAmount, "Cannot transfer more than current max transation amount.");
        }

        if(_isExcludedFromFees[from] || _isExcludedFromFees[to] || inSwapAndLiquify) {
            _balances[from] -= amount;
            _balances[to] += amount;
            emit Transfer(from, to, amount);
        } else {

            if(from == uniswapV2Pair) {
                fees = amount * buyTaxes / 100;
                finalTransferAmount = amount - fees;
                if(autoSwapTaxes) {
                    if(sendTaxes && sendTokens) {
                        releaseFees(swapTokensAtAmount);
                    }
                }
            }

            if(to == uniswapV2Pair) {
                fees = amount * sellTaxes / 100;
                finalTransferAmount = amount - fees;

                // Can be either swap for eth or send tokens
                if(autoSwapTaxes) {
                    if(sendTaxes && swapForETH) {
                        swapTokensForEth(swapTokensAtAmount);
                    } else if(sendTaxes && sendTokens) {
                        releaseFees(swapTokensAtAmount);
                    }
                }
            }

            if(from != uniswapV2Pair && to != uniswapV2Pair) {
                finalTransferAmount = amount;
            }

            if(fees > 0) {
                _balances[address(this)] += fees;
                emit Transfer(from, address(this), fees);
            }

            _balances[from] -= amount;
            _balances[to] += finalTransferAmount;
            emit Transfer(from, to, finalTransferAmount);
        }
       
    }

    function swapTokensForEth(uint256 tokenAmount) private preventClog {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        // Prevent contract halt if swap fails
        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, marketingWallet, block.timestamp) {} catch {}
    }

}

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":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":"addInitialLiquidity","outputs":[],"stateMutability":"nonpayable","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":[],"name":"autoSwapSettings","outputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"triggerAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketing","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkLimits","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxTransaction","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchNow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"swapTrueOrFalse","type":"bool"}],"name":"setAutoSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxTxPercent","type":"uint8"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"launchPhase","type":"uint8"}],"name":"setPhase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokensForSwap","type":"uint256"}],"name":"setTokensForSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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 IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6003805460ff60a01b1916600960a11b17905560c060405260116080908152700c698494c4cc6905220c6a4c690c6a4c69607c1b60a052600490620000459082620007ef565b506040805180820190915260048152634b45504560e01b6020820152600590620000709082620007ef565b506d2205063ea95de7294160800000006006556064600654620000949190620008bb565b6007556064600654605a620000aa9190620008de565b620000b69190620008bb565b600b556064600654600a620000cc9190620008de565b620000d89190620008bb565b600c55601e600d55601e600e556107d0600654620000f79190620008bb565b600f55600560105560118054600165ffffffff000160a01b03191676010000730aa5dc96b3d769391f26424b9a496a48e8d8821790553480156200013a57600080fd5b50600080546001600160a01b0319163390811782556040519091829160008051602062002b1c833981519152908290a35046600103620001a057600380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000205565b46603803620001d557600380546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e17905562000205565b466061036200020557600380546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d11790555b600354600180546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000262573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028891906200090a565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002eb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031191906200090a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200035f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038591906200090a565b600280546001600160a01b0319166001600160a01b0392909216919091179055620003b03362000502565b600b54306000908152600860208190526040822092909255600c549190620003e06000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600960006200041a6200061360201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530808252600990945282812080548616600190811790915560115483168252929020805490941690911790925560035462000487921660001962000622565b6000546001600160a01b03166001600160a01b031660006001600160a01b031660008051602062002b3c833981519152600c54604051620004ca91815260200190565b60405180910390a3600b54604051908152309060009060008051602062002b3c8339815191529060200160405180910390a36200093c565b6000546001600160a01b03163314620005625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620005c95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000559565b600080546040516001600160a01b038085169392169160008051602062002b1c83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b6001600160a01b038316620006865760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000559565b6001600160a01b038216620006e95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000559565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200077557607f821691505b6020821081036200079657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007ea57600081815260208120601f850160051c81016020861015620007c55750805b601f850160051c820191505b81811015620007e657828155600101620007d1565b5050505b505050565b81516001600160401b038111156200080b576200080b6200074a565b62000823816200081c845462000760565b846200079c565b602080601f8311600181146200085b5760008415620008425750858301515b600019600386901b1c1916600185901b178555620007e6565b600085815260208120601f198616915b828110156200088c578886015182559484019460019091019084016200086b565b5085821015620008ab5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082620008d957634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176200090457634e487b7160e01b600052601160045260246000fd5b92915050565b6000602082840312156200091d57600080fd5b81516001600160a01b03811681146200093557600080fd5b9392505050565b6121d0806200094c6000396000f3fe60806040526004361061021e5760003560e01c8063751039fc11610123578063bb85c6d1116100ab578063dd62ed3e1161006f578063dd62ed3e14610628578063e086e5ec1461066e578063f2fde38b14610683578063f887ea40146106a3578063ffb54a99146106c357600080fd5b8063bb85c6d114610583578063c03afb59146105a3578063c647b20e146105c3578063d9443923146105e3578063dbc705ad1461060457600080fd5b806395d89b41116100f257806395d89b41146104f9578063a457c2d71461050e578063a49a910f1461052e578063a9059cbb1461054e578063ace9038d1461056e57600080fd5b8063751039fc1461048657806375f0a8741461049b5780638da5cb5b146104bb57806393818cfa146104d957600080fd5b80633a6ac26c116101a657806365f48e621161017557806365f48e62146103de57806370a08231146103fe578063715018a614610434578063715492aa14610449578063728f8eea1461045e57600080fd5b80633a6ac26c1461037457806349bd5a5e1461038957806349df728c146103a9578063559ed339146103c957600080fd5b80631694505e116101ed5780631694505e146102b157806318160ddd146102e957806323b872dd14610308578063313ce56714610328578063395093511461035457600080fd5b80630210a83d1461022a57806306fdde0314610241578063095ea7b31461026c57806311cd0e251461029c57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106e4565b005b34801561024d57600080fd5b50610256610864565b6040516102639190611da6565b60405180910390f35b34801561027857600080fd5b5061028c610287366004611dd5565b6108f6565b6040519015158152602001610263565b3480156102a857600080fd5b5061023f61090d565b3480156102bd57600080fd5b506001546102d1906001600160a01b031681565b6040516001600160a01b039091168152602001610263565b3480156102f557600080fd5b506006545b604051908152602001610263565b34801561031457600080fd5b5061028c610323366004611e01565b610962565b34801561033457600080fd5b50600354600160a01b900460ff1660405160ff9091168152602001610263565b34801561036057600080fd5b5061028c61036f366004611dd5565b610a0c565b34801561038057600080fd5b50610256610a48565b34801561039557600080fd5b506002546102d1906001600160a01b031681565b3480156103b557600080fd5b5061023f6103c4366004611e42565b610aba565b3480156103d557600080fd5b5061023f610c33565b3480156103ea57600080fd5b5061023f6103f9366004611e5f565b610c88565b34801561040a57600080fd5b506102fa610419366004611e42565b6001600160a01b031660009081526008602052604090205490565b34801561044057600080fd5b5061023f610d31565b34801561045557600080fd5b5061023f610da5565b34801561046a57600080fd5b50600d54600e5460408051928352602083019190915201610263565b34801561049257600080fd5b5061023f610e46565b3480156104a757600080fd5b506011546102d1906001600160a01b031681565b3480156104c757600080fd5b506000546001600160a01b03166102d1565b3480156104e557600080fd5b5061023f6104f4366004611e90565b610e78565b34801561050557600080fd5b50610256610ed5565b34801561051a57600080fd5b5061028c610529366004611dd5565b610ee4565b34801561053a57600080fd5b5061023f610549366004611ead565b610f7d565b34801561055a57600080fd5b5061028c610569366004611dd5565b61109d565b34801561057a57600080fd5b506102fa6110aa565b34801561058f57600080fd5b5061023f61059e366004611e42565b6110c7565b3480156105af57600080fd5b5061023f6105be366004611e5f565b611128565b3480156105cf57600080fd5b5061023f6105de366004611ec6565b6111b3565b3480156105ef57600080fd5b5060115461028c90600160c81b900460ff1681565b34801561061057600080fd5b50610619611246565b60405161026393929190611ee8565b34801561063457600080fd5b506102fa610643366004611f1e565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561067a57600080fd5b5061023f611333565b34801561068f57600080fd5b5061023f61069e366004611e42565b6113bf565b3480156106af57600080fd5b506003546102d1906001600160a01b031681565b3480156106cf57600080fd5b5060115461028c90600160c01b900460ff1681565b6000546001600160a01b031633146107175760405162461bcd60e51b815260040161070e90611f57565b60405180910390fd5b601154600160c81b900460ff16156107715760405162461bcd60e51b815260206004820152601f60248201527f496e697469616c206c697175696469747920616c726561647920616464656400604482015260640161070e565b6006544790600090606490610787906050611fa2565b6107919190611fb9565b6001549091506001600160a01b031663f305d7198330846000806107bd6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610825573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061084a9190611fdb565b50506011805460ff60c81b1916600160c81b179055505050565b60606004805461087390612009565b80601f016020809104026020016040519081016040528092919081815260200182805461089f90612009565b80156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b5050505050905090565b60006109033384846114a9565b5060015b92915050565b6000546001600160a01b031633148061093057506011546001600160a01b031633145b61094c5760405162461bcd60e51b815260040161070e90612043565b6011805461ffff60b01b1916600160b01b179055565b600061096f8484846115cd565b6001600160a01b0384166000908152600a60209081526040808320338452909152902054828110156109f45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161070e565b610a0185338584036114a9565b506001949350505050565b336000818152600a602090815260408083206001600160a01b03871684529091528120549091610903918590610a4390869061207a565b6114a9565b60606000604051806040016040528060098152602001684e6f204c696d69747360b81b81525090506006546007541015610ab557505060408051808201909152601781527f4d6178207478206c696d69747320696e20656666656374000000000000000000602082015290565b919050565b6000546001600160a01b0316331480610add57506011546001600160a01b031633145b610af95760405162461bcd60e51b815260040161070e90612043565b6001600160a01b038116610b4f5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000604482015260640161070e565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bba919061208d565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2e91906120a6565b505050565b6000546001600160a01b0316331480610c5657506011546001600160a01b031633145b610c725760405162461bcd60e51b815260040161070e90612043565b6011805461ffff60b01b1916600160b81b179055565b6000546001600160a01b03163314610cb25760405162461bcd60e51b815260040161070e90611f57565b60018160ff1610158015610cca5750600a8160ff1611155b610d0e5760405162461bcd60e51b815260206004820152601560248201527421b0b71039b2ba10333937b69018903a379018981760591b604482015260640161070e565b60648160ff16600654610d219190611fa2565b610d2b9190611fb9565b60075550565b6000546001600160a01b03163314610d5b5760405162461bcd60e51b815260040161070e90611f57565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610dcf5760405162461bcd60e51b815260040161070e90611f57565b601154600160c01b900460ff1615610e295760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161070e565b6011805464ff000000ff60a01b191664010000000160a01b179055565b6000546001600160a01b03163314610e705760405162461bcd60e51b815260040161070e90611f57565b600654600755565b6000546001600160a01b0316331480610e9b57506011546001600160a01b031633145b610eb75760405162461bcd60e51b815260040161070e90612043565b60118054911515600160a01b0260ff60a01b19909216919091179055565b60606005805461087390612009565b336000908152600a602090815260408083206001600160a01b038616845290915281205482811015610f665760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070e565b610f7333858584036114a9565b5060019392505050565b6000546001600160a01b0316331480610fa057506011546001600160a01b031633145b610fbc5760405162461bcd60e51b815260040161070e90612043565b600181101561101d5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74207365742062656c6f7720302e303125206f6620746f74616c2060448201526639bab838363c9760c91b606482015260840161070e565b606481111561107a5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f74207365742061626f7665203125206f6620746f74616c2073757060448201526338363c9760e11b606482015260840161070e565b6127108160065461108b9190611fa2565b6110959190611fb9565b600f55601055565b60006109033384846115cd565b6000670de0b6b3a76400006007546110c29190611fb9565b905090565b6000546001600160a01b03163314806110ea57506011546001600160a01b031633145b6111065760405162461bcd60e51b815260040161070e90612043565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111525760405162461bcd60e51b815260040161070e90611f57565b8060ff1660010361116a57601e600d819055600e5550565b8060ff1660020361118257600f600d819055600e5550565b8060ff1660030361119a576001600d55600f600e5550565b8060ff16600403610225576001600d819055600e555b50565b6000546001600160a01b031633146111dd5760405162461bcd60e51b815260040161070e90611f57565b603c82111580156111ef5750603c8111155b61123b5760405162461bcd60e51b815260206004820152601d60248201527f54617865732063616e6e6f74206578636565642036302520656163682e000000604482015260640161070e565b600d91909155600e55565b601054601154606091829182908190600160a01b900460ff161561128f575060408051808201909152600e81526d20baba37b9bbb0b81034b99027a760911b60208201526112c8565b601154600160a01b900460ff166112c8575060408051808201909152600f81526e20baba37b9bbb0b81034b99027a32360891b60208201525b601154600160b01b900460ff16156112fb57604051806040016040528060018152602001604560f81b815250915061132a565b601154600160b81b900460ff161561132a57604051806040016040528060018152602001601560fa1b81525091505b94909350909150565b6000546001600160a01b031633148061135657506011546001600160a01b031633145b6113725760405162461bcd60e51b815260040161070e90612043565b604051600090339047908381818185875af1925050503d80600081146113b4576040519150601f19603f3d011682016040523d82523d6000602084013e6113b9565b606091505b50505050565b6000546001600160a01b031633146113e95760405162461bcd60e51b815260040161070e90611f57565b6001600160a01b03811661144e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661150b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070e565b6001600160a01b03821661156c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070e565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116315760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070e565b6001600160a01b0382166116935760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070e565b806116b3846001600160a01b031660009081526008602052604090205490565b10156116f45760405162461bcd60e51b815260206004820152601060248201526f115e18d95cdcda5d9948185b5bdd5b9d60821b604482015260640161070e565b30600090815260086020908152604080832054600f546001600160a01b038816855260099093529083205483928210159060ff1615801561174e57506001600160a01b03861660009081526009602052604090205460ff16155b1561182457601154600160c01b900460ff166117ac5760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f74206f70656e6564207965742e000000000000000000604482015260640161070e565b6007548511156118245760405162461bcd60e51b815260206004820152603860248201527f43616e6e6f74207472616e73666572206d6f7265207468616e2063757272656e60448201527f74206d6178207472616e736174696f6e20616d6f756e742e0000000000000000606482015260840161070e565b6001600160a01b03871660009081526009602052604090205460ff168061186357506001600160a01b03861660009081526009602052604090205460ff165b806118775750601154600160a81b900460ff165b15611918576001600160a01b038716600090815260086020526040812080548792906118a49084906120c3565b90915550506001600160a01b038616600090815260086020526040812080548792906118d190849061207a565b92505081905550856001600160a01b0316876001600160a01b031660008051602061217b8339815191528760405161190b91815260200190565b60405180910390a3611b57565b6002546001600160a01b039081169088160361198f576064600d548661193e9190611fa2565b6119489190611fb9565b935061195484866120c3565b601154909350600160a01b900460ff161561198f5780801561197f5750601154600160b81b900460ff165b1561198f5761198f600f54611b60565b6002546001600160a01b0390811690871603611a31576064600e54866119b59190611fa2565b6119bf9190611fb9565b93506119cb84866120c3565b601154909350600160a01b900460ff1615611a31578080156119f65750601154600160b01b900460ff165b15611a0b57611a06600f54611be8565b611a31565b808015611a215750601154600160b81b900460ff165b15611a3157611a31600f54611b60565b6002546001600160a01b03888116911614801590611a5d57506002546001600160a01b03878116911614155b15611a66578492505b8315611abf573060009081526008602052604081208054869290611a8b90849061207a565b909155505060405184815230906001600160a01b0389169060008051602061217b8339815191529060200160405180910390a35b6001600160a01b03871660009081526008602052604081208054879290611ae79084906120c3565b90915550506001600160a01b03861660009081526008602052604081208054859290611b1490849061207a565b92505081905550856001600160a01b0316876001600160a01b031660008051602061217b83398151915285604051611b4e91815260200190565b60405180910390a35b50505050505050565b3060009081526008602052604081208054839290611b7f9084906120c3565b90915550506011546001600160a01b031660009081526008602052604081208054839290611bae90849061207a565b90915550506011546040518281526001600160a01b0390911690309060008051602061217b8339815191529060200160405180910390a350565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611c3057611c306120d6565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cad91906120ec565b81600181518110611cc057611cc06120d6565b6001600160a01b039283166020918202929092010152600154611ce691309116846114a9565b60015460115460405163791ac94760e01b81526001600160a01b039283169263791ac94792611d2392879260009288929116904290600401612109565b600060405180830381600087803b158015611d3d57600080fd5b505af1925050508015611d4e575060015b5050506011805460ff60a81b19169055565b6000815180845260005b81811015611d8657602081850181015186830182015201611d6a565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000611db96020830184611d60565b9392505050565b6001600160a01b03811681146111b057600080fd5b60008060408385031215611de857600080fd5b8235611df381611dc0565b946020939093013593505050565b600080600060608486031215611e1657600080fd5b8335611e2181611dc0565b92506020840135611e3181611dc0565b929592945050506040919091013590565b600060208284031215611e5457600080fd5b8135611db981611dc0565b600060208284031215611e7157600080fd5b813560ff81168114611db957600080fd5b80151581146111b057600080fd5b600060208284031215611ea257600080fd5b8135611db981611e82565b600060208284031215611ebf57600080fd5b5035919050565b60008060408385031215611ed957600080fd5b50508035926020909101359150565b606081526000611efb6060830186611d60565b8281036020840152611f0d8186611d60565b915050826040830152949350505050565b60008060408385031215611f3157600080fd5b8235611f3c81611dc0565b91506020830135611f4c81611dc0565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090757610907611f8c565b600082611fd657634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215611ff057600080fd5b8351925060208401519150604084015190509250925092565b600181811c9082168061201d57607f821691505b60208210810361203d57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526019908201527f4f6e6c79206f776e657220616e64206d61726b6574696e672e00000000000000604082015260600190565b8082018082111561090757610907611f8c565b60006020828403121561209f57600080fd5b5051919050565b6000602082840312156120b857600080fd5b8151611db981611e82565b8181038181111561090757610907611f8c565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156120fe57600080fd5b8151611db981611dc0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121595784516001600160a01b031683529383019391830191600101612134565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220738757c20bf38aa43cb212a23e5e432a31329e77669e6c71fb4cee31c733cabd64736f6c634300081200338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x60806040526004361061021e5760003560e01c8063751039fc11610123578063bb85c6d1116100ab578063dd62ed3e1161006f578063dd62ed3e14610628578063e086e5ec1461066e578063f2fde38b14610683578063f887ea40146106a3578063ffb54a99146106c357600080fd5b8063bb85c6d114610583578063c03afb59146105a3578063c647b20e146105c3578063d9443923146105e3578063dbc705ad1461060457600080fd5b806395d89b41116100f257806395d89b41146104f9578063a457c2d71461050e578063a49a910f1461052e578063a9059cbb1461054e578063ace9038d1461056e57600080fd5b8063751039fc1461048657806375f0a8741461049b5780638da5cb5b146104bb57806393818cfa146104d957600080fd5b80633a6ac26c116101a657806365f48e621161017557806365f48e62146103de57806370a08231146103fe578063715018a614610434578063715492aa14610449578063728f8eea1461045e57600080fd5b80633a6ac26c1461037457806349bd5a5e1461038957806349df728c146103a9578063559ed339146103c957600080fd5b80631694505e116101ed5780631694505e146102b157806318160ddd146102e957806323b872dd14610308578063313ce56714610328578063395093511461035457600080fd5b80630210a83d1461022a57806306fdde0314610241578063095ea7b31461026c57806311cd0e251461029c57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106e4565b005b34801561024d57600080fd5b50610256610864565b6040516102639190611da6565b60405180910390f35b34801561027857600080fd5b5061028c610287366004611dd5565b6108f6565b6040519015158152602001610263565b3480156102a857600080fd5b5061023f61090d565b3480156102bd57600080fd5b506001546102d1906001600160a01b031681565b6040516001600160a01b039091168152602001610263565b3480156102f557600080fd5b506006545b604051908152602001610263565b34801561031457600080fd5b5061028c610323366004611e01565b610962565b34801561033457600080fd5b50600354600160a01b900460ff1660405160ff9091168152602001610263565b34801561036057600080fd5b5061028c61036f366004611dd5565b610a0c565b34801561038057600080fd5b50610256610a48565b34801561039557600080fd5b506002546102d1906001600160a01b031681565b3480156103b557600080fd5b5061023f6103c4366004611e42565b610aba565b3480156103d557600080fd5b5061023f610c33565b3480156103ea57600080fd5b5061023f6103f9366004611e5f565b610c88565b34801561040a57600080fd5b506102fa610419366004611e42565b6001600160a01b031660009081526008602052604090205490565b34801561044057600080fd5b5061023f610d31565b34801561045557600080fd5b5061023f610da5565b34801561046a57600080fd5b50600d54600e5460408051928352602083019190915201610263565b34801561049257600080fd5b5061023f610e46565b3480156104a757600080fd5b506011546102d1906001600160a01b031681565b3480156104c757600080fd5b506000546001600160a01b03166102d1565b3480156104e557600080fd5b5061023f6104f4366004611e90565b610e78565b34801561050557600080fd5b50610256610ed5565b34801561051a57600080fd5b5061028c610529366004611dd5565b610ee4565b34801561053a57600080fd5b5061023f610549366004611ead565b610f7d565b34801561055a57600080fd5b5061028c610569366004611dd5565b61109d565b34801561057a57600080fd5b506102fa6110aa565b34801561058f57600080fd5b5061023f61059e366004611e42565b6110c7565b3480156105af57600080fd5b5061023f6105be366004611e5f565b611128565b3480156105cf57600080fd5b5061023f6105de366004611ec6565b6111b3565b3480156105ef57600080fd5b5060115461028c90600160c81b900460ff1681565b34801561061057600080fd5b50610619611246565b60405161026393929190611ee8565b34801561063457600080fd5b506102fa610643366004611f1e565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561067a57600080fd5b5061023f611333565b34801561068f57600080fd5b5061023f61069e366004611e42565b6113bf565b3480156106af57600080fd5b506003546102d1906001600160a01b031681565b3480156106cf57600080fd5b5060115461028c90600160c01b900460ff1681565b6000546001600160a01b031633146107175760405162461bcd60e51b815260040161070e90611f57565b60405180910390fd5b601154600160c81b900460ff16156107715760405162461bcd60e51b815260206004820152601f60248201527f496e697469616c206c697175696469747920616c726561647920616464656400604482015260640161070e565b6006544790600090606490610787906050611fa2565b6107919190611fb9565b6001549091506001600160a01b031663f305d7198330846000806107bd6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610825573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061084a9190611fdb565b50506011805460ff60c81b1916600160c81b179055505050565b60606004805461087390612009565b80601f016020809104026020016040519081016040528092919081815260200182805461089f90612009565b80156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b5050505050905090565b60006109033384846114a9565b5060015b92915050565b6000546001600160a01b031633148061093057506011546001600160a01b031633145b61094c5760405162461bcd60e51b815260040161070e90612043565b6011805461ffff60b01b1916600160b01b179055565b600061096f8484846115cd565b6001600160a01b0384166000908152600a60209081526040808320338452909152902054828110156109f45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161070e565b610a0185338584036114a9565b506001949350505050565b336000818152600a602090815260408083206001600160a01b03871684529091528120549091610903918590610a4390869061207a565b6114a9565b60606000604051806040016040528060098152602001684e6f204c696d69747360b81b81525090506006546007541015610ab557505060408051808201909152601781527f4d6178207478206c696d69747320696e20656666656374000000000000000000602082015290565b919050565b6000546001600160a01b0316331480610add57506011546001600160a01b031633145b610af95760405162461bcd60e51b815260040161070e90612043565b6001600160a01b038116610b4f5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000604482015260640161070e565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bba919061208d565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2e91906120a6565b505050565b6000546001600160a01b0316331480610c5657506011546001600160a01b031633145b610c725760405162461bcd60e51b815260040161070e90612043565b6011805461ffff60b01b1916600160b81b179055565b6000546001600160a01b03163314610cb25760405162461bcd60e51b815260040161070e90611f57565b60018160ff1610158015610cca5750600a8160ff1611155b610d0e5760405162461bcd60e51b815260206004820152601560248201527421b0b71039b2ba10333937b69018903a379018981760591b604482015260640161070e565b60648160ff16600654610d219190611fa2565b610d2b9190611fb9565b60075550565b6000546001600160a01b03163314610d5b5760405162461bcd60e51b815260040161070e90611f57565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610dcf5760405162461bcd60e51b815260040161070e90611f57565b601154600160c01b900460ff1615610e295760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161070e565b6011805464ff000000ff60a01b191664010000000160a01b179055565b6000546001600160a01b03163314610e705760405162461bcd60e51b815260040161070e90611f57565b600654600755565b6000546001600160a01b0316331480610e9b57506011546001600160a01b031633145b610eb75760405162461bcd60e51b815260040161070e90612043565b60118054911515600160a01b0260ff60a01b19909216919091179055565b60606005805461087390612009565b336000908152600a602090815260408083206001600160a01b038616845290915281205482811015610f665760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070e565b610f7333858584036114a9565b5060019392505050565b6000546001600160a01b0316331480610fa057506011546001600160a01b031633145b610fbc5760405162461bcd60e51b815260040161070e90612043565b600181101561101d5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74207365742062656c6f7720302e303125206f6620746f74616c2060448201526639bab838363c9760c91b606482015260840161070e565b606481111561107a5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f74207365742061626f7665203125206f6620746f74616c2073757060448201526338363c9760e11b606482015260840161070e565b6127108160065461108b9190611fa2565b6110959190611fb9565b600f55601055565b60006109033384846115cd565b6000670de0b6b3a76400006007546110c29190611fb9565b905090565b6000546001600160a01b03163314806110ea57506011546001600160a01b031633145b6111065760405162461bcd60e51b815260040161070e90612043565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111525760405162461bcd60e51b815260040161070e90611f57565b8060ff1660010361116a57601e600d819055600e5550565b8060ff1660020361118257600f600d819055600e5550565b8060ff1660030361119a576001600d55600f600e5550565b8060ff16600403610225576001600d819055600e555b50565b6000546001600160a01b031633146111dd5760405162461bcd60e51b815260040161070e90611f57565b603c82111580156111ef5750603c8111155b61123b5760405162461bcd60e51b815260206004820152601d60248201527f54617865732063616e6e6f74206578636565642036302520656163682e000000604482015260640161070e565b600d91909155600e55565b601054601154606091829182908190600160a01b900460ff161561128f575060408051808201909152600e81526d20baba37b9bbb0b81034b99027a760911b60208201526112c8565b601154600160a01b900460ff166112c8575060408051808201909152600f81526e20baba37b9bbb0b81034b99027a32360891b60208201525b601154600160b01b900460ff16156112fb57604051806040016040528060018152602001604560f81b815250915061132a565b601154600160b81b900460ff161561132a57604051806040016040528060018152602001601560fa1b81525091505b94909350909150565b6000546001600160a01b031633148061135657506011546001600160a01b031633145b6113725760405162461bcd60e51b815260040161070e90612043565b604051600090339047908381818185875af1925050503d80600081146113b4576040519150601f19603f3d011682016040523d82523d6000602084013e6113b9565b606091505b50505050565b6000546001600160a01b031633146113e95760405162461bcd60e51b815260040161070e90611f57565b6001600160a01b03811661144e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661150b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070e565b6001600160a01b03821661156c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070e565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116315760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070e565b6001600160a01b0382166116935760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070e565b806116b3846001600160a01b031660009081526008602052604090205490565b10156116f45760405162461bcd60e51b815260206004820152601060248201526f115e18d95cdcda5d9948185b5bdd5b9d60821b604482015260640161070e565b30600090815260086020908152604080832054600f546001600160a01b038816855260099093529083205483928210159060ff1615801561174e57506001600160a01b03861660009081526009602052604090205460ff16155b1561182457601154600160c01b900460ff166117ac5760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f74206f70656e6564207965742e000000000000000000604482015260640161070e565b6007548511156118245760405162461bcd60e51b815260206004820152603860248201527f43616e6e6f74207472616e73666572206d6f7265207468616e2063757272656e60448201527f74206d6178207472616e736174696f6e20616d6f756e742e0000000000000000606482015260840161070e565b6001600160a01b03871660009081526009602052604090205460ff168061186357506001600160a01b03861660009081526009602052604090205460ff165b806118775750601154600160a81b900460ff165b15611918576001600160a01b038716600090815260086020526040812080548792906118a49084906120c3565b90915550506001600160a01b038616600090815260086020526040812080548792906118d190849061207a565b92505081905550856001600160a01b0316876001600160a01b031660008051602061217b8339815191528760405161190b91815260200190565b60405180910390a3611b57565b6002546001600160a01b039081169088160361198f576064600d548661193e9190611fa2565b6119489190611fb9565b935061195484866120c3565b601154909350600160a01b900460ff161561198f5780801561197f5750601154600160b81b900460ff165b1561198f5761198f600f54611b60565b6002546001600160a01b0390811690871603611a31576064600e54866119b59190611fa2565b6119bf9190611fb9565b93506119cb84866120c3565b601154909350600160a01b900460ff1615611a31578080156119f65750601154600160b01b900460ff165b15611a0b57611a06600f54611be8565b611a31565b808015611a215750601154600160b81b900460ff165b15611a3157611a31600f54611b60565b6002546001600160a01b03888116911614801590611a5d57506002546001600160a01b03878116911614155b15611a66578492505b8315611abf573060009081526008602052604081208054869290611a8b90849061207a565b909155505060405184815230906001600160a01b0389169060008051602061217b8339815191529060200160405180910390a35b6001600160a01b03871660009081526008602052604081208054879290611ae79084906120c3565b90915550506001600160a01b03861660009081526008602052604081208054859290611b1490849061207a565b92505081905550856001600160a01b0316876001600160a01b031660008051602061217b83398151915285604051611b4e91815260200190565b60405180910390a35b50505050505050565b3060009081526008602052604081208054839290611b7f9084906120c3565b90915550506011546001600160a01b031660009081526008602052604081208054839290611bae90849061207a565b90915550506011546040518281526001600160a01b0390911690309060008051602061217b8339815191529060200160405180910390a350565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611c3057611c306120d6565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cad91906120ec565b81600181518110611cc057611cc06120d6565b6001600160a01b039283166020918202929092010152600154611ce691309116846114a9565b60015460115460405163791ac94760e01b81526001600160a01b039283169263791ac94792611d2392879260009288929116904290600401612109565b600060405180830381600087803b158015611d3d57600080fd5b505af1925050508015611d4e575060015b5050506011805460ff60a81b19169055565b6000815180845260005b81811015611d8657602081850181015186830182015201611d6a565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000611db96020830184611d60565b9392505050565b6001600160a01b03811681146111b057600080fd5b60008060408385031215611de857600080fd5b8235611df381611dc0565b946020939093013593505050565b600080600060608486031215611e1657600080fd5b8335611e2181611dc0565b92506020840135611e3181611dc0565b929592945050506040919091013590565b600060208284031215611e5457600080fd5b8135611db981611dc0565b600060208284031215611e7157600080fd5b813560ff81168114611db957600080fd5b80151581146111b057600080fd5b600060208284031215611ea257600080fd5b8135611db981611e82565b600060208284031215611ebf57600080fd5b5035919050565b60008060408385031215611ed957600080fd5b50508035926020909101359150565b606081526000611efb6060830186611d60565b8281036020840152611f0d8186611d60565b915050826040830152949350505050565b60008060408385031215611f3157600080fd5b8235611f3c81611dc0565b91506020830135611f4c81611dc0565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090757610907611f8c565b600082611fd657634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215611ff057600080fd5b8351925060208401519150604084015190509250925092565b600181811c9082168061201d57607f821691505b60208210810361203d57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526019908201527f4f6e6c79206f776e657220616e64206d61726b6574696e672e00000000000000604082015260600190565b8082018082111561090757610907611f8c565b60006020828403121561209f57600080fd5b5051919050565b6000602082840312156120b857600080fd5b8151611db981611e82565b8181038181111561090757610907611f8c565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156120fe57600080fd5b8151611db981611dc0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121595784516001600160a01b031683529383019391830191600101612134565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220738757c20bf38aa43cb212a23e5e432a31329e77669e6c71fb4cee31c733cabd64736f6c63430008120033

Deployed Bytecode Sourcemap

2984:12676:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8885:385;;;;;;;;;;;;;:::i;:::-;;5591:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6317:152;;;;;;;;;;-1:-1:-1;6317:152:0;;;;;:::i;:::-;;:::i;:::-;;;1288:14:1;;1281:22;1263:41;;1251:2;1236:18;6317:152:0;1123:187:1;10878:193:0;;;;;;;;;;;;;:::i;3024:30::-;;;;;;;;;;-1:-1:-1;3024:30:0;;;;-1:-1:-1;;;;;3024:30:0;;;;;;-1:-1:-1;;;;;1494:32:1;;;1476:51;;1464:2;1449:18;3024:30:0;1315:218:1;5821:78:0;;;;;;;;;;-1:-1:-1;5884:12:0;;5821:78;;;1684:25:1;;;1672:2;1657:18;5821:78:0;1538:177:1;6477:475:0;;;;;;;;;;-1:-1:-1;6477:475:0;;;;;:::i;:::-;;:::i;5746:69::-;;;;;;;;;;-1:-1:-1;5803:9:0;;-1:-1:-1;;;5803:9:0;;;;5746:69;;2353:4:1;2341:17;;;2323:36;;2311:2;2296:18;5746:69:0;2181:184:1;6960:207:0;;;;;;;;;;-1:-1:-1;6960:207:0;;;;;:::i;:::-;;:::i;8082:315::-;;;;;;;;;;;;;:::i;3061:28::-;;;;;;;;;;-1:-1:-1;3061:28:0;;;;-1:-1:-1;;;;;3061:28:0;;;11080:369;;;;;;;;;;-1:-1:-1;11080:369:0;;;;;:::i;:::-;;:::i;10674:196::-;;;;;;;;;;;;;:::i;8405:205::-;;;;;;;;;;-1:-1:-1;8405:205:0;;;;;:::i;:::-;;:::i;5905:96::-;;;;;;;;;;-1:-1:-1;5905:96:0;;;;;:::i;:::-;-1:-1:-1;;;;;5980:18:0;5962:7;5980:18;;;:9;:18;;;;;;;5905:96;2575:150;;;;;;;;;;;;;:::i;8711:166::-;;;;;;;;;;;;;:::i;12514:116::-;;;;;;;;;;-1:-1:-1;12602:8:0;;12612:9;;12514:116;;;3278:25:1;;;3334:2;3319:18;;3312:34;;;;3251:18;12514:116:0;3104:248:1;8618:86:0;;;;;;;;;;;;;:::i;3890:75::-;;;;;;;;;;-1:-1:-1;3890:75:0;;;;-1:-1:-1;;;;;3890:75:0;;;2361:79;;;;;;;;;;-1:-1:-1;2399:7:0;2426:6;-1:-1:-1;;;;;2426:6:0;2361:79;;10016:203;;;;;;;;;;-1:-1:-1;10016:203:0;;;;;:::i;:::-;;:::i;5666:74::-;;;;;;;;;;;;;:::i;7175:405::-;;;;;;;;;;-1:-1:-1;7175:405:0;;;;;:::i;:::-;;:::i;10227:439::-;;;;;;;;;;-1:-1:-1;10227:439:0;;;;;:::i;:::-;;:::i;6009:158::-;;;;;;;;;;-1:-1:-1;6009:158:0;;;;;:::i;:::-;;:::i;7968:106::-;;;;;;;;;;;;;:::i;11711:212::-;;;;;;;;;;-1:-1:-1;11711:212:0;;;;;:::i;:::-;;:::i;9520:488::-;;;;;;;;;;-1:-1:-1;9520:488:0;;;;;:::i;:::-;;:::i;9278:234::-;;;;;;;;;;-1:-1:-1;9278:234:0;;;;;:::i;:::-;;:::i;4160:34::-;;;;;;;;;;-1:-1:-1;4160:34:0;;;;-1:-1:-1;;;4160:34:0;;;;;;11931:575;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;6175:134::-;;;;;;;;;;-1:-1:-1;6175:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;6274:18:0;;;6247:7;6274:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6175:134;11457:246;;;;;;;;;;;;;:::i;2733:244::-;;;;;;;;;;-1:-1:-1;2733:244:0;;;;;:::i;:::-;;:::i;3096:21::-;;;;;;;;;;-1:-1:-1;3096:21:0;;;;-1:-1:-1;;;;;3096:21:0;;;4122:31;;;;;;;;;;-1:-1:-1;4122:31:0;;;;-1:-1:-1;;;4122:31:0;;;;;;8885:385;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;;;;;;;;;8955:14:::1;::::0;-1:-1:-1;;;8955:14:0;::::1;;;8954:15;8946:58;;;::::0;-1:-1:-1;;;8946:58:0;;5579:2:1;8946:58:0::1;::::0;::::1;5561:21:1::0;5618:2;5598:18;;;5591:30;5657:33;5637:18;;;5630:61;5708:18;;8946:58:0::1;5377:355:1::0;8946:58:0::1;9088:12;::::0;9034:21:::1;::::0;9015:16:::1;::::0;9108:3:::1;::::0;9088:17:::1;::::0;9103:2:::1;9088:17;:::i;:::-;:23;;;;:::i;:::-;9122:15;::::0;9066:45;;-1:-1:-1;;;;;;9122:15:0::1;:31;9161:8:::0;9179:4:::1;9066:45:::0;9122:15:::1;::::0;9205:7:::1;2399::::0;2426:6;-1:-1:-1;;;;;2426:6:0;;2361:79;9205:7:::1;9122:108;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9122:108:0;;;-1:-1:-1;;;;;6623:15:1;;;9122:108:0::1;::::0;::::1;6605:34:1::0;6655:18;;;6648:34;;;;6698:18;;;6691:34;;;;6741:18;;;6734:34;6805:15;;;6784:19;;;6777:44;9214:15:0::1;6837:19:1::0;;;6830:35;6539:19;;9122:108:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9241:14:0::1;:21:::0;;-1:-1:-1;;;;9241:21:0::1;-1:-1:-1::0;;;9241:21:0::1;::::0;;-1:-1:-1;;;8885:385:0:o;5591:69::-;5628:13;5652:5;5645:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5591:69;:::o;6317:152::-;6383:4;6400:39;1773:10;6423:7;6432:6;6400:8;:39::i;:::-;-1:-1:-1;6457:4:0;6317:152;;;;;:::o;10878:193::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;10922:10;:21;;:54;;-1:-1:-1;10961:15:0;;-1:-1:-1;;;;;10961:15:0;10947:10;:29;10922:54;10914:92;;;;-1:-1:-1;;;10914:92:0;;;;;;;:::i;:::-;11017:10;:17;;-1:-1:-1;;;;11045:18:0;-1:-1:-1;;;11045:18:0;;;10878:193::o;6477:475::-;6600:4;6617:36;6627:6;6635:9;6646:6;6617:9;:36::i;:::-;-1:-1:-1;;;;;6693:19:0;;6666:24;6693:19;;;:11;:19;;;;;;;;1773:10;6693:33;;;;;;;;6745:26;;;;6737:79;;;;-1:-1:-1;;;6737:79:0;;8128:2:1;6737:79:0;;;8110:21:1;8167:2;8147:18;;;8140:30;8206:34;8186:18;;;8179:62;-1:-1:-1;;;8257:18:1;;;8250:38;8305:19;;6737:79:0;7926:404:1;6737:79:0;6852:57;6861:6;1773:10;6902:6;6883:16;:25;6852:8;:57::i;:::-;-1:-1:-1;6940:4:0;;6477:475;-1:-1:-1;;;;6477:475:0:o;6960:207::-;1773:10;7040:4;7089:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7089:34:0;;;;;;;;;;7040:4;;7057:80;;7080:7;;7089:47;;7126:10;;7089:47;:::i;:::-;7057:8;:80::i;8082:315::-;8125:13;8151:27;:41;;;;;;;;;;;;;-1:-1:-1;;;8151:41:0;;;;;8220:12;;8206:11;;:26;8203:187;;;-1:-1:-1;;8249:41:0;;;;;;;;;;;;;;;;;;8082:315::o;8203:187::-;8365:13;8082:315;-1:-1:-1;8082:315:0:o;11080:369::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;11146:10;:21;;:54;;-1:-1:-1;11185:15:0;;-1:-1:-1;;;;;11185:15:0;11171:10;:29;11146:54;11138:92;;;;-1:-1:-1;;;11138:92:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11249:20:0;;11241:59;;;;-1:-1:-1;;;11241:59:0;;8667:2:1;11241:59:0;;;8649:21:1;8706:2;8686:18;;;8679:30;8745:28;8725:18;;;8718:56;8791:18;;11241:59:0;8465:350:1;11241:59:0;11338:39;;-1:-1:-1;;;11338:39:0;;11371:4;11338:39;;;1476:51:1;11311:24:0;;-1:-1:-1;;;;;11338:24:0;;;;;1449:18:1;;11338:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11388:53;;-1:-1:-1;;;11388:53:0;;11412:10;11388:53;;;9183:51:1;9250:18;;;9243:34;;;11311:66:0;;-1:-1:-1;;;;;;11388:23:0;;;;;9156:18:1;;11388:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11127:322;11080:369;:::o;10674:196::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;10721:10;:21;;:54;;-1:-1:-1;10760:15:0;;-1:-1:-1;;;;;10760:15:0;10746:10;:29;10721:54;10713:92;;;;-1:-1:-1;;;10713:92:0;;;;;;;:::i;:::-;10816:10;:17;;-1:-1:-1;;;;10844:18:0;-1:-1:-1;;;10844:18:0;;;10674:196::o;8405:205::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;8495:1:::1;8479:12;:17;;;;:39;;;;;8516:2;8500:12;:18;;;;8479:39;8471:73;;;::::0;-1:-1:-1;;;8471:73:0;;9740:2:1;8471:73:0::1;::::0;::::1;9722:21:1::0;9779:2;9759:18;;;9752:30;-1:-1:-1;;;9798:18:1;;;9791:51;9859:18;;8471:73:0::1;9538:345:1::0;8471:73:0::1;8599:3;8584:12;8569:27;;:12;;:27;;;;:::i;:::-;:33;;;;:::i;:::-;8555:11;:47:::0;-1:-1:-1;8405:205:0:o;2575:150::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;2684:1:::1;2668:6:::0;;2647:40:::1;::::0;-1:-1:-1;;;;;2668:6:0;;::::1;::::0;2647:40:::1;::::0;2684:1;;2647:40:::1;2715:1;2698:19:::0;;-1:-1:-1;;;;;;2698:19:0::1;::::0;;2575:150::o;8711:166::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;8771:11:::1;::::0;-1:-1:-1;;;8771:11:0;::::1;;;8770:12;8762:47;;;::::0;-1:-1:-1;;;8762:47:0;;10090:2:1;8762:47:0::1;::::0;::::1;10072:21:1::0;10129:2;10109:18;;;10102:30;10168:25;10148:18;;;10141:53;10211:18;;8762:47:0::1;9888:347:1::0;8762:47:0::1;8820:11;:18:::0;;-1:-1:-1;;;;8849:20:0;-1:-1:-1;;;8849:20:0;;;8711:166::o;8618:86::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;8684:12:::1;::::0;8670:11:::1;:26:::0;8618:86::o;10016:203::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;10085:10;:21;;:54;;-1:-1:-1;10124:15:0;;-1:-1:-1;;;;;10124:15:0;10110:10;:29;10085:54;10077:92;;;;-1:-1:-1;;;10077:92:0;;;;;;;:::i;:::-;10180:13;:31;;;;;-1:-1:-1;;;10180:31:0;-1:-1:-1;;;;10180:31:0;;;;;;;;;10016:203::o;5666:74::-;5706:13;5730:7;5723:14;;;;;:::i;7175:405::-;1773:10;7260:4;7304:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7304:34:0;;;;;;;;;;7357:35;;;;7349:85;;;;-1:-1:-1;;;7349:85:0;;10442:2:1;7349:85:0;;;10424:21:1;10481:2;10461:18;;;10454:30;10520:34;10500:18;;;10493:62;-1:-1:-1;;;10571:18:1;;;10564:35;10616:19;;7349:85:0;10240:401:1;7349:85:0;7470:67;1773:10;7493:7;7521:15;7502:16;:34;7470:8;:67::i;:::-;-1:-1:-1;7568:4:0;;7175:405;-1:-1:-1;;;7175:405:0:o;10227:439::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;10302:10;:21;;:54;;-1:-1:-1;10341:15:0;;-1:-1:-1;;;;;10341:15:0;10327:10;:29;10302:54;10294:92;;;;-1:-1:-1;;;10294:92:0;;;;;;;:::i;:::-;10422:1;10405:13;:18;;10397:70;;;;-1:-1:-1;;;10397:70:0;;10848:2:1;10397:70:0;;;10830:21:1;10887:2;10867:18;;;10860:30;10926:34;10906:18;;;10899:62;-1:-1:-1;;;10977:18:1;;;10970:37;11024:19;;10397:70:0;10646:403:1;10397:70:0;10503:3;10486:13;:20;;10478:69;;;;-1:-1:-1;;;10478:69:0;;11256:2:1;10478:69:0;;;11238:21:1;11295:2;11275:18;;;11268:30;11334:34;11314:18;;;11307:62;-1:-1:-1;;;11385:18:1;;;11378:34;11429:19;;10478:69:0;11054:400:1;10478:69:0;10610:5;10594:13;10579:12;;:28;;;;:::i;:::-;:36;;;;:::i;:::-;10558:18;:57;10626:16;:32;10227:439::o;6009:158::-;6078:4;6095:42;1773:10;6119:9;6130:6;6095:9;:42::i;7968:106::-;8021:7;8062:4;8048:11;;:18;;;;:::i;:::-;8041:25;;7968:106;:::o;11711:212::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;11790:10;:21;;:54;;-1:-1:-1;11829:15:0;;-1:-1:-1;;;;;11829:15:0;11815:10;:29;11790:54;11782:92;;;;-1:-1:-1;;;11782:92:0;;;;;;;:::i;:::-;11885:15;:30;;-1:-1:-1;;;;;;11885:30:0;-1:-1:-1;;;;;11885:30:0;;;;;;;;;;11711:212::o;9520:488::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;9588:11:::1;:16;;9603:1;9588:16:::0;9585:416:::1;;9632:2;9621:8;:13:::0;;;9649:9:::1;:14:::0;9520:488;:::o;9585:416::-:1;9684:11;:16;;9699:1;9684:16:::0;9681:320:::1;;9728:2;9717:8;:13:::0;;;9745:9:::1;:14:::0;9520:488;:::o;9681:320::-:1;9780:11;:16;;9795:1;9780:16:::0;9777:224:::1;;9824:1;9813:8;:12:::0;9852:2:::1;9840:9;:14:::0;9520:488;:::o;9777:224::-:1;9875:11;:16;;9890:1;9875:16:::0;9872:129:::1;;9919:1;9908:8;:12:::0;;;9935:9:::1;:13:::0;9872:129:::1;9520:488:::0;:::o;9278:234::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;9384:2:::1;9371:9;:15;;:35;;;;;9404:2;9390:10;:16;;9371:35;9363:77;;;::::0;-1:-1:-1;;;9363:77:0;;11661:2:1;9363:77:0::1;::::0;::::1;11643:21:1::0;11700:2;11680:18;;;11673:30;11739:31;11719:18;;;11712:59;11788:18;;9363:77:0::1;11459:353:1::0;9363:77:0::1;9451:8;:20:::0;;;;9482:9:::1;:22:::0;9278:234::o;11931:575::-;12127:16;;12159:13;;11979;;;;;;;;-1:-1:-1;;;12159:13:0;;;;12156:158;;;-1:-1:-1;12189:30:0;;;;;;;;;;;;-1:-1:-1;;;12189:30:0;;;;12156:158;;;12241:13;;-1:-1:-1;;;12241:13:0;;;;12237:77;;-1:-1:-1;12271:31:0;;;;;;;;;;;;-1:-1:-1;;;12271:31:0;;;;12237:77;12329:10;;-1:-1:-1;;;12329:10:0;;;;12326:116;;;12356:13;;;;;;;;;;;;;-1:-1:-1;;;12356:13:0;;;;;12326:116;;;12390:10;;-1:-1:-1;;;12390:10:0;;;;12387:55;;;12417:13;;;;;;;;;;;;;-1:-1:-1;;;12417:13:0;;;;;12387:55;12462:11;12475:7;;-1:-1:-1;11931:575:0;;-1:-1:-1;11931:575:0:o;11457:246::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;11506:10;:21;;:54;;-1:-1:-1;11545:15:0;;-1:-1:-1;;;;;11545:15:0;11531:10;:29;11506:54;11498:92;;;;-1:-1:-1;;;11498:92:0;;;;;;;:::i;:::-;11637:58;;11601:12;;11645:10;;11669:21;;11601:12;11637:58;11601:12;11637:58;11669:21;11645:10;11637:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;11457:246:0:o;2733:244::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2822:22:0;::::1;2814:73;;;::::0;-1:-1:-1;;;2814:73:0;;12229:2:1;2814:73:0::1;::::0;::::1;12211:21:1::0;12268:2;12248:18;;;12241:30;12307:34;12287:18;;;12280:62;-1:-1:-1;;;12358:18:1;;;12351:36;12404:19;;2814:73:0::1;12027:402:1::0;2814:73:0::1;2924:6;::::0;;2903:38:::1;::::0;-1:-1:-1;;;;;2903:38:0;;::::1;::::0;2924:6;::::1;::::0;2903:38:::1;::::0;::::1;2952:6;:17:::0;;-1:-1:-1;;;;;;2952:17:0::1;-1:-1:-1::0;;;;;2952:17:0;;;::::1;::::0;;;::::1;::::0;;2733:244::o;7588:372::-;-1:-1:-1;;;;;7716:19:0;;7708:68;;;;-1:-1:-1;;;7708:68:0;;12636:2:1;7708:68:0;;;12618:21:1;12675:2;12655:18;;;12648:30;12714:34;12694:18;;;12687:62;-1:-1:-1;;;12765:18:1;;;12758:34;12809:19;;7708:68:0;12434:400:1;7708:68:0;-1:-1:-1;;;;;7795:21:0;;7787:68;;;;-1:-1:-1;;;7787:68:0;;13041:2:1;7787:68:0;;;13023:21:1;13080:2;13060:18;;;13053:30;13119:34;13099:18;;;13092:62;-1:-1:-1;;;13170:18:1;;;13163:32;13212:19;;7787:68:0;12839:398:1;7787:68:0;-1:-1:-1;;;;;7868:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7920:32;;1684:25:1;;;7920:32:0;;1657:18:1;7920:32:0;;;;;;;7588:372;;;:::o;12868:2307::-;-1:-1:-1;;;;;12957:18:0;;12949:68;;;;-1:-1:-1;;;12949:68:0;;13444:2:1;12949:68:0;;;13426:21:1;13483:2;13463:18;;;13456:30;13522:34;13502:18;;;13495:62;-1:-1:-1;;;13573:18:1;;;13566:35;13618:19;;12949:68:0;13242:401:1;12949:68:0;-1:-1:-1;;;;;13036:16:0;;13028:64;;;;-1:-1:-1;;;13028:64:0;;13850:2:1;13028:64:0;;;13832:21:1;13889:2;13869:18;;;13862:30;13928:34;13908:18;;;13901:62;-1:-1:-1;;;13979:18:1;;;13972:33;14022:19;;13028:64:0;13648:399:1;13028:64:0;13130:6;13111:15;13121:4;-1:-1:-1;;;;;5980:18:0;5962:7;5980:18;;;:9;:18;;;;;;;5905:96;13111:15;:25;;13103:54;;;;-1:-1:-1;;;13103:54:0;;14254:2:1;13103:54:0;;;14236:21:1;14293:2;14273:18;;;14266:30;-1:-1:-1;;;14312:18:1;;;14305:46;14368:18;;13103:54:0;14052:340:1;13103:54:0;13276:4;13170:12;5980:18;;;:9;:18;;;;;;;;;13330;;-1:-1:-1;;;;;13365:25:0;;;;:19;:25;;;;;;;13170:12;;13310:38;;;;13365:25;;13364:26;:54;;;;-1:-1:-1;;;;;;13395:23:0;;;;;;:19;:23;;;;;;;;13394:24;13364:54;13361:238;;;13443:11;;-1:-1:-1;;;13443:11:0;;;;13435:47;;;;-1:-1:-1;;;13435:47:0;;14599:2:1;13435:47:0;;;14581:21:1;14638:2;14618:18;;;14611:30;14677:25;14657:18;;;14650:53;14720:18;;13435:47:0;14397:347:1;13435:47:0;13515:11;;13505:6;:21;;13497:90;;;;-1:-1:-1;;;13497:90:0;;14951:2:1;13497:90:0;;;14933:21:1;14990:2;14970:18;;;14963:30;15029:34;15009:18;;;15002:62;15100:26;15080:18;;;15073:54;15144:19;;13497:90:0;14749:420:1;13497:90:0;-1:-1:-1;;;;;13614:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;13643:23:0;;;;;;:19;:23;;;;;;;;13614:52;:72;;;-1:-1:-1;13670:16:0;;-1:-1:-1;;;13670:16:0;;;;13614:72;13611:1548;;;-1:-1:-1;;;;;13703:15:0;;;;;;:9;:15;;;;;:25;;13722:6;;13703:15;:25;;13722:6;;13703:25;:::i;:::-;;;;-1:-1:-1;;;;;;;13743:13:0;;;;;;:9;:13;;;;;:23;;13760:6;;13743:13;:23;;13760:6;;13743:23;:::i;:::-;;;;;;;;13801:2;-1:-1:-1;;;;;13786:26:0;13795:4;-1:-1:-1;;;;;13786:26:0;-1:-1:-1;;;;;;;;;;;13805:6:0;13786:26;;;;1684:25:1;;1672:2;1657:18;;1538:177;13786:26:0;;;;;;;;13611:1548;;;13858:13;;-1:-1:-1;;;;;13858:13:0;;;13850:21;;;;13847:333;;13919:3;13908:8;;13899:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;13892:30;-1:-1:-1;13963:13:0;13892:30;13963:6;:13;:::i;:::-;13998;;13941:35;;-1:-1:-1;;;;13998:13:0;;;;13995:170;;;14039:9;:23;;;;-1:-1:-1;14052:10:0;;-1:-1:-1;;;14052:10:0;;;;14039:23;14036:110;;;14091:31;14103:18;;14091:11;:31::i;:::-;14205:13;;-1:-1:-1;;;;;14205:13:0;;;14199:19;;;;14196:517;;14267:3;14255:9;;14246:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;14239:31;-1:-1:-1;14311:13:0;14239:31;14311:6;:13;:::i;:::-;14410;;14289:35;;-1:-1:-1;;;;14410:13:0;;;;14407:291;;;14451:9;:23;;;;-1:-1:-1;14464:10:0;;-1:-1:-1;;;14464:10:0;;;;14451:23;14448:231;;;14503:36;14520:18;;14503:16;:36::i;:::-;14448:231;;;14572:9;:23;;;;-1:-1:-1;14585:10:0;;-1:-1:-1;;;14585:10:0;;;;14572:23;14569:110;;;14624:31;14636:18;;14624:11;:31::i;:::-;14740:13;;-1:-1:-1;;;;;14732:21:0;;;14740:13;;14732:21;;;;:44;;-1:-1:-1;14763:13:0;;-1:-1:-1;;;;;14757:19:0;;;14763:13;;14757:19;;14732:44;14729:112;;;14819:6;14797:28;;14729:112;14860:8;;14857:139;;14907:4;14889:24;;;;:9;:24;;;;;:32;;14917:4;;14889:24;:32;;14917:4;;14889:32;:::i;:::-;;;;-1:-1:-1;;14945:35:0;;1684:25:1;;;14968:4:0;;-1:-1:-1;;;;;14945:35:0;;;-1:-1:-1;;;;;;;;;;;14945:35:0;1672:2:1;1657:18;14945:35:0;;;;;;;14857:139;-1:-1:-1;;;;;15012:15:0;;;;;;:9;:15;;;;;:25;;15031:6;;15012:15;:25;;15031:6;;15012:25;:::i;:::-;;;;-1:-1:-1;;;;;;;15052:13:0;;;;;;:9;:13;;;;;:36;;15069:19;;15052:13;:36;;15069:19;;15052:36;:::i;:::-;;;;;;;;15123:2;-1:-1:-1;;;;;15108:39:0;15117:4;-1:-1:-1;;;;;15108:39:0;-1:-1:-1;;;;;;;;;;;15127:19:0;15108:39;;;;1684:25:1;;1672:2;1657:18;;1538:177;15108:39:0;;;;;;;;13611:1548;12938:2237;;;;12868:2307;;;:::o;12638:222::-;12716:4;12698:24;;;;:9;:24;;;;;:37;;12726:9;;12698:24;:37;;12726:9;;12698:37;:::i;:::-;;;;-1:-1:-1;;12756:15:0;;-1:-1:-1;;;;;12756:15:0;12746:26;;;;:9;:26;;;;;:39;;12776:9;;12746:26;:39;;12776:9;;12746:39;:::i;:::-;;;;-1:-1:-1;;12825:15:0;;12801:51;;1684:25:1;;;-1:-1:-1;;;;;12825:15:0;;;;12818:4;;-1:-1:-1;;;;;;;;;;;12801:51:0;1672:2:1;1657:18;12801:51:0;;;;;;;12638:222;:::o;15183:472::-;5470:16;:23;;-1:-1:-1;;;;5470:23:0;-1:-1:-1;;;5470:23:0;;;15285:16:::1;::::0;;15299:1:::1;15285:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15285:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15285:16:0::1;15261:40;;15330:4;15312;15317:1;15312:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15312:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15356:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15356:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15312:7;;15356:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15346:4;15351:1;15346:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15346:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15421:15:::1;::::0;15389:62:::1;::::0;15406:4:::1;::::0;15421:15:::1;15439:11:::0;15389:8:::1;:62::i;:::-;15514:15;::::0;15603::::1;::::0;15514:122:::1;::::0;-1:-1:-1;;;15514:122:0;;-1:-1:-1;;;;;15514:15:0;;::::1;::::0;:66:::1;::::0;:122:::1;::::0;15581:11;;15514:15:::1;::::0;15597:4;;15603:15;::::1;::::0;15620::::1;::::0;15514:122:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;15510:138:::0;-1:-1:-1;;5516:16:0;:24;;-1:-1:-1;;;;5516:24:0;;;15183:472::o;14:423:1:-;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;160:3;363:1;356:4;347:6;342:3;338:16;334:27;327:38;426:4;419:2;415:7;410:2;402:6;398:15;394:29;389:3;385:39;381:50;374:57;;;14:423;;;;:::o;442:220::-;591:2;580:9;573:21;554:4;611:45;652:2;641:9;637:18;629:6;611:45;:::i;:::-;603:53;442:220;-1:-1:-1;;;442:220:1:o;667:131::-;-1:-1:-1;;;;;742:31:1;;732:42;;722:70;;788:1;785;778:12;803:315;871:6;879;932:2;920:9;911:7;907:23;903:32;900:52;;;948:1;945;938:12;900:52;987:9;974:23;1006:31;1031:5;1006:31;:::i;:::-;1056:5;1108:2;1093:18;;;;1080:32;;-1:-1:-1;;;803:315:1:o;1720:456::-;1797:6;1805;1813;1866:2;1854:9;1845:7;1841:23;1837:32;1834:52;;;1882:1;1879;1872:12;1834:52;1921:9;1908:23;1940:31;1965:5;1940:31;:::i;:::-;1990:5;-1:-1:-1;2047:2:1;2032:18;;2019:32;2060:33;2019:32;2060:33;:::i;:::-;1720:456;;2112:7;;-1:-1:-1;;;2166:2:1;2151:18;;;;2138:32;;1720:456::o;2578:247::-;2637:6;2690:2;2678:9;2669:7;2665:23;2661:32;2658:52;;;2706:1;2703;2696:12;2658:52;2745:9;2732:23;2764:31;2789:5;2764:31;:::i;2830:269::-;2887:6;2940:2;2928:9;2919:7;2915:23;2911:32;2908:52;;;2956:1;2953;2946:12;2908:52;2995:9;2982:23;3045:4;3038:5;3034:16;3027:5;3024:27;3014:55;;3065:1;3062;3055:12;3357:118;3443:5;3436:13;3429:21;3422:5;3419:32;3409:60;;3465:1;3462;3455:12;3480:241;3536:6;3589:2;3577:9;3568:7;3564:23;3560:32;3557:52;;;3605:1;3602;3595:12;3557:52;3644:9;3631:23;3663:28;3685:5;3663:28;:::i;3726:180::-;3785:6;3838:2;3826:9;3817:7;3813:23;3809:32;3806:52;;;3854:1;3851;3844:12;3806:52;-1:-1:-1;3877:23:1;;3726:180;-1:-1:-1;3726:180:1:o;3911:248::-;3979:6;3987;4040:2;4028:9;4019:7;4015:23;4011:32;4008:52;;;4056:1;4053;4046:12;4008:52;-1:-1:-1;;4079:23:1;;;4149:2;4134:18;;;4121:32;;-1:-1:-1;3911:248:1:o;4164:454::-;4389:2;4378:9;4371:21;4352:4;4415:45;4456:2;4445:9;4441:18;4433:6;4415:45;:::i;:::-;4508:9;4500:6;4496:22;4491:2;4480:9;4476:18;4469:50;4536:33;4562:6;4554;4536:33;:::i;:::-;4528:41;;;4605:6;4600:2;4589:9;4585:18;4578:34;4164:454;;;;;;:::o;4623:388::-;4691:6;4699;4752:2;4740:9;4731:7;4727:23;4723:32;4720:52;;;4768:1;4765;4758:12;4720:52;4807:9;4794:23;4826:31;4851:5;4826:31;:::i;:::-;4876:5;-1:-1:-1;4933:2:1;4918:18;;4905:32;4946:33;4905:32;4946:33;:::i;:::-;4998:7;4988:17;;;4623:388;;;;;:::o;5016:356::-;5218:2;5200:21;;;5237:18;;;5230:30;5296:34;5291:2;5276:18;;5269:62;5363:2;5348:18;;5016:356::o;5737:127::-;5798:10;5793:3;5789:20;5786:1;5779:31;5829:4;5826:1;5819:15;5853:4;5850:1;5843:15;5869:168;5942:9;;;5973;;5990:15;;;5984:22;;5970:37;5960:71;;6011:18;;:::i;6042:217::-;6082:1;6108;6098:132;;6152:10;6147:3;6143:20;6140:1;6133:31;6187:4;6184:1;6177:15;6215:4;6212:1;6205:15;6098:132;-1:-1:-1;6244:9:1;;6042:217::o;6876:306::-;6964:6;6972;6980;7033:2;7021:9;7012:7;7008:23;7004:32;7001:52;;;7049:1;7046;7039:12;7001:52;7078:9;7072:16;7062:26;;7128:2;7117:9;7113:18;7107:25;7097:35;;7172:2;7161:9;7157:18;7151:25;7141:35;;6876:306;;;;;:::o;7187:380::-;7266:1;7262:12;;;;7309;;;7330:61;;7384:4;7376:6;7372:17;7362:27;;7330:61;7437:2;7429:6;7426:14;7406:18;7403:38;7400:161;;7483:10;7478:3;7474:20;7471:1;7464:31;7518:4;7515:1;7508:15;7546:4;7543:1;7536:15;7400:161;;7187:380;;;:::o;7572:349::-;7774:2;7756:21;;;7813:2;7793:18;;;7786:30;7852:27;7847:2;7832:18;;7825:55;7912:2;7897:18;;7572:349::o;8335:125::-;8400:9;;;8421:10;;;8418:36;;;8434:18;;:::i;8820:184::-;8890:6;8943:2;8931:9;8922:7;8918:23;8914:32;8911:52;;;8959:1;8956;8949:12;8911:52;-1:-1:-1;8982:16:1;;8820:184;-1:-1:-1;8820:184:1:o;9288:245::-;9355:6;9408:2;9396:9;9387:7;9383:23;9379:32;9376:52;;;9424:1;9421;9414:12;9376:52;9456:9;9450:16;9475:28;9497:5;9475:28;:::i;15174:128::-;15241:9;;;15262:11;;;15259:37;;;15276:18;;:::i;15439:127::-;15500:10;15495:3;15491:20;15488:1;15481:31;15531:4;15528:1;15521:15;15555:4;15552:1;15545:15;15571:251;15641:6;15694:2;15682:9;15673:7;15669:23;15665:32;15662:52;;;15710:1;15707;15700:12;15662:52;15742:9;15736:16;15761:31;15786:5;15761:31;:::i;15827:980::-;16089:4;16137:3;16126:9;16122:19;16168:6;16157:9;16150:25;16194:2;16232:6;16227:2;16216:9;16212:18;16205:34;16275:3;16270:2;16259:9;16255:18;16248:31;16299:6;16334;16328:13;16365:6;16357;16350:22;16403:3;16392:9;16388:19;16381:26;;16442:2;16434:6;16430:15;16416:29;;16463:1;16473:195;16487:6;16484:1;16481:13;16473:195;;;16552:13;;-1:-1:-1;;;;;16548:39:1;16536:52;;16643:15;;;;16608:12;;;;16584:1;16502:9;16473:195;;;-1:-1:-1;;;;;;;16724:32:1;;;;16719:2;16704:18;;16697:60;-1:-1:-1;;;16788:3:1;16773:19;16766:35;16685:3;15827:980;-1:-1:-1;;;15827:980:1:o

Swarm Source

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