ETH Price: $2,544.08 (-0.00%)

Token

Doppelganger (Mirror)
 

Overview

Max Total Supply

10,000,000 Mirror

Holders

6

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
92,999.07 Mirror

Value
$0.00
0xa2254Ad801A1436Fb47e256a91c22EAD087CE577
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:
Doppelganger

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-27
*/

// SPDX-License-Identifier: UNLICENSED
/**
    I have seen several 0 tax tokens launched in the past.
    Most of them have mediums and none of them have worked on the tokens.
    The issue with 0 tax token is that early buyers cant hold for long term.
    Hence, i have created a token with auto reduced tax. The first 10 minutes will be taxed and after will be 0.
    Will dev hold 40-50% supply? No. you can check it with your program / channel you have.
    However, a max wallet will be reserved for the marketing.

    Strategy will be used to shake off bots. So don't be panicked if it happens.
    Lock will be obviously extended at these 2 marketcap.
    -50k mcap 
    -150k mcap = 99999999 years

    Feel free to check the code. Once it's renounced, it is 100% safe

    Please keep your slippage low.
**/

pragma solidity 0.8.16;

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        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;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract Doppelganger is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 10_000_000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _initialTax;
    uint256 private _finalTax;
    uint256 private _reduceTaxCountdown;
    address payable private _feeAddrWallet;

    string private constant _name = "Doppelganger";
    string private constant _symbol = "Mirror";


    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 200_000 * 10**_decimals;
    uint256 private _maxWalletSize = 400_000 * 10**_decimals;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _initialTax=7;
        _finalTax=0;
        _reduceTaxCountdown=10;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, 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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

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


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0 && _reduceTaxCountdown<30) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

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


    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000303565b6200002190629896806200031b565b6200002f906000196200033d565b6200003d9060001962000360565b6008556011805462ffffff60a81b191690556200005d6012600a62000303565b6200006c9062030d406200031b565b6012556012600a6200007f919062000303565b6200008e9062061a806200031b565b6013553480156200009e57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600f80546001600160a01b03191633908117909155600854600091825260026020526040822055600190600590620001206000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600f5490911683529082208054909316179091556007600c55600d55600a600e556200018e3390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001c86012600a62000303565b620001d790629896806200031b565b60405190815260200160405180910390a362000376565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000245578160001904821115620002295762000229620001ee565b808516156200023757918102915b93841c939080029062000209565b509250929050565b6000826200025e57506001620002fd565b816200026d57506000620002fd565b81600181146200028657600281146200029157620002b1565b6001915050620002fd565b60ff841115620002a557620002a5620001ee565b50506001821b620002fd565b5060208310610133831016604e8410600b8410161715620002d6575081810a620002fd565b620002e2838362000204565b8060001904821115620002f957620002f9620001ee565b0290505b92915050565b60006200031460ff8416836200024d565b9392505050565b6000816000190483118215151615620003385762000338620001ee565b500290565b6000826200035b57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620002fd57620002fd620001ee565b61195380620003866000396000f3fe6080604052600436106100f75760003560e01c8063715018a61161008a578063a9059cbb11610059578063a9059cbb146102b1578063c3c8cd80146102d1578063c9567bf9146102e6578063dd62ed3e146102fb57600080fd5b8063715018a614610230578063751039fc146102455780638da5cb5b1461025a57806395d89b411461028257600080fd5b8063313ce567116100c6578063313ce567146101bd5780635932ead1146101d95780636fc3eaec146101fb57806370a082311461021057600080fd5b806306fdde0314610103578063095ea7b31461014a57806318160ddd1461017a57806323b872dd1461019d57600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5060408051808201909152600c81526b2237b83832b633b0b733b2b960a11b60208201525b60405161014191906114f9565b60405180910390f35b34801561015657600080fd5b5061016a61016536600461155c565b610341565b6040519015158152602001610141565b34801561018657600080fd5b5061018f610358565b604051908152602001610141565b3480156101a957600080fd5b5061016a6101b8366004611588565b610378565b3480156101c957600080fd5b5060405160128152602001610141565b3480156101e557600080fd5b506101f96101f43660046115d7565b6103e1565b005b34801561020757600080fd5b506101f9610432565b34801561021c57600080fd5b5061018f61022b3660046115f4565b61045f565b34801561023c57600080fd5b506101f9610481565b34801561025157600080fd5b506101f96104f5565b34801561026657600080fd5b506000546040516001600160a01b039091168152602001610141565b34801561028e57600080fd5b5060408051808201909152600681526526b4b93937b960d11b6020820152610134565b3480156102bd57600080fd5b5061016a6102cc36600461155c565b61055a565b3480156102dd57600080fd5b506101f9610567565b3480156102f257600080fd5b506101f961059d565b34801561030757600080fd5b5061018f610316366004611611565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600061034e338484610917565b5060015b92915050565b60006103666012600a611744565b6103739062989680611753565b905090565b6000610385848484610a3b565b6103d784336103d2856040518060600160405280602881526020016118f6602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610de0565b610917565b5060019392505050565b6000546001600160a01b031633146104145760405162461bcd60e51b815260040161040b90611772565b60405180910390fd5b60118054911515600160b81b0260ff60b81b19909216919091179055565b600f546001600160a01b0316336001600160a01b03161461045257600080fd5b4761045c81610e1a565b50565b6001600160a01b03811660009081526002602052604081205461035290610e54565b6000546001600160a01b031633146104ab5760405162461bcd60e51b815260040161040b90611772565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461051f5760405162461bcd60e51b815260040161040b90611772565b61052b6012600a611744565b6105389062989680611753565b601290815561054890600a611744565b6105559062989680611753565b601355565b600061034e338484610a3b565b600f546001600160a01b0316336001600160a01b03161461058757600080fd5b60006105923061045f565b905061045c81610ed8565b6000546001600160a01b031633146105c75760405162461bcd60e51b815260040161040b90611772565b601154600160a01b900460ff16156106215760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161040b565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610668308261065b6012600a611744565b6103d29062989680611753565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ca91906117a7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073b91906117a7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610788573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ac91906117a7565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d71947306107dc8161045f565b6000806107f16000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610859573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061087e91906117c4565b50506011805463ffff00ff60a01b198116630101000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156108ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091391906117f2565b5050565b6001600160a01b0383166109795760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161040b565b6001600160a01b0382166109da5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161040b565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a9f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161040b565b6001600160a01b038216610b015760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161040b565b60008111610b635760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161040b565b6000546001600160a01b03848116911614801590610b8f57506000546001600160a01b03838116911614155b15610dc5576001600160a01b03831660009081526006602052604090205460ff16158015610bd657506001600160a01b03821660009081526006602052604090205460ff16155b610bdf57600080fd5b6000600a55600e5415610bf457600c54610bf8565b600d545b600b556011546001600160a01b038481169116148015610c2657506010546001600160a01b03838116911614155b8015610c4b57506001600160a01b03821660009081526005602052604090205460ff16155b8015610c605750601154600160b81b900460ff165b15610d3a57601254811115610cb75760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161040b565b60135481610cc48461045f565b610cce919061180f565b1115610d1c5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161040b565b600e5415610d3a57600e8054906000610d3483611822565b91905055505b6000610d453061045f565b601154909150600160a81b900460ff16158015610d7057506011546001600160a01b03858116911614155b8015610d855750601154600160b01b900460ff165b8015610d915750600081115b8015610d9f5750601e600e54105b15610dbf57610dad81610ed8565b478015610dbd57610dbd47610e1a565b505b50610dd0565b6000600a819055600b555b610ddb838383611052565b505050565b60008184841115610e045760405162461bcd60e51b815260040161040b91906114f9565b506000610e118486611839565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610913573d6000803e3d6000fd5b6000600854821115610ebb5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161040b565b6000610ec561105d565b9050610ed18382611080565b9392505050565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f2057610f2061184c565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9d91906117a7565b81600181518110610fb057610fb061184c565b6001600160a01b039283166020918202929092010152601054610fd69130911684610917565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061100f908590600090869030904290600401611862565b600060405180830381600087803b15801561102957600080fd5b505af115801561103d573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b610ddb8383836110c2565b600080600061106a6111b9565b90925090506110798282611080565b9250505090565b6000610ed183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611238565b6000806000806000806110d487611266565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061110690876112c3565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546111359086611305565b6001600160a01b03891660009081526002602052604090205561115781611364565b61116184836113ae565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516111a691815260200190565b60405180910390a3505050505050505050565b6008546000908190816111ce6012600a611744565b6111db9062989680611753565b90506112026111ec6012600a611744565b6111f99062989680611753565b60085490611080565b82101561122f576008546112186012600a611744565b6112259062989680611753565b9350935050509091565b90939092509050565b600081836112595760405162461bcd60e51b815260040161040b91906114f9565b506000610e1184866118d3565b60008060008060008060008060006112838a600a54600b546113d2565b925092509250600061129361105d565b905060008060006112a68e878787611427565b919e509c509a509598509396509194505050505091939550919395565b6000610ed183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610de0565b600080611312838561180f565b905083811015610ed15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161040b565b600061136e61105d565b9050600061137c8383611477565b306000908152600260205260409020549091506113999082611305565b30600090815260026020526040902055505050565b6008546113bb90836112c3565b6008556009546113cb9082611305565b6009555050565b60008080806113ec60646113e68989611477565b90611080565b905060006113ff60646113e68a89611477565b90506000611417826114118b866112c3565b906112c3565b9992985090965090945050505050565b60008080806114368886611477565b905060006114448887611477565b905060006114528888611477565b905060006114648261141186866112c3565b939b939a50919850919650505050505050565b60008260000361148957506000610352565b60006114958385611753565b9050826114a285836118d3565b14610ed15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161040b565b600060208083528351808285015260005b818110156115265785810183015185820160400152820161150a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461045c57600080fd5b6000806040838503121561156f57600080fd5b823561157a81611547565b946020939093013593505050565b60008060006060848603121561159d57600080fd5b83356115a881611547565b925060208401356115b881611547565b929592945050506040919091013590565b801515811461045c57600080fd5b6000602082840312156115e957600080fd5b8135610ed1816115c9565b60006020828403121561160657600080fd5b8135610ed181611547565b6000806040838503121561162457600080fd5b823561162f81611547565b9150602083013561163f81611547565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561169b5781600019048211156116815761168161164a565b8085161561168e57918102915b93841c9390800290611665565b509250929050565b6000826116b257506001610352565b816116bf57506000610352565b81600181146116d557600281146116df576116fb565b6001915050610352565b60ff8411156116f0576116f061164a565b50506001821b610352565b5060208310610133831016604e8410600b841016171561171e575081810a610352565b6117288383611660565b806000190482111561173c5761173c61164a565b029392505050565b6000610ed160ff8416836116a3565b600081600019048311821515161561176d5761176d61164a565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156117b957600080fd5b8151610ed181611547565b6000806000606084860312156117d957600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561180457600080fd5b8151610ed1816115c9565b808201808211156103525761035261164a565b6000816118315761183161164a565b506000190190565b818103818111156103525761035261164a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118b25784516001600160a01b03168352938301939183019160010161188d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826118f057634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122014cbb3361b113421c6119facdcba99f822e0d72c48cced7a35b2e5ba10b5369c64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c8063715018a61161008a578063a9059cbb11610059578063a9059cbb146102b1578063c3c8cd80146102d1578063c9567bf9146102e6578063dd62ed3e146102fb57600080fd5b8063715018a614610230578063751039fc146102455780638da5cb5b1461025a57806395d89b411461028257600080fd5b8063313ce567116100c6578063313ce567146101bd5780635932ead1146101d95780636fc3eaec146101fb57806370a082311461021057600080fd5b806306fdde0314610103578063095ea7b31461014a57806318160ddd1461017a57806323b872dd1461019d57600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5060408051808201909152600c81526b2237b83832b633b0b733b2b960a11b60208201525b60405161014191906114f9565b60405180910390f35b34801561015657600080fd5b5061016a61016536600461155c565b610341565b6040519015158152602001610141565b34801561018657600080fd5b5061018f610358565b604051908152602001610141565b3480156101a957600080fd5b5061016a6101b8366004611588565b610378565b3480156101c957600080fd5b5060405160128152602001610141565b3480156101e557600080fd5b506101f96101f43660046115d7565b6103e1565b005b34801561020757600080fd5b506101f9610432565b34801561021c57600080fd5b5061018f61022b3660046115f4565b61045f565b34801561023c57600080fd5b506101f9610481565b34801561025157600080fd5b506101f96104f5565b34801561026657600080fd5b506000546040516001600160a01b039091168152602001610141565b34801561028e57600080fd5b5060408051808201909152600681526526b4b93937b960d11b6020820152610134565b3480156102bd57600080fd5b5061016a6102cc36600461155c565b61055a565b3480156102dd57600080fd5b506101f9610567565b3480156102f257600080fd5b506101f961059d565b34801561030757600080fd5b5061018f610316366004611611565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600061034e338484610917565b5060015b92915050565b60006103666012600a611744565b6103739062989680611753565b905090565b6000610385848484610a3b565b6103d784336103d2856040518060600160405280602881526020016118f6602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610de0565b610917565b5060019392505050565b6000546001600160a01b031633146104145760405162461bcd60e51b815260040161040b90611772565b60405180910390fd5b60118054911515600160b81b0260ff60b81b19909216919091179055565b600f546001600160a01b0316336001600160a01b03161461045257600080fd5b4761045c81610e1a565b50565b6001600160a01b03811660009081526002602052604081205461035290610e54565b6000546001600160a01b031633146104ab5760405162461bcd60e51b815260040161040b90611772565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461051f5760405162461bcd60e51b815260040161040b90611772565b61052b6012600a611744565b6105389062989680611753565b601290815561054890600a611744565b6105559062989680611753565b601355565b600061034e338484610a3b565b600f546001600160a01b0316336001600160a01b03161461058757600080fd5b60006105923061045f565b905061045c81610ed8565b6000546001600160a01b031633146105c75760405162461bcd60e51b815260040161040b90611772565b601154600160a01b900460ff16156106215760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161040b565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610668308261065b6012600a611744565b6103d29062989680611753565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ca91906117a7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073b91906117a7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610788573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ac91906117a7565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d71947306107dc8161045f565b6000806107f16000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610859573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061087e91906117c4565b50506011805463ffff00ff60a01b198116630101000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156108ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091391906117f2565b5050565b6001600160a01b0383166109795760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161040b565b6001600160a01b0382166109da5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161040b565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a9f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161040b565b6001600160a01b038216610b015760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161040b565b60008111610b635760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161040b565b6000546001600160a01b03848116911614801590610b8f57506000546001600160a01b03838116911614155b15610dc5576001600160a01b03831660009081526006602052604090205460ff16158015610bd657506001600160a01b03821660009081526006602052604090205460ff16155b610bdf57600080fd5b6000600a55600e5415610bf457600c54610bf8565b600d545b600b556011546001600160a01b038481169116148015610c2657506010546001600160a01b03838116911614155b8015610c4b57506001600160a01b03821660009081526005602052604090205460ff16155b8015610c605750601154600160b81b900460ff165b15610d3a57601254811115610cb75760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161040b565b60135481610cc48461045f565b610cce919061180f565b1115610d1c5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161040b565b600e5415610d3a57600e8054906000610d3483611822565b91905055505b6000610d453061045f565b601154909150600160a81b900460ff16158015610d7057506011546001600160a01b03858116911614155b8015610d855750601154600160b01b900460ff165b8015610d915750600081115b8015610d9f5750601e600e54105b15610dbf57610dad81610ed8565b478015610dbd57610dbd47610e1a565b505b50610dd0565b6000600a819055600b555b610ddb838383611052565b505050565b60008184841115610e045760405162461bcd60e51b815260040161040b91906114f9565b506000610e118486611839565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610913573d6000803e3d6000fd5b6000600854821115610ebb5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161040b565b6000610ec561105d565b9050610ed18382611080565b9392505050565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f2057610f2061184c565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9d91906117a7565b81600181518110610fb057610fb061184c565b6001600160a01b039283166020918202929092010152601054610fd69130911684610917565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061100f908590600090869030904290600401611862565b600060405180830381600087803b15801561102957600080fd5b505af115801561103d573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b610ddb8383836110c2565b600080600061106a6111b9565b90925090506110798282611080565b9250505090565b6000610ed183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611238565b6000806000806000806110d487611266565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061110690876112c3565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546111359086611305565b6001600160a01b03891660009081526002602052604090205561115781611364565b61116184836113ae565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516111a691815260200190565b60405180910390a3505050505050505050565b6008546000908190816111ce6012600a611744565b6111db9062989680611753565b90506112026111ec6012600a611744565b6111f99062989680611753565b60085490611080565b82101561122f576008546112186012600a611744565b6112259062989680611753565b9350935050509091565b90939092509050565b600081836112595760405162461bcd60e51b815260040161040b91906114f9565b506000610e1184866118d3565b60008060008060008060008060006112838a600a54600b546113d2565b925092509250600061129361105d565b905060008060006112a68e878787611427565b919e509c509a509598509396509194505050505091939550919395565b6000610ed183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610de0565b600080611312838561180f565b905083811015610ed15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161040b565b600061136e61105d565b9050600061137c8383611477565b306000908152600260205260409020549091506113999082611305565b30600090815260026020526040902055505050565b6008546113bb90836112c3565b6008556009546113cb9082611305565b6009555050565b60008080806113ec60646113e68989611477565b90611080565b905060006113ff60646113e68a89611477565b90506000611417826114118b866112c3565b906112c3565b9992985090965090945050505050565b60008080806114368886611477565b905060006114448887611477565b905060006114528888611477565b905060006114648261141186866112c3565b939b939a50919850919650505050505050565b60008260000361148957506000610352565b60006114958385611753565b9050826114a285836118d3565b14610ed15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161040b565b600060208083528351808285015260005b818110156115265785810183015185820160400152820161150a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461045c57600080fd5b6000806040838503121561156f57600080fd5b823561157a81611547565b946020939093013593505050565b60008060006060848603121561159d57600080fd5b83356115a881611547565b925060208401356115b881611547565b929592945050506040919091013590565b801515811461045c57600080fd5b6000602082840312156115e957600080fd5b8135610ed1816115c9565b60006020828403121561160657600080fd5b8135610ed181611547565b6000806040838503121561162457600080fd5b823561162f81611547565b9150602083013561163f81611547565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561169b5781600019048211156116815761168161164a565b8085161561168e57918102915b93841c9390800290611665565b509250929050565b6000826116b257506001610352565b816116bf57506000610352565b81600181146116d557600281146116df576116fb565b6001915050610352565b60ff8411156116f0576116f061164a565b50506001821b610352565b5060208310610133831016604e8410600b841016171561171e575081810a610352565b6117288383611660565b806000190482111561173c5761173c61164a565b029392505050565b6000610ed160ff8416836116a3565b600081600019048311821515161561176d5761176d61164a565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156117b957600080fd5b8151610ed181611547565b6000806000606084860312156117d957600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561180457600080fd5b8151610ed1816115c9565b808201808211156103525761035261164a565b6000816118315761183161164a565b506000190190565b818103818111156103525761035261164a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118b25784516001600160a01b03168352938301939183019160010161188d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826118f057634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122014cbb3361b113421c6119facdcba99f822e0d72c48cced7a35b2e5ba10b5369c64736f6c63430008100033

Deployed Bytecode Sourcemap

4313:10129:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6225:83;;;;;;;;;;-1:-1:-1;6295:5:0;;;;;;;;;;;;-1:-1:-1;;;6295:5:0;;;;6225:83;;;;;;;:::i;:::-;;;;;;;;7077:161;;;;;;;;;;-1:-1:-1;7077:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7077:161:0;1023:187:1;6502:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6502:95:0;1215:177:1;7246:313:0;;;;;;;;;;-1:-1:-1;7246:313:0;;;;;:::i;:::-;;:::i;6411:83::-;;;;;;;;;;-1:-1:-1;6411:83:0;;4818:2;2000:36:1;;1988:2;1973:18;6411:83:0;1858:184:1;7567:103:0;;;;;;;;;;-1:-1:-1;7567:103:0;;;;;:::i;:::-;;:::i;:::-;;12557:193;;;;;;;;;;;;;:::i;6605:138::-;;;;;;;;;;-1:-1:-1;6605:138:0;;;;;:::i;:::-;;:::i;3394:148::-;;;;;;;;;;;;;:::i;10283:118::-;;;;;;;;;;;;;:::i;3180:79::-;;;;;;;;;;-1:-1:-1;3218:7:0;3245:6;3180:79;;-1:-1:-1;;;;;3245:6:0;;;2814:51:1;;2802:2;2787:18;3180:79:0;2668:203:1;6316:87:0;;;;;;;;;;-1:-1:-1;6388:7:0;;;;;;;;;;;;-1:-1:-1;;;6388:7:0;;;;6316:87;;6751:167;;;;;;;;;;-1:-1:-1;6751:167:0;;;;;:::i;:::-;;:::i;12355:194::-;;;;;;;;;;;;;:::i;10513:773::-;;;;;;;;;;;;;:::i;6926:143::-;;;;;;;;;;-1:-1:-1;6926:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7034:18:0;;;7007:7;7034:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6926:143;7077:161;7152:4;7169:39;978:10;7192:7;7201:6;7169:8;:39::i;:::-;-1:-1:-1;7226:4:0;7077:161;;;;;:::o;6502:95::-;6555:7;4875:13;4818:2;4875;:13;:::i;:::-;4862:26;;:10;:26;:::i;:::-;6575:14;;6502:95;:::o;7246:313::-;7344:4;7361:36;7371:6;7379:9;7390:6;7361:9;:36::i;:::-;7408:121;7417:6;978:10;7439:89;7477:6;7439:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7439:19:0;;;;;;:11;:19;;;;;;;;978:10;7439:33;;;;;;;;;;:37;:89::i;:::-;7408:8;:121::i;:::-;-1:-1:-1;7547:4:0;7246:313;;;;;:::o;7567:103::-;3307:6;;-1:-1:-1;;;;;3307:6:0;978:10;3307:22;3299:67;;;;-1:-1:-1;;;3299:67:0;;;;;;;:::i;:::-;;;;;;;;;7639:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7639:23:0::1;-1:-1:-1::0;;;;7639:23:0;;::::1;::::0;;;::::1;::::0;;7567:103::o;12557:193::-;12623:14;;-1:-1:-1;;;;;12623:14:0;978:10;-1:-1:-1;;;;;12607:30:0;;12599:39;;;;;;12678:21;12710:32;12678:21;12710:12;:32::i;:::-;12588:162;12557:193::o;6605:138::-;-1:-1:-1;;;;;6718:16:0;;6671:7;6718:16;;;:7;:16;;;;;;6698:37;;:19;:37::i;3394:148::-;3307:6;;-1:-1:-1;;;;;3307:6:0;978:10;3307:22;3299:67;;;;-1:-1:-1;;;3299:67:0;;;;;;;:::i;:::-;3501:1:::1;3485:6:::0;;3464:40:::1;::::0;-1:-1:-1;;;;;3485:6:0;;::::1;::::0;3464:40:::1;::::0;3501:1;;3464:40:::1;3532:1;3515:19:::0;;-1:-1:-1;;;;;;3515:19:0::1;::::0;;3394:148::o;10283:118::-;3307:6;;-1:-1:-1;;;;;3307:6:0;978:10;3307:22;3299:67;;;;-1:-1:-1;;;3299:67:0;;;;;;;:::i;:::-;4875:13:::1;4818:2;4875;:13;:::i;:::-;4862:26;::::0;:10:::1;:26;:::i;:::-;10336:12;:22:::0;;;4875:13:::1;::::0;:2:::1;:13;:::i;:::-;4862:26;::::0;:10:::1;:26;:::i;:::-;10369:14;:24:::0;10283:118::o;6751:167::-;6829:4;6846:42;978:10;6870:9;6881:6;6846:9;:42::i;12355:194::-;12421:14;;-1:-1:-1;;;;;12421:14:0;978:10;-1:-1:-1;;;;;12405:30:0;;12397:39;;;;;;12447:23;12473:24;12491:4;12473:9;:24::i;:::-;12447:50;;12508:33;12525:15;12508:16;:33::i;10513:773::-;3307:6;;-1:-1:-1;;;;;3307:6:0;978:10;3307:22;3299:67;;;;-1:-1:-1;;;3299:67:0;;;;;;;:::i;:::-;10577:11:::1;::::0;-1:-1:-1;;;10577:11:0;::::1;;;10576:12;10568:47;;;::::0;-1:-1:-1;;;10568:47:0;;5520:2:1;10568:47:0::1;::::0;::::1;5502:21:1::0;5559:2;5539:18;;;5532:30;5598:25;5578:18;;;5571:53;5641:18;;10568:47:0::1;5318:347:1::0;10568:47:0::1;10737:15;:34:::0;;-1:-1:-1;;;;;;10737:34:0::1;10683:42;10737:34:::0;;::::1;::::0;;;10782:58:::1;10799:4;10683:42:::0;4875:13:::1;4818:2;4875;:13;:::i;:::-;4862:26;::::0;:10:::1;:26;:::i;10782:58::-;10885:16;-1:-1:-1::0;;;;;10885:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10867:56:0::1;;10932:4;10939:16;-1:-1:-1::0;;;;;10939:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10867:96;::::0;-1:-1:-1;;;;;;10867:96:0::1;::::0;;;;;;-1:-1:-1;;;;;6156:15:1;;;10867:96:0::1;::::0;::::1;6138:34:1::0;6208:15;;6188:18;;;6181:43;6073:18;;10867:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10851:13;:112:::0;;-1:-1:-1;;;;;;10851:112:0::1;-1:-1:-1::0;;;;;10851:112:0;;::::1;;::::0;;10974:15:::1;::::0;::::1;:31;11013:21;11044:4;11050:24;11044:4:::0;11050:9:::1;:24::i;:::-;11075:1;11077::::0;11079:7:::1;3218::::0;3245:6;-1:-1:-1;;;;;3245:6:0;;3180:79;11079:7:::1;10974:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10974:129:0;;;-1:-1:-1;;;;;6594:15:1;;;10974:129:0::1;::::0;::::1;6576:34:1::0;6626:18;;;6619:34;;;;6669:18;;;6662:34;;;;6712:18;;;6705:34;6776:15;;;6755:19;;;6748:44;11087:15:0::1;6808:19:1::0;;;6801:35;6510:19;;10974:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11114:11:0::1;:18:::0;;-1:-1:-1;;;;11178:18:0;;-1:-1:-1;;;11178:18:0;;;;11245:15:::1;::::0;11207:71:::1;::::0;-1:-1:-1;;;11207:71:0;;-1:-1:-1;;;;;11245:15:0;;::::1;11207:71;::::0;::::1;7332:51:1::0;-1:-1:-1;;7399:18:1;;;7392:34;11214:13:0;;;-1:-1:-1;11207:29:0::1;::::0;7305:18:1;;11207:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10557:729;10513:773::o:0;7940:335::-;-1:-1:-1;;;;;8033:19:0;;8025:68;;;;-1:-1:-1;;;8025:68:0;;7889:2:1;8025:68:0;;;7871:21:1;7928:2;7908:18;;;7901:30;7967:34;7947:18;;;7940:62;-1:-1:-1;;;8018:18:1;;;8011:34;8062:19;;8025:68:0;7687:400:1;8025:68:0;-1:-1:-1;;;;;8112:21:0;;8104:68;;;;-1:-1:-1;;;8104:68:0;;8294:2:1;8104:68:0;;;8276:21:1;8333:2;8313:18;;;8306:30;8372:34;8352:18;;;8345:62;-1:-1:-1;;;8423:18:1;;;8416:32;8465:19;;8104:68:0;8092:398:1;8104:68:0;-1:-1:-1;;;;;8183:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8235:32;;1361:25:1;;;8235:32:0;;1334:18:1;8235:32:0;;;;;;;7940:335;;;:::o;8283:1499::-;-1:-1:-1;;;;;8371:18:0;;8363:68;;;;-1:-1:-1;;;8363:68:0;;8697:2:1;8363:68:0;;;8679:21:1;8736:2;8716:18;;;8709:30;8775:34;8755:18;;;8748:62;-1:-1:-1;;;8826:18:1;;;8819:35;8871:19;;8363:68:0;8495:401:1;8363:68:0;-1:-1:-1;;;;;8450:16:0;;8442:64;;;;-1:-1:-1;;;8442:64:0;;9103:2:1;8442:64:0;;;9085:21:1;9142:2;9122:18;;;9115:30;9181:34;9161:18;;;9154:62;-1:-1:-1;;;9232:18:1;;;9225:33;9275:19;;8442:64:0;8901:399:1;8442:64:0;8534:1;8525:6;:10;8517:64;;;;-1:-1:-1;;;8517:64:0;;9507:2:1;8517:64:0;;;9489:21:1;9546:2;9526:18;;;9519:30;9585:34;9565:18;;;9558:62;-1:-1:-1;;;9636:18:1;;;9629:39;9685:19;;8517:64:0;9305:405:1;8517:64:0;3218:7;3245:6;-1:-1:-1;;;;;8600:15:0;;;3245:6;;8600:15;;;;:32;;-1:-1:-1;3218:7:0;3245:6;-1:-1:-1;;;;;8619:13:0;;;3245:6;;8619:13;;8600:32;8596:1136;;;-1:-1:-1;;;;;8658:10:0;;;;;;:4;:10;;;;;;;;8657:11;:24;;;;-1:-1:-1;;;;;;8673:8:0;;;;;;:4;:8;;;;;;;;8672:9;8657:24;8649:33;;;;;;8709:1;8697:9;:13;8738:19;;:22;8737:46;;8772:11;;8737:46;;;8762:9;;8737:46;8725:9;:58;8810:13;;-1:-1:-1;;;;;8802:21:0;;;8810:13;;8802:21;:55;;;;-1:-1:-1;8841:15:0;;-1:-1:-1;;;;;8827:30:0;;;8841:15;;8827:30;;8802:55;:83;;;;-1:-1:-1;;;;;;8863:22:0;;;;;;:18;:22;;;;;;;;8861:24;8802:83;:102;;;;-1:-1:-1;8889:15:0;;-1:-1:-1;;;8889:15:0;;;;8802:102;8798:397;;;8972:12;;8962:6;:22;;8954:60;;;;-1:-1:-1;;;8954:60:0;;9917:2:1;8954:60:0;;;9899:21:1;9956:2;9936:18;;;9929:30;9995:27;9975:18;;;9968:55;10040:18;;8954:60:0;9715:349:1;8954:60:0;9067:14;;9057:6;9041:13;9051:2;9041:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9033:79;;;;-1:-1:-1;;;9033:79:0;;10401:2:1;9033:79:0;;;10383:21:1;10440:2;10420:18;;;10413:30;10479:28;10459:18;;;10452:56;10525:18;;9033:79:0;10199:350:1;9033:79:0;9134:19;;:21;9131:49;;9157:19;:21;;;:19;:21;;;:::i;:::-;;;;;;9131:49;9213:28;9244:24;9262:4;9244:9;:24::i;:::-;9288:6;;9213:55;;-1:-1:-1;;;;9288:6:0;;;;9287:7;:32;;;;-1:-1:-1;9306:13:0;;-1:-1:-1;;;;;9298:21:0;;;9306:13;;9298:21;;9287:32;:47;;;;-1:-1:-1;9323:11:0;;-1:-1:-1;;;9323:11:0;;;;9287:47;:73;;;;;9359:1;9338:20;:22;9287:73;:99;;;;;9384:2;9364:19;;:22;9287:99;9283:370;;;9407:38;9424:20;9407:16;:38::i;:::-;9493:21;9536:22;;9533:105;;9583:35;9596:21;9583:12;:35::i;:::-;9388:265;9283:370;8634:1030;8596:1136;;;9693:1;9681:9;:13;;;9707:9;:13;8596:1136;9744:30;9759:4;9764:2;9767:6;9744:14;:30::i;:::-;8283:1499;;;:::o;2035:190::-;2121:7;2157:12;2149:6;;;;2141:29;;;;-1:-1:-1;;;2141:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2181:9:0;2193:5;2197:1;2193;:5;:::i;:::-;2181:17;2035:190;-1:-1:-1;;;;;2035:190:0:o;10409:96::-;10466:14;;:31;;-1:-1:-1;;;;;10466:14:0;;;;:31;;;;;10490:6;;10466:14;:31;:14;:31;10490:6;10466:14;:31;;;;;;;;;;;;;;;;;;;7678:254;7745:7;7784;;7773;:18;;7765:73;;;;-1:-1:-1;;;7765:73:0;;11030:2:1;7765:73:0;;;11012:21:1;11069:2;11049:18;;;11042:30;11108:34;11088:18;;;11081:62;-1:-1:-1;;;11159:18:1;;;11152:40;11209:19;;7765:73:0;10828:406:1;7765:73:0;7849:19;7872:10;:8;:10::i;:::-;7849:33;-1:-1:-1;7900:24:0;:7;7849:33;7900:11;:24::i;:::-;7893:31;7678:254;-1:-1:-1;;;7678:254:0:o;9790:483::-;5749:6;:13;;-1:-1:-1;;;;5749:13:0;-1:-1:-1;;;5749:13:0;;;9892:16:::1;::::0;;9906:1:::1;9892:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9892:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9892:16:0::1;9868:40;;9937:4;9919;9924:1;9919:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9919:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9963:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9963:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9919:7;;9963:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9953:4;9958:1;9953:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9953:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10028:15:::1;::::0;9996:62:::1;::::0;10013:4:::1;::::0;10028:15:::1;10046:11:::0;9996:8:::1;:62::i;:::-;10069:15;::::0;:196:::1;::::0;-1:-1:-1;;;10069:196:0;;-1:-1:-1;;;;;10069:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10150:11;;10069:15:::1;::::0;10192:4;;10219::::1;::::0;10239:15:::1;::::0;10069:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5785:6:0;:14;;-1:-1:-1;;;;5785:14:0;;;-1:-1:-1;;;;9790:483:0:o;11294:146::-;11388:44;11406:6;11414:9;11425:6;11388:17;:44::i;14012:163::-;14053:7;14074:15;14091;14110:19;:17;:19::i;:::-;14073:56;;-1:-1:-1;14073:56:0;-1:-1:-1;14147:20:0;14073:56;;14147:11;:20::i;:::-;14140:27;;;;14012:163;:::o;2487:132::-;2545:7;2572:39;2576:1;2579;2572:39;;;;;;;;;;;;;;;;;:3;:39::i;11448:487::-;11547:15;11564:23;11589:12;11603:23;11628:12;11642:13;11659:19;11670:7;11659:10;:19::i;:::-;-1:-1:-1;;;;;11707:15:0;;;;;;:7;:15;;;;;;11546:132;;-1:-1:-1;11546:132:0;;-1:-1:-1;11546:132:0;;-1:-1:-1;11546:132:0;-1:-1:-1;11546:132:0;-1:-1:-1;11546:132:0;-1:-1:-1;11707:28:0;;11546:132;11707:19;:28::i;:::-;-1:-1:-1;;;;;11689:15:0;;;;;;;:7;:15;;;;;;:46;;;;11767:18;;;;;;;:39;;11790:15;11767:22;:39::i;:::-;-1:-1:-1;;;;;11746:18:0;;;;;;:7;:18;;;;;:60;11817:16;11827:5;11817:9;:16::i;:::-;11844:23;11856:4;11862;11844:11;:23::i;:::-;11900:9;-1:-1:-1;;;;;11883:44:0;11892:6;-1:-1:-1;;;;;11883:44:0;;11911:15;11883:44;;;;1361:25:1;;1349:2;1334:18;;1215:177;11883:44:0;;;;;;;;11535:400;;;;;;11448:487;;;:::o;14183:256::-;14280:7;;14233;;;;;4875:13;4818:2;4875;:13;:::i;:::-;4862:26;;:10;:26;:::i;:::-;14298:25;-1:-1:-1;14348:20:0;4875:13;4818:2;4875;:13;:::i;:::-;4862:26;;:10;:26;:::i;:::-;14348:7;;;:11;:20::i;:::-;14338:7;:30;14334:61;;;14378:7;;4875:13;4818:2;4875;:13;:::i;:::-;4862:26;;:10;:26;:::i;:::-;14370:25;;;;;;14183:256;;:::o;14334:61::-;14414:7;;14423;;-1:-1:-1;14183:256:0;-1:-1:-1;14183:256:0:o;2627:189::-;2713:7;2748:12;2741:5;2733:28;;;;-1:-1:-1;;;2733:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2772:9:0;2784:5;2788:1;2784;:5;:::i;12760:471::-;12819:7;12828;12837;12846;12855;12864;12885:23;12910:12;12924:13;12941:42;12953:7;12962:9;;12973;;12941:11;:42::i;:::-;12884:99;;;;;;12994:19;13017:10;:8;:10::i;:::-;12994:33;;13039:15;13056:23;13081:12;13097:46;13109:7;13118:4;13124:5;13131:11;13097;:46::i;:::-;13038:105;;-1:-1:-1;13038:105:0;-1:-1:-1;13038:105:0;-1:-1:-1;13194:15:0;;-1:-1:-1;13211:4:0;;-1:-1:-1;13217:5:0;;-1:-1:-1;;;;;12760:471:0;;;;;;;:::o;1891:136::-;1949:7;1976:43;1980:1;1983;1976:43;;;;;;;;;;;;;;;;;:3;:43::i;1704:179::-;1762:7;;1794:5;1798:1;1794;:5;:::i;:::-;1782:17;;1823:1;1818;:6;;1810:46;;;;-1:-1:-1;;;1810:46:0;;12912:2:1;1810:46:0;;;12894:21:1;12951:2;12931:18;;;12924:30;12990:29;12970:18;;;12963:57;13037:18;;1810:46:0;12710:351:1;11943:212:0;11996:19;12019:10;:8;:10::i;:::-;11996:33;-1:-1:-1;12040:13:0;12056:22;:5;11996:33;12056:9;:22::i;:::-;12130:4;12114:22;;;;:7;:22;;;;;;12040:38;;-1:-1:-1;12114:33:0;;12040:38;12114:26;:33::i;:::-;12105:4;12089:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11943:212:0:o;12163:147::-;12241:7;;:17;;12253:4;12241:11;:17::i;:::-;12231:7;:27;12282:10;;:20;;12297:4;12282:14;:20::i;:::-;12269:10;:33;-1:-1:-1;;12163:147:0:o;13239:351::-;13332:7;;;;13385:28;13409:3;13385:19;:7;13397:6;13385:11;:19::i;:::-;:23;;:28::i;:::-;13370:43;-1:-1:-1;13424:13:0;13440:29;13465:3;13440:20;:7;13452;13440:11;:20::i;:29::-;13424:45;-1:-1:-1;13480:23:0;13506:28;13424:45;13506:17;:7;13518:4;13506:11;:17::i;:::-;:21;;:28::i;:::-;13480:54;13570:4;;-1:-1:-1;13576:5:0;;-1:-1:-1;13239:351:0;;-1:-1:-1;;;;;13239:351:0:o;13598:409::-;13708:7;;;;13764:24;:7;13776:11;13764;:24::i;:::-;13746:42;-1:-1:-1;13799:12:0;13814:21;:4;13823:11;13814:8;:21::i;:::-;13799:36;-1:-1:-1;13846:13:0;13862:22;:5;13872:11;13862:9;:22::i;:::-;13846:38;-1:-1:-1;13895:23:0;13921:28;13846:38;13921:17;:7;13933:4;13921:11;:17::i;:28::-;13968:7;;;;-1:-1:-1;13994:4:0;;-1:-1:-1;13598:409:0;;-1:-1:-1;;;;;;;13598:409:0:o;2233:246::-;2291:7;2315:1;2320;2315:6;2311:47;;-1:-1:-1;2345:1:0;2338:8;;2311:47;2368:9;2380:5;2384:1;2380;:5;:::i;:::-;2368:17;-1:-1:-1;2413:1:0;2404:5;2408:1;2368:17;2404:5;:::i;:::-;:10;2396:56;;;;-1:-1:-1;;;2396:56:0;;13268:2:1;2396:56:0;;;13250:21:1;13307:2;13287:18;;;13280:30;13346:34;13326:18;;;13319:62;-1:-1:-1;;;13397:18:1;;;13390:31;13438:19;;2396:56:0;13066:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:118::-;2133:5;2126:13;2119:21;2112:5;2109:32;2099:60;;2155:1;2152;2145:12;2170:241;2226:6;2279:2;2267:9;2258:7;2254:23;2250:32;2247:52;;;2295:1;2292;2285:12;2247:52;2334:9;2321:23;2353:28;2375:5;2353:28;:::i;2416:247::-;2475:6;2528:2;2516:9;2507:7;2503:23;2499:32;2496:52;;;2544:1;2541;2534:12;2496:52;2583:9;2570:23;2602:31;2627:5;2602:31;:::i;2876:388::-;2944:6;2952;3005:2;2993:9;2984:7;2980:23;2976:32;2973:52;;;3021:1;3018;3011:12;2973:52;3060:9;3047:23;3079:31;3104:5;3079:31;:::i;:::-;3129:5;-1:-1:-1;3186:2:1;3171:18;;3158:32;3199:33;3158:32;3199:33;:::i;:::-;3251:7;3241:17;;;2876:388;;;;;:::o;3269:127::-;3330:10;3325:3;3321:20;3318:1;3311:31;3361:4;3358:1;3351:15;3385:4;3382:1;3375:15;3401:422;3490:1;3533:5;3490:1;3547:270;3568:7;3558:8;3555:21;3547:270;;;3627:4;3623:1;3619:6;3615:17;3609:4;3606:27;3603:53;;;3636:18;;:::i;:::-;3686:7;3676:8;3672:22;3669:55;;;3706:16;;;;3669:55;3785:22;;;;3745:15;;;;3547:270;;;3551:3;3401:422;;;;;:::o;3828:806::-;3877:5;3907:8;3897:80;;-1:-1:-1;3948:1:1;3962:5;;3897:80;3996:4;3986:76;;-1:-1:-1;4033:1:1;4047:5;;3986:76;4078:4;4096:1;4091:59;;;;4164:1;4159:130;;;;4071:218;;4091:59;4121:1;4112:10;;4135:5;;;4159:130;4196:3;4186:8;4183:17;4180:43;;;4203:18;;:::i;:::-;-1:-1:-1;;4259:1:1;4245:16;;4274:5;;4071:218;;4373:2;4363:8;4360:16;4354:3;4348:4;4345:13;4341:36;4335:2;4325:8;4322:16;4317:2;4311:4;4308:12;4304:35;4301:77;4298:159;;;-1:-1:-1;4410:19:1;;;4442:5;;4298:159;4489:34;4514:8;4508:4;4489:34;:::i;:::-;4559:6;4555:1;4551:6;4547:19;4538:7;4535:32;4532:58;;;4570:18;;:::i;:::-;4608:20;;3828:806;-1:-1:-1;;;3828:806:1:o;4639:140::-;4697:5;4726:47;4767:4;4757:8;4753:19;4747:4;4726:47;:::i;4784:168::-;4824:7;4890:1;4886;4882:6;4878:14;4875:1;4872:21;4867:1;4860:9;4853:17;4849:45;4846:71;;;4897:18;;:::i;:::-;-1:-1:-1;4937:9:1;;4784:168::o;4957:356::-;5159:2;5141:21;;;5178:18;;;5171:30;5237:34;5232:2;5217:18;;5210:62;5304:2;5289:18;;4957:356::o;5670:251::-;5740:6;5793:2;5781:9;5772:7;5768:23;5764:32;5761:52;;;5809:1;5806;5799:12;5761:52;5841:9;5835:16;5860:31;5885:5;5860:31;:::i;6847:306::-;6935:6;6943;6951;7004:2;6992:9;6983:7;6979:23;6975:32;6972:52;;;7020:1;7017;7010:12;6972:52;7049:9;7043:16;7033:26;;7099:2;7088:9;7084:18;7078:25;7068:35;;7143:2;7132:9;7128:18;7122:25;7112:35;;6847:306;;;;;:::o;7437:245::-;7504:6;7557:2;7545:9;7536:7;7532:23;7528:32;7525:52;;;7573:1;7570;7563:12;7525:52;7605:9;7599:16;7624:28;7646:5;7624:28;:::i;10069:125::-;10134:9;;;10155:10;;;10152:36;;;10168:18;;:::i;10554:136::-;10593:3;10621:5;10611:39;;10630:18;;:::i;:::-;-1:-1:-1;;;10666:18:1;;10554:136::o;10695:128::-;10762:9;;;10783:11;;;10780:37;;;10797:18;;:::i;11371:127::-;11432:10;11427:3;11423:20;11420:1;11413:31;11463:4;11460:1;11453:15;11487:4;11484:1;11477:15;11503:980;11765:4;11813:3;11802:9;11798:19;11844:6;11833:9;11826:25;11870:2;11908:6;11903:2;11892:9;11888:18;11881:34;11951:3;11946:2;11935:9;11931:18;11924:31;11975:6;12010;12004:13;12041:6;12033;12026:22;12079:3;12068:9;12064:19;12057:26;;12118:2;12110:6;12106:15;12092:29;;12139:1;12149:195;12163:6;12160:1;12157:13;12149:195;;;12228:13;;-1:-1:-1;;;;;12224:39:1;12212:52;;12319:15;;;;12284:12;;;;12260:1;12178:9;12149:195;;;-1:-1:-1;;;;;;;12400:32:1;;;;12395:2;12380:18;;12373:60;-1:-1:-1;;;12464:3:1;12449:19;12442:35;12361:3;11503:980;-1:-1:-1;;;11503:980:1:o;12488:217::-;12528:1;12554;12544:132;;12598:10;12593:3;12589:20;12586:1;12579:31;12633:4;12630:1;12623:15;12661:4;12658:1;12651:15;12544:132;-1:-1:-1;12690:9:1;;12488:217::o

Swarm Source

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