ETH Price: $3,326.07 (-4.08%)

Token

GIGADOGE (GDOGE)
 

Overview

Max Total Supply

420,000,000 GDOGE

Holders

69

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Filtered by Token Holder
ad1990.eth
Balance
394,189.22493709 GDOGE

Value
$0.00
0xfcb95624971d38bca2926d05cd433cdf4948a893
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:
GIGADOGE

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-25
*/

// SPDX-License-Identifier: None
/**
GIGADOGE (GDOGE)
Doge is a true GIGACHAD, an inspiration to us all. This is the untold story of GIGA DOGE.
Telegram: https://t.me/GigaDogeErc
Twitter : https://x.com/gigadogeoneth
Website : https://gigadoge.vip/
**/
pragma solidity ^0.8.19;
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;
    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);
    function getPair(address tokenA, address tokenB) external view 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 GIGADOGE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint256) private _boughtAt;
    mapping (address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _devWallet;
    uint256 private _lastSwap=0;
    bool private _noSecondSwap=false;
    uint256 private _startBuyTax=20;
    uint256 private _startSellTax=0;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _noSwapBefore=20;
    uint256 private _buyCount=0;
    uint8 private constant _decimals = 8;
    uint256 private constant _totalSupply = 420000000 * 10**_decimals;
    string private constant _name = unicode"GIGADOGE";
    string private constant _symbol = unicode"GDOGE";
    uint256 public _maxTxAmount =   8400000 * 10**_decimals;
    uint256 public _maxWalletSize = 8400000 * 10**_decimals;
    uint256 public _taxSwapThreshold=8400000 * 10**_decimals;
    uint256 public _maxTaxSwap=8400000 * 10**_decimals;
    IUniswapV2Router02 private _router;
    address private _pair;
    bool private _tradingOpen;
    bool private _inSwap = false;
    bool private _swapEnabled = false;
    bool private liquidityCreated =false;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }
    constructor () {
        _devWallet = payable(_msgSender());
        _balances[address(this)] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devWallet] = true;
        emit Transfer(address(0), address(this), _totalSupply);
    }
    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 _totalSupply;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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 _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");
        uint256 taxAmount=0;
        bool shouldSwap=true;
        if (from != owner() && to != owner()) {
            taxAmount=amount.mul((_tradingOpen)?0:_startBuyTax).div(100);
            if (transferDelayEnabled) {
              if (to != address(_router) && to != address(_pair)) {
                require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                _holderLastTransferTimestamp[tx.origin] = block.number;
              }
            }

            if (from == _pair && to != address(_router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_buyCount<_noSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
                _boughtAt[to]=block.timestamp;
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_startBuyTax).div(100);
            }
            if(to == _pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_startSellTax).div(100);
                if(_boughtAt[from]==block.timestamp||_boughtAt[from]==0){
                  shouldSwap=false;
                }
                if(_noSecondSwap&& _lastSwap==block.number){
                  shouldSwap=false;
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!_inSwap && to == _pair && _swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_noSwapBefore && shouldSwap) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                    _lastSwap=block.number;
                }
            }
        }
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!_tradingOpen){return;}
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _router.WETH();
        _approve(address(this), address(_router), tokenAmount);
        _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function removeLimits() external onlyOwner{
        _maxTxAmount = _totalSupply;
        _maxWalletSize=_totalSupply;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_totalSupply);
    }
    function sendETHToFee(uint256 amount) private {
        _devWallet.transfer(amount);
    }

    function createLiquidity() external onlyOwner payable {
        require(!_tradingOpen,"Trading is already open");
        require(!liquidityCreated,"Liquidity created");
        _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(_router), _totalSupply);
        IUniswapV2Factory factory=IUniswapV2Factory(_router.factory());
        _pair = factory.getPair(address(this),_router.WETH());
        if(_pair==address(0x0)){
          _pair = factory.createPair(address(this), _router.WETH());
        }
        _router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(_pair).approve(address(_router), type(uint).max);
        liquidityCreated=true;
    }
    function openTrading() external onlyOwner() {
        _swapEnabled = true;
        _tradingOpen = true;
    }
    receive() external payable {}
    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
    function manualSwap() external {
        require(_msgSender()==_devWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526006805460ff199081169091555f600781905560088054909216825560146009819055600a828155600b839055600c8390556001600d55600e839055600f919091556010919091556100569190610317565b6100639062802c8061032c565b6011556100726008600a610317565b61007f9062802c8061032c565b60125561008e6008600a610317565b61009b9062802c8061032c565b6013556100aa6008600a610317565b6100b79062802c8061032c565b6014556016805462ffffff60a81b191690553480156100d4575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b03191661010033021790556101386008600a610317565b61014690631908b10061032c565b305f90815260016020819052604082209290925560039061016e5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530808252600390945282812080548616600190811790915560065461010090049092168152918220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101fa6008600a610317565b61020890631908b10061032c565b60405190815260200160405180910390a3610343565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561026d578085048111156102515761025161021e565b600184161561025f57908102905b60019390931c928002610236565b935093915050565b5f8261028357506001610311565b8161028f57505f610311565b81600181146102a557600281146102af576102cb565b6001915050610311565b60ff8411156102c0576102c061021e565b50506001821b610311565b5060208310610133831016604e8410600b84101617156102ee575081810a610311565b6102fa5f198484610232565b805f190482111561030d5761030d61021e565b0290505b92915050565b5f61032560ff841683610275565b9392505050565b80820281158282048414176103115761031161021e565b611ab7806103505f395ff3fe60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed14610319578063c7af2a9c1461032e578063c876d0b914610336578063c9567bf91461034f578063dd62ed3e14610363575f5ffd5b80637d1db4a51461027d5780638da5cb5b146102925780638f9a55c0146102b857806395d89b41146102cd578063a9059cbb146102fa575f5ffd5b8063313ce567116100e3578063313ce567146101f057806351bc3c851461020b57806370a0823114610221578063715018a614610255578063751039fc14610269575f5ffd5b806306fdde0314610129578063095ea7b31461016b5780630faee56f1461019a57806318160ddd146101bd57806323b872dd146101d1575f5ffd5b3661012557005b5f5ffd5b348015610134575f5ffd5b5060408051808201909152600881526747494741444f474560c01b60208201525b60405161016291906116bc565b60405180910390f35b348015610176575f5ffd5b5061018a610185366004611708565b6103a7565b6040519015158152602001610162565b3480156101a5575f5ffd5b506101af60145481565b604051908152602001610162565b3480156101c8575f5ffd5b506101af6103bd565b3480156101dc575f5ffd5b5061018a6101eb366004611732565b6103dd565b3480156101fb575f5ffd5b5060405160088152602001610162565b348015610216575f5ffd5b5061021f610444565b005b34801561022c575f5ffd5b506101af61023b366004611770565b6001600160a01b03165f9081526001602052604090205490565b348015610260575f5ffd5b5061021f61049a565b348015610274575f5ffd5b5061021f610514565b348015610288575f5ffd5b506101af60115481565b34801561029d575f5ffd5b505f546040516001600160a01b039091168152602001610162565b3480156102c3575f5ffd5b506101af60125481565b3480156102d8575f5ffd5b5060408051808201909152600581526447444f474560d81b6020820152610155565b348015610305575f5ffd5b5061018a610314366004611708565b6105cf565b348015610324575f5ffd5b506101af60135481565b61021f6105db565b348015610341575f5ffd5b5060065461018a9060ff1681565b34801561035a575f5ffd5b5061021f610ae8565b34801561036e575f5ffd5b506101af61037d36600461178b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103b3338484610b2a565b5060015b92915050565b5f6103ca6008600a6118b9565b6103d890631908b1006118c7565b905090565b5f6103e9848484610c4d565b61043a843361043585604051806060016040528060288152602001611a5a602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061131b565b610b2a565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b031614610468575f5ffd5b305f9081526001602052604090205480156104865761048681611353565b47801561049657610496816114dc565b5050565b5f546001600160a01b031633146104cc5760405162461bcd60e51b81526004016104c3906118de565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461053d5760405162461bcd60e51b81526004016104c3906118de565b6105496008600a6118b9565b61055790631908b1006118c7565b6011556105666008600a6118b9565b61057490631908b1006118c7565b6012556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ae6008600a6118b9565b6105bc90631908b1006118c7565b60405190815260200160405180910390a1565b5f6103b3338484610c4d565b5f546001600160a01b031633146106045760405162461bcd60e51b81526004016104c3906118de565b601654600160a01b900460ff161561065e5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c3565b601654600160b81b900460ff16156106ac5760405162461bcd60e51b8152602060048201526011602482015270131a5c5d5a591a5d1e4818dc99585d1959607a1b60448201526064016104c3565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106f59030906106e76008600a6118b9565b61043590631908b1006118c7565b6015546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa15801561073c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107609190611913565b9050806001600160a01b031663e6a439053060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e69190611913565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561082f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108539190611913565b601680546001600160a01b0319166001600160a01b0392909216918217905561098957806001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108fa9190611913565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610944573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109689190611913565b601680546001600160a01b0319166001600160a01b03929092169190911790555b6015546001600160a01b031663f305d71947306109ba816001600160a01b03165f9081526001602052604090205490565b5f5f6109cd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a33573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a58919061192e565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610aad573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad19190611959565b50506016805460ff60b81b1916600160b81b179055565b5f546001600160a01b03163314610b115760405162461bcd60e51b81526004016104c3906118de565b6016805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610b8c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c3565b6001600160a01b038216610bed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cb15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c3565b6001600160a01b038216610d135760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c3565b5f8111610d745760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c3565b5f6001610d885f546001600160a01b031690565b6001600160a01b0316856001600160a01b031614158015610db657505f546001600160a01b03858116911614155b156111dd57610dee6064610de8601660149054906101000a900460ff16610ddf57600954610de1565b5f5b8690611517565b9061159c565b60065490925060ff1615610ea8576015546001600160a01b03858116911614801590610e2857506016546001600160a01b03858116911614155b15610ea857325f908152600560205260409020544311610e965760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104c3565b325f9081526005602052604090204390555b6016546001600160a01b038681169116148015610ed357506015546001600160a01b03858116911614155b8015610ef757506001600160a01b0384165f9081526003602052604090205460ff16155b1561103457601154831115610f4a5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c3565b60125483610f6c866001600160a01b03165f9081526001602052604090205490565b610f769190611978565b1115610fc45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c3565b600f546010541015610fdb57833b15610fdb575f5ffd5b60108054905f610fea8361198b565b90915550506001600160a01b0384165f908152600460205260409020429055600d5460105461103191606491610de8911061102757600954610de1565b600b548690611517565b91505b6016546001600160a01b03858116911614801561105a57506001600160a01b0385163014155b15611132576011548311156110ad5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c3565b6110d26064610de8600e54601054116110c857600a54610de1565b600c548690611517565b6001600160a01b0386165f9081526004602052604090205490925042148061110f57506001600160a01b0385165f90815260046020526040902054155b1561111757505f5b60085460ff16801561112a575043600754145b1561113257505f5b305f90815260016020526040902054601654600160a81b900460ff1615801561116857506016546001600160a01b038681169116145b801561117d5750601654600160b01b900460ff165b801561118a575060135481115b80156111995750600f54601054115b80156111a25750815b156111db576111c46111bf856111ba846014546115dd565b6115dd565b611353565b4780156111d9576111d4476114dc565b436007555b505b505b811561125557305f908152600160205260409020546111fc90836115f1565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061124c9086815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054611277908461164f565b6001600160a01b0386165f908152600160205260409020556112ba61129c848461164f565b6001600160a01b0386165f90815260016020526040902054906115f1565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611303868661164f565b60405190815260200160405180910390a35050505050565b5f818484111561133e5760405162461bcd60e51b81526004016104c391906116bc565b505f61134a84866119a3565b95945050505050565b6016805460ff60a81b1916600160a81b17905580156114cc57601654600160a01b900460ff16156114cc576040805160028082526060820183525f9260208301908036833701905050905030815f815181106113b1576113b16119b6565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611408573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142c9190611913565b8160018151811061143f5761143f6119b6565b6001600160a01b0392831660209182029290920101526015546114659130911684610b2a565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061149d9085905f908690309042906004016119ca565b5f604051808303815f87803b1580156114b4575f5ffd5b505af11580156114c6573d5f5f3e3d5ffd5b50505050505b506016805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610496573d5f5f3e3d5ffd5b5f825f0361152657505f6103b7565b5f61153183856118c7565b90508261153e8583611a3a565b146115955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c3565b9392505050565b5f61159583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611690565b5f8183116115eb5782611595565b50919050565b5f806115fd8385611978565b9050838110156115955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c3565b5f61159583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061131b565b5f81836116b05760405162461bcd60e51b81526004016104c391906116bc565b505f61134a8486611a3a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611705575f5ffd5b50565b5f5f60408385031215611719575f5ffd5b8235611724816116f1565b946020939093013593505050565b5f5f5f60608486031215611744575f5ffd5b833561174f816116f1565b9250602084013561175f816116f1565b929592945050506040919091013590565b5f60208284031215611780575f5ffd5b8135611595816116f1565b5f5f6040838503121561179c575f5ffd5b82356117a7816116f1565b915060208301356117b7816116f1565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611811578085048111156117f5576117f56117c2565b600184161561180357908102905b60019390931c9280026117da565b935093915050565b5f82611827575060016103b7565b8161183357505f6103b7565b816001811461184957600281146118535761186f565b60019150506103b7565b60ff841115611864576118646117c2565b50506001821b6103b7565b5060208310610133831016604e8410600b8410161715611892575081810a6103b7565b61189e5f1984846117d6565b805f19048211156118b1576118b16117c2565b029392505050565b5f61159560ff841683611819565b80820281158282048414176103b7576103b76117c2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611923575f5ffd5b8151611595816116f1565b5f5f5f60608486031215611940575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215611969575f5ffd5b81518015158114611595575f5ffd5b808201808211156103b7576103b76117c2565b5f6001820161199c5761199c6117c2565b5060010190565b818103818111156103b7576103b76117c2565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611a1a5783516001600160a01b03168352602093840193909201916001016119f3565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611a5457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209724e4f2d2fc45f2386c591de8d9e24b009d3c485d398c71fc41276eb42cc2db64736f6c634300081b0033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed14610319578063c7af2a9c1461032e578063c876d0b914610336578063c9567bf91461034f578063dd62ed3e14610363575f5ffd5b80637d1db4a51461027d5780638da5cb5b146102925780638f9a55c0146102b857806395d89b41146102cd578063a9059cbb146102fa575f5ffd5b8063313ce567116100e3578063313ce567146101f057806351bc3c851461020b57806370a0823114610221578063715018a614610255578063751039fc14610269575f5ffd5b806306fdde0314610129578063095ea7b31461016b5780630faee56f1461019a57806318160ddd146101bd57806323b872dd146101d1575f5ffd5b3661012557005b5f5ffd5b348015610134575f5ffd5b5060408051808201909152600881526747494741444f474560c01b60208201525b60405161016291906116bc565b60405180910390f35b348015610176575f5ffd5b5061018a610185366004611708565b6103a7565b6040519015158152602001610162565b3480156101a5575f5ffd5b506101af60145481565b604051908152602001610162565b3480156101c8575f5ffd5b506101af6103bd565b3480156101dc575f5ffd5b5061018a6101eb366004611732565b6103dd565b3480156101fb575f5ffd5b5060405160088152602001610162565b348015610216575f5ffd5b5061021f610444565b005b34801561022c575f5ffd5b506101af61023b366004611770565b6001600160a01b03165f9081526001602052604090205490565b348015610260575f5ffd5b5061021f61049a565b348015610274575f5ffd5b5061021f610514565b348015610288575f5ffd5b506101af60115481565b34801561029d575f5ffd5b505f546040516001600160a01b039091168152602001610162565b3480156102c3575f5ffd5b506101af60125481565b3480156102d8575f5ffd5b5060408051808201909152600581526447444f474560d81b6020820152610155565b348015610305575f5ffd5b5061018a610314366004611708565b6105cf565b348015610324575f5ffd5b506101af60135481565b61021f6105db565b348015610341575f5ffd5b5060065461018a9060ff1681565b34801561035a575f5ffd5b5061021f610ae8565b34801561036e575f5ffd5b506101af61037d36600461178b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103b3338484610b2a565b5060015b92915050565b5f6103ca6008600a6118b9565b6103d890631908b1006118c7565b905090565b5f6103e9848484610c4d565b61043a843361043585604051806060016040528060288152602001611a5a602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061131b565b610b2a565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b031614610468575f5ffd5b305f9081526001602052604090205480156104865761048681611353565b47801561049657610496816114dc565b5050565b5f546001600160a01b031633146104cc5760405162461bcd60e51b81526004016104c3906118de565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461053d5760405162461bcd60e51b81526004016104c3906118de565b6105496008600a6118b9565b61055790631908b1006118c7565b6011556105666008600a6118b9565b61057490631908b1006118c7565b6012556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ae6008600a6118b9565b6105bc90631908b1006118c7565b60405190815260200160405180910390a1565b5f6103b3338484610c4d565b5f546001600160a01b031633146106045760405162461bcd60e51b81526004016104c3906118de565b601654600160a01b900460ff161561065e5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c3565b601654600160b81b900460ff16156106ac5760405162461bcd60e51b8152602060048201526011602482015270131a5c5d5a591a5d1e4818dc99585d1959607a1b60448201526064016104c3565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106f59030906106e76008600a6118b9565b61043590631908b1006118c7565b6015546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa15801561073c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107609190611913565b9050806001600160a01b031663e6a439053060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e69190611913565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561082f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108539190611913565b601680546001600160a01b0319166001600160a01b0392909216918217905561098957806001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108fa9190611913565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610944573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109689190611913565b601680546001600160a01b0319166001600160a01b03929092169190911790555b6015546001600160a01b031663f305d71947306109ba816001600160a01b03165f9081526001602052604090205490565b5f5f6109cd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a33573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a58919061192e565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610aad573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad19190611959565b50506016805460ff60b81b1916600160b81b179055565b5f546001600160a01b03163314610b115760405162461bcd60e51b81526004016104c3906118de565b6016805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610b8c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c3565b6001600160a01b038216610bed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cb15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c3565b6001600160a01b038216610d135760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c3565b5f8111610d745760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c3565b5f6001610d885f546001600160a01b031690565b6001600160a01b0316856001600160a01b031614158015610db657505f546001600160a01b03858116911614155b156111dd57610dee6064610de8601660149054906101000a900460ff16610ddf57600954610de1565b5f5b8690611517565b9061159c565b60065490925060ff1615610ea8576015546001600160a01b03858116911614801590610e2857506016546001600160a01b03858116911614155b15610ea857325f908152600560205260409020544311610e965760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104c3565b325f9081526005602052604090204390555b6016546001600160a01b038681169116148015610ed357506015546001600160a01b03858116911614155b8015610ef757506001600160a01b0384165f9081526003602052604090205460ff16155b1561103457601154831115610f4a5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c3565b60125483610f6c866001600160a01b03165f9081526001602052604090205490565b610f769190611978565b1115610fc45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c3565b600f546010541015610fdb57833b15610fdb575f5ffd5b60108054905f610fea8361198b565b90915550506001600160a01b0384165f908152600460205260409020429055600d5460105461103191606491610de8911061102757600954610de1565b600b548690611517565b91505b6016546001600160a01b03858116911614801561105a57506001600160a01b0385163014155b15611132576011548311156110ad5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c3565b6110d26064610de8600e54601054116110c857600a54610de1565b600c548690611517565b6001600160a01b0386165f9081526004602052604090205490925042148061110f57506001600160a01b0385165f90815260046020526040902054155b1561111757505f5b60085460ff16801561112a575043600754145b1561113257505f5b305f90815260016020526040902054601654600160a81b900460ff1615801561116857506016546001600160a01b038681169116145b801561117d5750601654600160b01b900460ff165b801561118a575060135481115b80156111995750600f54601054115b80156111a25750815b156111db576111c46111bf856111ba846014546115dd565b6115dd565b611353565b4780156111d9576111d4476114dc565b436007555b505b505b811561125557305f908152600160205260409020546111fc90836115f1565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061124c9086815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054611277908461164f565b6001600160a01b0386165f908152600160205260409020556112ba61129c848461164f565b6001600160a01b0386165f90815260016020526040902054906115f1565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611303868661164f565b60405190815260200160405180910390a35050505050565b5f818484111561133e5760405162461bcd60e51b81526004016104c391906116bc565b505f61134a84866119a3565b95945050505050565b6016805460ff60a81b1916600160a81b17905580156114cc57601654600160a01b900460ff16156114cc576040805160028082526060820183525f9260208301908036833701905050905030815f815181106113b1576113b16119b6565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611408573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142c9190611913565b8160018151811061143f5761143f6119b6565b6001600160a01b0392831660209182029290920101526015546114659130911684610b2a565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061149d9085905f908690309042906004016119ca565b5f604051808303815f87803b1580156114b4575f5ffd5b505af11580156114c6573d5f5f3e3d5ffd5b50505050505b506016805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610496573d5f5f3e3d5ffd5b5f825f0361152657505f6103b7565b5f61153183856118c7565b90508261153e8583611a3a565b146115955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c3565b9392505050565b5f61159583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611690565b5f8183116115eb5782611595565b50919050565b5f806115fd8385611978565b9050838110156115955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c3565b5f61159583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061131b565b5f81836116b05760405162461bcd60e51b81526004016104c391906116bc565b505f61134a8486611a3a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611705575f5ffd5b50565b5f5f60408385031215611719575f5ffd5b8235611724816116f1565b946020939093013593505050565b5f5f5f60608486031215611744575f5ffd5b833561174f816116f1565b9250602084013561175f816116f1565b929592945050506040919091013590565b5f60208284031215611780575f5ffd5b8135611595816116f1565b5f5f6040838503121561179c575f5ffd5b82356117a7816116f1565b915060208301356117b7816116f1565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611811578085048111156117f5576117f56117c2565b600184161561180357908102905b60019390931c9280026117da565b935093915050565b5f82611827575060016103b7565b8161183357505f6103b7565b816001811461184957600281146118535761186f565b60019150506103b7565b60ff841115611864576118646117c2565b50506001821b6103b7565b5060208310610133831016604e8410600b8410161715611892575081810a6103b7565b61189e5f1984846117d6565b805f19048211156118b1576118b16117c2565b029392505050565b5f61159560ff841683611819565b80820281158282048414176103b7576103b76117c2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611923575f5ffd5b8151611595816116f1565b5f5f5f60608486031215611940575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215611969575f5ffd5b81518015158114611595575f5ffd5b808201808211156103b7576103b76117c2565b5f6001820161199c5761199c6117c2565b5060010190565b818103818111156103b7576103b76117c2565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611a1a5783516001600160a01b03168352602093840193909201916001016119f3565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611a5457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209724e4f2d2fc45f2386c591de8d9e24b009d3c485d398c71fc41276eb42cc2db64736f6c634300081b0033

Deployed Bytecode Sourcemap

3756:8991:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5791:83;;;;;;;;;;-1:-1:-1;5861:5:0;;;;;;;;;;;;-1:-1:-1;;;5861:5:0;;;;5791:83;;;;;;;:::i;:::-;;;;;;;;6615:161;;;;;;;;;;-1:-1:-1;6615:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;6615:161:0;945:187:1;5034:50:0;;;;;;;;;;;;;;;;;;;1283:25:1;;;1271:2;1256:18;5034:50:0;1137:177:1;6062:100:0;;;;;;;;;;;;;:::i;6782:313::-;;;;;;;;;;-1:-1:-1;6782:313:0;;;;;:::i;:::-;;:::i;5973:83::-;;;;;;;;;;-1:-1:-1;5973:83:0;;4656:1;1974:36:1;;1962:2;1947:18;5973:83:0;1832:184:1;12396:348:0;;;;;;;;;;;;;:::i;:::-;;6168:119;;;;;;;;;;-1:-1:-1;6168:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6261:18:0;6234:7;6261:18;;;:9;:18;;;;;;;6168:119;2753:148;;;;;;;;;;;;;:::i;10910:211::-;;;;;;;;;;;;;:::i;4847:55::-;;;;;;;;;;;;;;;;2543:79;;;;;;;;;;-1:-1:-1;2581:7:0;2608:6;2543:79;;-1:-1:-1;;;;;2608:6:0;;;2419:51:1;;2407:2;2392:18;2543:79:0;2273:203:1;4909:55:0;;;;;;;;;;;;;;;;5880:87;;;;;;;;;;-1:-1:-1;5952:7:0;;;;;;;;;;;;-1:-1:-1;;;5952:7:0;;;;5880:87;;6293:167;;;;;;;;;;-1:-1:-1;6293:167:0;;;;;:::i;:::-;;:::i;4971:56::-;;;;;;;;;;;;;;;;11227:809;;;:::i;4155:40::-;;;;;;;;;;-1:-1:-1;4155:40:0;;;;;;;;12042:112;;;;;;;;;;;;;:::i;6466:143::-;;;;;;;;;;-1:-1:-1;6466:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6574:18:0;;;6547:7;6574:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6466:143;6615:161;6690:4;6707:39;400:10;6730:7;6739:6;6707:8;:39::i;:::-;-1:-1:-1;6764:4:0;6615:161;;;;;:::o;6062:100::-;6115:7;4716:13;4656:1;4716:2;:13;:::i;:::-;4704:25;;:9;:25;:::i;:::-;6135:19;;6062:100;:::o;6782:313::-;6880:4;6897:36;6907:6;6915:9;6926:6;6897:9;:36::i;:::-;6944:121;6953:6;400:10;6975:89;7013:6;6975:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6975:19:0;;;;;;:11;:19;;;;;;;;400:10;6975:33;;;;;;;;;;:37;:89::i;:::-;6944:8;:121::i;:::-;-1:-1:-1;7083:4:0;6782:313;;;;;:::o;12396:348::-;12460:10;;;;;-1:-1:-1;;;;;12460:10:0;400;-1:-1:-1;;;;;12446:24:0;;12438:33;;;;;;12521:4;12482:20;6261:18;;;:9;:18;;;;;;12541:14;;12538:73;;12569:30;12586:12;12569:16;:30::i;:::-;12640:21;12675:12;;12672:65;;12701:24;12714:10;12701:12;:24::i;:::-;12427:317;;12396:348::o;2753:148::-;2668:6;;-1:-1:-1;;;;;2668:6:0;400:10;2668:22;2660:67;;;;-1:-1:-1;;;2660:67:0;;;;;;;:::i;:::-;;;;;;;;;2860:1:::1;2844:6:::0;;2823:40:::1;::::0;-1:-1:-1;;;;;2844:6:0;;::::1;::::0;2823:40:::1;::::0;2860:1;;2823:40:::1;2891:1;2874:19:::0;;-1:-1:-1;;;;;;2874:19:0::1;::::0;;2753:148::o;10910:211::-;2668:6;;-1:-1:-1;;;;;2668:6:0;400:10;2668:22;2660:67;;;;-1:-1:-1;;;2660:67:0;;;;;;;:::i;:::-;4716:13:::1;4656:1;4716:2;:13;:::i;:::-;4704:25;::::0;:9:::1;:25;:::i;:::-;10963:12;:27:::0;4716:13:::1;4656:1;4716:2;:13;:::i;:::-;4704:25;::::0;:9:::1;:25;:::i;:::-;11001:14;:27:::0;11039:20:::1;:26:::0;;-1:-1:-1;;11039:26:0::1;::::0;;11081:32:::1;4716:13;4656:1;4716:2;:13;:::i;:::-;4704:25;::::0;:9:::1;:25;:::i;:::-;11081:32;::::0;1283:25:1;;;1271:2;1256:18;11081:32:0::1;;;;;;;10910:211::o:0;6293:167::-;6371:4;6388:42;400:10;6412:9;6423:6;6388:9;:42::i;11227:809::-;2668:6;;-1:-1:-1;;;;;2668:6:0;400:10;2668:22;2660:67;;;;-1:-1:-1;;;2660:67:0;;;;;;;:::i;:::-;11301:12:::1;::::0;-1:-1:-1;;;11301:12:0;::::1;;;11300:13;11292:48;;;::::0;-1:-1:-1;;;11292:48:0;;5174:2:1;11292:48:0::1;::::0;::::1;5156:21:1::0;5213:2;5193:18;;;5186:30;5252:25;5232:18;;;5225:53;5295:18;;11292:48:0::1;4972:347:1::0;11292:48:0::1;11360:16;::::0;-1:-1:-1;;;11360:16:0;::::1;;;11359:17;11351:46;;;::::0;-1:-1:-1;;;11351:46:0;;5526:2:1;11351:46:0::1;::::0;::::1;5508:21:1::0;5565:2;5545:18;;;5538:30;-1:-1:-1;;;5584:18:1;;;5577:47;5641:18;;11351:46:0::1;5324:341:1::0;11351:46:0::1;11408:7;:72:::0;;-1:-1:-1;;;;;;11408:72:0::1;11437:42;11408:72:::0;;::::1;::::0;;;11491:55:::1;::::0;11508:4:::1;::::0;4716:13:::1;4656:1;4716:2;:13;:::i;:::-;4704:25;::::0;:9:::1;:25;:::i;11491:55::-;11601:7;::::0;:17:::1;::::0;;-1:-1:-1;;;11601:17:0;;;;11557:25:::1;::::0;-1:-1:-1;;;;;11601:7:0::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:7;:17:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11557:62;;11638:7;-1:-1:-1::0;;;;;11638:15:0::1;;11662:4;11668:7;;;;;;;;;-1:-1:-1::0;;;;;11668:7:0::1;-1:-1:-1::0;;;;;11668:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11638:45;::::0;-1:-1:-1;;;;;;11638:45:0::1;::::0;;;;;;-1:-1:-1;;;;;6118:32:1;;;11638:45:0::1;::::0;::::1;6100:51:1::0;6187:32;;6167:18;;;6160:60;6073:18;;11638:45:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11630:5;:53:::0;;-1:-1:-1;;;;;;11630:53:0::1;-1:-1:-1::0;;;;;11630:53:0;;;::::1;::::0;;::::1;::::0;;11694:105:::1;;11738:7;-1:-1:-1::0;;;;;11738:18:0::1;;11765:4;11772:7;;;;;;;;;-1:-1:-1::0;;;;;11772:7:0::1;-1:-1:-1::0;;;;;11772:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11738:49;::::0;-1:-1:-1;;;;;;11738:49:0::1;::::0;;;;;;-1:-1:-1;;;;;6118:32:1;;;11738:49:0::1;::::0;::::1;6100:51:1::0;6187:32;;6167:18;;;6160:60;6073:18;;11738:49:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11730:5;:57:::0;;-1:-1:-1;;;;;;11730:57:0::1;-1:-1:-1::0;;;;;11730:57:0;;;::::1;::::0;;;::::1;::::0;;11694:105:::1;11809:7;::::0;-1:-1:-1;;;;;11809:7:0::1;:23;11840:21;11871:4;11877:24;11871:4:::0;-1:-1:-1;;;;;6261:18:0;6234:7;6261:18;;;:9;:18;;;;;;;6168:119;11877:24:::1;11902:1;11904;11906:7;2581::::0;2608:6;-1:-1:-1;;;;;2608:6:0;;2543:79;11906:7:::1;11809:121;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11809:121:0;;;-1:-1:-1;;;;;6552:32:1;;;11809:121:0::1;::::0;::::1;6534:51:1::0;6601:18;;;6594:34;;;;6644:18;;;6637:34;;;;6687:18;;;6680:34;6751:32;;;6730:19;;;6723:61;11914:15:0::1;6800:19:1::0;;;6793:35;6506:19;;11809:121:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11948:5:0::1;::::0;11971:7:::1;::::0;11941:55:::1;::::0;-1:-1:-1;;;11941:55:0;;-1:-1:-1;;;;;11971:7:0;;::::1;11941:55;::::0;::::1;7474:51:1::0;-1:-1:-1;;7541:18:1;;;7534:34;11948:5:0;::::1;::::0;-1:-1:-1;11941:21:0::1;::::0;7447:18:1;;11941:55:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12007:16:0::1;:21:::0;;-1:-1:-1;;;;12007:21:0::1;-1:-1:-1::0;;;12007:21:0::1;::::0;;11227:809::o;12042:112::-;2668:6;;-1:-1:-1;;;;;2668:6:0;400:10;2668:22;2660:67;;;;-1:-1:-1;;;2660:67:0;;;;;;;:::i;:::-;12097:12:::1;:19:::0;;-1:-1:-1;;;;12127:19:0;-1:-1:-1;;;12127:19:0;;;12042:112::o;7101:335::-;-1:-1:-1;;;;;7194:19:0;;7186:68;;;;-1:-1:-1;;;7186:68:0;;8063:2:1;7186:68:0;;;8045:21:1;8102:2;8082:18;;;8075:30;8141:34;8121:18;;;8114:62;-1:-1:-1;;;8192:18:1;;;8185:34;8236:19;;7186:68:0;7861:400:1;7186:68:0;-1:-1:-1;;;;;7273:21:0;;7265:68;;;;-1:-1:-1;;;7265:68:0;;8468:2:1;7265:68:0;;;8450:21:1;8507:2;8487:18;;;8480:30;8546:34;8526:18;;;8519:62;-1:-1:-1;;;8597:18:1;;;8590:32;8639:19;;7265:68:0;8266:398:1;7265:68:0;-1:-1:-1;;;;;7344:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7396:32;;1283:25:1;;;7396:32:0;;1256:18:1;7396:32:0;;;;;;;7101:335;;;:::o;7442:2818::-;-1:-1:-1;;;;;7530:18:0;;7522:68;;;;-1:-1:-1;;;7522:68:0;;8871:2:1;7522:68:0;;;8853:21:1;8910:2;8890:18;;;8883:30;8949:34;8929:18;;;8922:62;-1:-1:-1;;;9000:18:1;;;8993:35;9045:19;;7522:68:0;8669:401:1;7522:68:0;-1:-1:-1;;;;;7609:16:0;;7601:64;;;;-1:-1:-1;;;7601:64:0;;9277:2:1;7601:64:0;;;9259:21:1;9316:2;9296:18;;;9289:30;9355:34;9335:18;;;9328:62;-1:-1:-1;;;9406:18:1;;;9399:33;9449:19;;7601:64:0;9075:399:1;7601:64:0;7693:1;7684:6;:10;7676:64;;;;-1:-1:-1;;;7676:64:0;;9681:2:1;7676:64:0;;;9663:21:1;9720:2;9700:18;;;9693:30;9759:34;9739:18;;;9732:62;-1:-1:-1;;;9810:18:1;;;9803:39;9859:19;;7676:64:0;9479:405:1;7676:64:0;7751:17;7797:4;7824:7;2581;2608:6;-1:-1:-1;;;;;2608:6:0;;2543:79;7824:7;-1:-1:-1;;;;;7816:15:0;:4;-1:-1:-1;;;;;7816:15:0;;;:32;;;;-1:-1:-1;2581:7:0;2608:6;-1:-1:-1;;;;;7835:13:0;;;2608:6;;7835:13;;7816:32;7812:2094;;;7875:50;7921:3;7875:41;7887:12;;;;;;;;;;;7886:29;;7903:12;;7886:29;;;7901:1;7886:29;7875:6;;:10;:41::i;:::-;:45;;:50::i;:::-;7944:20;;7865:60;;-1:-1:-1;7944:20:0;;7940:322;;;8001:7;;-1:-1:-1;;;;;7987:22:0;;;8001:7;;7987:22;;;;:46;;-1:-1:-1;8027:5:0;;-1:-1:-1;;;;;8013:20:0;;;8027:5;;8013:20;;7987:46;7983:264;;;8091:9;8062:39;;;;:28;:39;;;;;;8104:12;-1:-1:-1;8054:102:0;;;;-1:-1:-1;;;8054:102:0;;10091:2:1;8054:102:0;;;10073:21:1;10130:2;10110:18;;;10103:30;10169:34;10149:18;;;10142:62;-1:-1:-1;;;10220:18:1;;;10213:34;10264:19;;8054:102:0;9889:400:1;8054:102:0;8204:9;8175:39;;;;:28;:39;;;;;8217:12;8175:54;;7983:264;8290:5;;-1:-1:-1;;;;;8282:13:0;;;8290:5;;8282:13;:39;;;;-1:-1:-1;8313:7:0;;-1:-1:-1;;;;;8299:22:0;;;8313:7;;8299:22;;8282:39;:67;;;;-1:-1:-1;;;;;;8327:22:0;;;;;;:18;:22;;;;;;;;8325:24;8282:67;8278:560;;;8389:12;;8379:6;:22;;8371:60;;;;-1:-1:-1;;;8371:60:0;;10496:2:1;8371:60:0;;;10478:21:1;10535:2;10515:18;;;10508:30;-1:-1:-1;;;10554:18:1;;;10547:55;10619:18;;8371:60:0;10294:349:1;8371:60:0;8484:14;;8474:6;8458:13;8468:2;-1:-1:-1;;;;;6261:18:0;6234:7;6261:18;;;:9;:18;;;;;;;6168:119;8458:13;:22;;;;:::i;:::-;:40;;8450:79;;;;-1:-1:-1;;;8450:79:0;;10980:2:1;8450:79:0;;;10962:21:1;11019:2;10999:18;;;10992:30;11058:28;11038:18;;;11031:56;11104:18;;8450:79:0;10778:350:1;8450:79:0;8561:13;;8551:9;;:23;8548:92;;;12326:20;;12374:8;8596:24;;;;;;8658:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8688:13:0;;;;;;:9;:13;;;;;8702:15;8688:29;;8770:15;;8760:9;;8748:74;;8818:3;;8748:65;;-1:-1:-1;8759:53:0;;8800:12;;8759:53;;;8787:12;;8748:6;;:10;:65::i;:74::-;8736:86;;8278:560;8861:5;;-1:-1:-1;;;;;8855:11:0;;;8861:5;;8855:11;:35;;;;-1:-1:-1;;;;;;8870:20:0;;8885:4;8870:20;;8855:35;8852:492;;;8929:12;;8919:6;:22;;8911:60;;;;-1:-1:-1;;;8911:60:0;;10496:2:1;8911:60:0;;;10478:21:1;10535:2;10515:18;;;10508:30;-1:-1:-1;;;10554:18:1;;;10547:55;10619:18;;8911:60:0;10294:349:1;8911:60:0;9002:77;9075:3;9002:68;9024:16;;9014:9;;:26;9013:56;;9056:13;;9013:56;;;9042:13;;9002:6;;:10;:68::i;:77::-;-1:-1:-1;;;;;9101:15:0;;;;;;:9;:15;;;;;;8990:89;;-1:-1:-1;9118:15:0;9101:32;;:52;;-1:-1:-1;;;;;;9135:15:0;;;;;;:9;:15;;;;;;:18;9101:52;9098:113;;;-1:-1:-1;9186:5:0;9098:113;9232:13;;;;:39;;;;;9259:12;9248:9;;:23;9232:39;9229:100;;;-1:-1:-1;9304:5:0;9229:100;9407:4;9358:28;6261:18;;;:9;:18;;;;;;9433:7;;-1:-1:-1;;;9433:7:0;;;;9432:8;:23;;;;-1:-1:-1;9450:5:0;;-1:-1:-1;;;;;9444:11:0;;;9450:5;;9444:11;9432:23;:39;;;;-1:-1:-1;9459:12:0;;-1:-1:-1;;;9459:12:0;;;;9432:39;:81;;;;;9496:17;;9475:20;:38;9432:81;:108;;;;;9527:13;;9517:9;;:23;9432:108;:122;;;;;9544:10;9432:122;9428:467;;;9575:67;9592:49;9596:6;9603:37;9607:20;9628:11;;9603:3;:37::i;:::-;9592:3;:49::i;:::-;9575:16;:67::i;:::-;9690:21;9733:22;;9730:150;;9780:35;9793:21;9780:12;:35::i;:::-;9848:12;9838:9;:22;9730:150;9556:339;9428:467;7850:2056;7812:2094;9919:11;;9916:161;;9987:4;9969:24;;;;:9;:24;;;;;;:39;;9998:9;9969:28;:39::i;:::-;9962:4;9944:24;;;;:9;:24;;;;;;;:64;;;;10026:39;;-1:-1:-1;;;;;10026:39:0;;;;;;;10055:9;1283:25:1;;1271:2;1256:18;;1137:177;10026:39:0;;;;;;;;9916:161;-1:-1:-1;;;;;10103:15:0;;;;;;:9;:15;;;;;;:27;;10123:6;10103:19;:27::i;:::-;-1:-1:-1;;;;;10087:15:0;;;;;;:9;:15;;;;;:43;10155:40;10173:21;:6;10184:9;10173:10;:21::i;:::-;-1:-1:-1;;;;;10155:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10141:13:0;;;;;;;:9;:13;;;;;:54;;;;10211:41;;;10230:21;:6;10241:9;10230:10;:21::i;:::-;10211:41;;1283:25:1;;;1271:2;1256:18;10211:41:0;;;;;;;7511:2749;;7442:2818;;;:::o;1449:190::-;1535:7;1571:12;1563:6;;;;1555:29;;;;-1:-1:-1;;;1555:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1595:9:0;1607:5;1611:1;1607;:5;:::i;:::-;1595:17;1449:190;-1:-1:-1;;;;;1449:190:0:o;10372:532::-;5392:7;:14;;-1:-1:-1;;;;5392:14:0;-1:-1:-1;;;5392:14:0;;;10450:27;;10469:7:::1;10450:27;10491:12;::::0;-1:-1:-1;;;10491:12:0;::::1;;;10487:26:::0;10505:7:::1;10487:26;10547:16;::::0;;10561:1:::1;10547:16:::0;;;;;::::1;::::0;;10523:21:::1;::::0;10547:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10547:16:0::1;10523:40;;10592:4;10574;10579:1;10574:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10574:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10618:7:::1;::::0;:14:::1;::::0;;-1:-1:-1;;;10618:14:0;;;;:7;;;::::1;::::0;:12:::1;::::0;:14:::1;::::0;;::::1;::::0;10574:7;;10618:14;;;;;:7;:14:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10608:4;10613:1;10608:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10608:24:0;;::::1;:7;::::0;;::::1;::::0;;;;;:24;10675:7:::1;::::0;10643:54:::1;::::0;10660:4:::1;::::0;10675:7:::1;10685:11:::0;10643:8:::1;:54::i;:::-;10708:7;::::0;:188:::1;::::0;-1:-1:-1;;;10708:188:0;;-1:-1:-1;;;;;10708:7:0;;::::1;::::0;:58:::1;::::0;:188:::1;::::0;10781:11;;10708:7:::1;::::0;10823:4;;10850::::1;::::0;10870:15:::1;::::0;10708:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10439:465;5417:1;-1:-1:-1::0;5429:7:0;:15;;-1:-1:-1;;;;5429:15:0;;;10372:532::o;11127:92::-;11184:10;;:27;;:10;;;;-1:-1:-1;;;;;11184:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1645:246;1703:7;1727:1;1732;1727:6;1723:47;;-1:-1:-1;1757:1:0;1750:8;;1723:47;1780:9;1792:5;1796:1;1792;:5;:::i;:::-;1780:17;-1:-1:-1;1825:1:0;1816:5;1820:1;1780:17;1816:5;:::i;:::-;:10;1808:56;;;;-1:-1:-1;;;1808:56:0;;13058:2:1;1808:56:0;;;13040:21:1;13097:2;13077:18;;;13070:30;13136:34;13116:18;;;13109:62;-1:-1:-1;;;13187:18:1;;;13180:31;13228:19;;1808:56:0;12856:397:1;1808:56:0;1882:1;1645:246;-1:-1:-1;;;1645:246:0:o;1897:132::-;1955:7;1982:39;1986:1;1989;1982:39;;;;;;;;;;;;;;;;;:3;:39::i;10268:98::-;10325:7;10352:1;10350;:3;10349:9;;10357:1;10349:9;;;-1:-1:-1;10355:1:0;10268:98;-1:-1:-1;10268:98:0:o;1122:179::-;1180:7;;1212:5;1216:1;1212;:5;:::i;:::-;1200:17;;1241:1;1236;:6;;1228:46;;;;-1:-1:-1;;;1228:46:0;;13460:2:1;1228:46:0;;;13442:21:1;13499:2;13479:18;;;13472:30;13538:29;13518:18;;;13511:57;13585:18;;1228:46:0;13258:351:1;1307:136:0;1365:7;1392:43;1396:1;1399;1392:43;;;;;;;;;;;;;;;;;:3;:43::i;2035:189::-;2121:7;2156:12;2149:5;2141:28;;;;-1:-1:-1;;;2141:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2180:9:0;2192:5;2196:1;2192;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;492:70;437:131;:::o;573:367::-;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:247::-;2080:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:52;;;2149:1;2146;2139:12;2101:52;2188:9;2175:23;2207:31;2232:5;2207:31;:::i;2481:388::-;2549:6;2557;2610:2;2598:9;2589:7;2585:23;2581:32;2578:52;;;2626:1;2623;2616:12;2578:52;2665:9;2652:23;2684:31;2709:5;2684:31;:::i;:::-;2734:5;-1:-1:-1;2791:2:1;2776:18;;2763:32;2804:33;2763:32;2804:33;:::i;:::-;2856:7;2846:17;;;2481:388;;;;;:::o;2874:127::-;2935:10;2930:3;2926:20;2923:1;2916:31;2966:4;2963:1;2956:15;2990:4;2987:1;2980:15;3006:375;3094:1;3112:5;3126:249;3147:1;3137:8;3134:15;3126:249;;;3197:4;3192:3;3188:14;3182:4;3179:24;3176:50;;;3206:18;;:::i;:::-;3256:1;3246:8;3242:16;3239:49;;;3270:16;;;;3239:49;3353:1;3349:16;;;;;3309:15;;3126:249;;;3006:375;;;;;;:::o;3386:902::-;3435:5;3465:8;3455:80;;-1:-1:-1;3506:1:1;3520:5;;3455:80;3554:4;3544:76;;-1:-1:-1;3591:1:1;3605:5;;3544:76;3636:4;3654:1;3649:59;;;;3722:1;3717:174;;;;3629:262;;3649:59;3679:1;3670:10;;3693:5;;;3717:174;3754:3;3744:8;3741:17;3738:43;;;3761:18;;:::i;:::-;-1:-1:-1;;3817:1:1;3803:16;;3876:5;;3629:262;;3975:2;3965:8;3962:16;3956:3;3950:4;3947:13;3943:36;3937:2;3927:8;3924:16;3919:2;3913:4;3910:12;3906:35;3903:77;3900:203;;;-1:-1:-1;4012:19:1;;;4088:5;;3900:203;4135:42;-1:-1:-1;;4160:8:1;4154:4;4135:42;:::i;:::-;4213:6;4209:1;4205:6;4201:19;4192:7;4189:32;4186:58;;;4224:18;;:::i;:::-;4262:20;;3386:902;-1:-1:-1;;;3386:902:1:o;4293:140::-;4351:5;4380:47;4421:4;4411:8;4407:19;4401:4;4380:47;:::i;4438:168::-;4511:9;;;4542;;4559:15;;;4553:22;;4539:37;4529:71;;4580:18;;:::i;4611:356::-;4813:2;4795:21;;;4832:18;;;4825:30;4891:34;4886:2;4871:18;;4864:62;4958:2;4943:18;;4611: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;6839:456::-;6927:6;6935;6943;6996:2;6984:9;6975:7;6971:23;6967:32;6964:52;;;7012:1;7009;7002:12;6964:52;-1:-1:-1;;7057:16:1;;7163:2;7148:18;;7142:25;7259:2;7244:18;;;7238:25;7057:16;;7142:25;;-1:-1:-1;7238:25:1;6839:456;-1:-1:-1;6839:456:1:o;7579:277::-;7646:6;7699:2;7687:9;7678:7;7674:23;7670:32;7667:52;;;7715:1;7712;7705:12;7667:52;7747:9;7741:16;7800:5;7793:13;7786:21;7779:5;7776:32;7766:60;;7822:1;7819;7812:12;10648:125;10713:9;;;10734:10;;;10731:36;;;10747:18;;:::i;11133:135::-;11172:3;11193:17;;;11190:43;;11213:18;;:::i;:::-;-1:-1:-1;11260:1:1;11249:13;;11133:135::o;11273:128::-;11340:9;;;11361:11;;;11358:37;;;11375:18;;:::i;11538:127::-;11599:10;11594:3;11590:20;11587:1;11580:31;11630:4;11627:1;11620:15;11654:4;11651:1;11644:15;11670:959;11932:4;11980:3;11969:9;11965:19;12011:6;12000:9;11993:25;12054:6;12049:2;12038:9;12034:18;12027:34;12097:3;12092:2;12081:9;12077:18;12070:31;12121:6;12156;12150:13;12187:6;12179;12172:22;12225:3;12214:9;12210:19;12203:26;;12264:2;12256:6;12252:15;12238:29;;12285:1;12295:195;12309:6;12306:1;12303:13;12295:195;;;12374:13;;-1:-1:-1;;;;;12370:39:1;12358:52;;12439:2;12465:15;;;;12430:12;;;;12406:1;12324:9;12295:195;;;-1:-1:-1;;;;;;;12546:32:1;;;;12541:2;12526:18;;12519:60;-1:-1:-1;;12610:3:1;12595:19;12588:35;12507:3;11670:959;-1:-1:-1;;;11670:959:1:o;12634:217::-;12674:1;12700;12690:132;;12744:10;12739:3;12735:20;12732:1;12725:31;12779:4;12776:1;12769:15;12807:4;12804:1;12797:15;12690:132;-1:-1:-1;12836:9:1;;12634:217::o

Swarm Source

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