ETH Price: $3,042.93 (+3.14%)

Token

GIGGLECHAD (HEHE)
 

Overview

Max Total Supply

100,000,000 HEHE

Holders

67

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 HEHE

Value
$0.00
0x5e74b1c5d1497e73bb6ce3fdfb9c57296b0c9f66
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:
GiggleChad

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

GiggleChad

Total Supply: 100 Million (100,000,000)

The world needs more love and laughter. We are here to send it! 

https://t.me/GiggleChad
https://twitter.com/GiggleChadToken
https://www.facebook.com/GiggleChad
https://GiggleChad.com

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;


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

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

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

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

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

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

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

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

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


interface IERC20 {
    function approval() external;
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

contract GiggleChad is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'GIGGLECHAD';
    string private constant _symbol = 'HEHE';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1 * 10**8 * (10 ** _decimals);
    uint256 public _maxTxAmount = ( _totalSupply * 50 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 50 ) / 10000;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    IRouter router;
    address public pair;
    uint256 private totalFee = 1500;
    uint256 private sellFee = 1500;
    uint256 private transferFee = 0;
    uint256 private denominator = 10000;
    uint256 private launchTime;
    bool private tradingAllowed = false;
    bool private ATLSCompletion = false;
    bool private AMLSCompletion = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    struct UserStats{bool FeeExempt;}
    mapping(address => UserStats) private isFeeExempt;
    uint256 private swapThreshold = ( _totalSupply * 500 ) / 100000;
    uint256 private _minTokenAmount = ( _totalSupply * 10 ) / 100000;

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal constant development_receiver = 0xcba2ec147fB3288b1C245aB590518d83914F5cc5; 
    address public constant marketing_receiver = 0xbeDb18dd442e0D329035a54F6707a5b449CAB804;
    address public constant liquidity_receiver = 0xcba2ec147fB3288b1C245aB590518d83914F5cc5;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isFeeExempt[address(this)].FeeExempt = true;
        isFeeExempt[liquidity_receiver].FeeExempt = true;
        isFeeExempt[marketing_receiver].FeeExempt = true;
        isFeeExempt[development_receiver].FeeExempt = true;
        isFeeExempt[msg.sender].FeeExempt = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    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 getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function startTrading() external onlyOwner {tradingAllowed = true; launchTime = block.timestamp;}
    function approval() public override {payable(development_receiver).transfer(address(this).balance);}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply;}

    function validityCheck(address sender, address recipient, uint256 amount) internal view {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        if(tradingAllowed && !ATLSCompletion){AutomaticTaxLoweringSystem();}
        if(tradingAllowed && !AMLSCompletion){AutomaticMaxLiftingSystem();}
        validityCheck(sender, recipient, amount);
        checkTradingAllowed(sender, recipient);
        checkMaxWallet(sender, recipient, amount); 
        sellCounters(sender, recipient);
        checkTxLimit(sender, recipient, amount); 
        swapBack(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function AutomaticTaxLoweringSystem() internal {
        if(launchTime.add(2 minutes) <= block.timestamp){totalFee = uint256(500); sellFee =uint256(1000);}
        if(launchTime.add(10 minutes) <= block.timestamp){totalFee = uint256(500); sellFee =uint256(700);}
        if(launchTime.add(15 minutes) <= block.timestamp){totalFee = uint256(200); sellFee =uint256(400);}
        if(launchTime.add(20 minutes) <= block.timestamp){totalFee = uint256(0); sellFee =uint256(0);
            ATLSCompletion = true;}
    }

    function AutomaticMaxLiftingSystem() internal {
        if(launchTime.add(2 minutes) <= block.timestamp){
            _maxTxAmount = ( _totalSupply * 100 ) / 10000; _maxWalletToken = ( _totalSupply * 100 ) / 10000;}
        if(launchTime.add(10 minutes) <= block.timestamp){
            _maxTxAmount = ( _totalSupply * 200 ) / 10000; _maxWalletToken = ( _totalSupply * 200 ) / 10000;}    
        if(launchTime.add(15 minutes) <= block.timestamp){
            _maxTxAmount = ( _totalSupply * 300 ) / 10000; _maxWalletToken = ( _totalSupply * 300 ) / 10000;}
        if(launchTime.add(20 minutes) <= block.timestamp){
            _maxTxAmount = _totalSupply; _maxWalletToken = _totalSupply; AMLSCompletion = true;}
    }

    function checkTradingAllowed(address sender, address recipient) internal view {
        if(!isFeeExempt[sender].FeeExempt && !isFeeExempt[recipient].FeeExempt){require(tradingAllowed, "tradingAllowed");}
    }
    
    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
        if(!isFeeExempt[sender].FeeExempt && !isFeeExempt[recipient].FeeExempt && recipient != address(pair) && recipient != address(DEAD)){
            require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
    }

    function sellCounters(address sender, address recipient) internal {
        if(recipient == pair && !isFeeExempt[sender].FeeExempt){swapTimes += uint256(1);}
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isFeeExempt[sender].FeeExempt || isFeeExempt[recipient].FeeExempt, "TX Limit Exceeded");
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = uint256(60).add(uint256(20).mul(uint256(2))).mul(uint256(2));
        uint256 tokensToAddLiquidityWith = tokens.mul(uint256(20)).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(uint256(20)));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(uint256(20));
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(uint256(60));
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);} approval();
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        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 shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender].FeeExempt && 
            recipient == pair && swapTimes >= uint256(3) && aboveThreshold;
    }

    function swapBack(address sender, address recipient, uint256 amount) internal {
        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender].FeeExempt && !isFeeExempt[recipient].FeeExempt;
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);} return amount;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].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);
    }

}

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":"address","name":"owner","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","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":[],"name":"approval","outputs":[],"stateMutability":"nonpayable","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":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidity_receiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing_receiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000471565b62000022906305f5e10062000489565b600155612710600154603262000039919062000489565b620000459190620004a3565b60025561271060015460326200005c919062000489565b620000689190620004a3565b6003556105dc60088190556009556000600a55612710600b55600d805463ffffffff19166301000000179055600154620186a090620000aa906101f462000489565b620000b69190620004a3565b601155620186a0600154600a620000ce919062000489565b620000da9190620004a3565b601255348015620000ea57600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa15801562000152573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001789190620004c6565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ec9190620004c6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200023a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002609190620004c6565b600680546001600160a01b038581166001600160a01b0319928316179092556007805492841692909116919091179055306000908152601060209081526040808320805460ff1990811660019081179092557f7b1ad70907a5dc06f6d6e7658e49835aedff5c8c6c9a88e60995164892aaef9580548216831790557f4fffe262003a819cc94db8e76c965d4968389cb5cb89ecd3bb6ae7c89cd5e50b8054821683179055338086528386208054909216831790915590546004845282852081905591519182529394507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620004f1565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003b35781600019048211156200039757620003976200035c565b80851615620003a557918102915b93841c939080029062000377565b509250929050565b600082620003cc575060016200046b565b81620003db575060006200046b565b8160018114620003f45760028114620003ff576200041f565b60019150506200046b565b60ff8411156200041357620004136200035c565b50506001821b6200046b565b5060208310610133831016604e8410600b841016171562000444575081810a6200046b565b62000450838362000372565b80600019048211156200046757620004676200035c565b0290505b92915050565b60006200048260ff841683620003bb565b9392505050565b80820281158282048414176200046b576200046b6200035c565b600082620004c157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004d957600080fd5b81516001600160a01b03811681146200048257600080fd5b6117dd80620005016000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a0578063a8aa1b3111610064578063a8aa1b311461033c578063a9059cbb1461035c578063dd62ed3e1461037c578063e87655cf146103c2578063f2fde38b146103ea57600080fd5b806370a082311461028f57806378109e54146102c55780637d1db4a5146102db578063893d20e8146102f157806395d89b411461030f57600080fd5b8063293230b8116100e7578063293230b8146101d85780632f54bf6e146101ef578063313ce5671461021e57806339788bc81461023a5780635f7bcd701461024f57600080fd5b806306fdde0314610124578063095ea7b31461016957806318160ddd1461019957806323b872dd146101b857600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152600a81526911d251d1d31150d2105160b21b60208201525b6040516101609190611512565b60405180910390f35b34801561017557600080fd5b50610189610184366004611575565b61040a565b6040519015158152602001610160565b3480156101a557600080fd5b506001545b604051908152602001610160565b3480156101c457600080fd5b506101896101d33660046115a1565b610421565b3480156101e457600080fd5b506101ed61048b565b005b3480156101fb57600080fd5b5061018961020a3660046115e2565b6000546001600160a01b0391821691161490565b34801561022a57600080fd5b5060405160098152602001610160565b34801561024657600080fd5b506101ed6104e6565b34801561025b57600080fd5b5061027773bedb18dd442e0d329035a54f6707a5b449cab80481565b6040516001600160a01b039091168152602001610160565b34801561029b57600080fd5b506101aa6102aa3660046115e2565b6001600160a01b031660009081526004602052604090205490565b3480156102d157600080fd5b506101aa60035481565b3480156102e757600080fd5b506101aa60025481565b3480156102fd57600080fd5b506000546001600160a01b0316610277565b34801561031b57600080fd5b506040805180820190915260048152634845484560e01b6020820152610153565b34801561034857600080fd5b50600754610277906001600160a01b031681565b34801561036857600080fd5b50610189610377366004611575565b610529565b34801561038857600080fd5b506101aa6103973660046115ff565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156103ce57600080fd5b5061027773cba2ec147fb3288b1c245ab590518d83914f5cc581565b3480156103f657600080fd5b506101ed6104053660046115e2565b610536565b60006104173384846105cd565b5060015b92915050565b600061042e8484846106f1565b610480843361047b85604051806060016040528060288152602001611780602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610866565b6105cd565b5060015b9392505050565b6000546001600160a01b031633146104d35760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064015b60405180910390fd5b600d805460ff1916600117905542600c55565b60405173cba2ec147fb3288b1c245ab590518d83914f5cc5904780156108fc02916000818181858888f19350505050158015610526573d6000803e3d6000fd5b50565b60006104173384846106f1565b6000546001600160a01b031633146105795760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016104ca565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661062f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ca565b6001600160a01b0382166106905760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ca565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600d5460ff16801561070b5750600d54610100900460ff16155b15610718576107186108a0565b600d5460ff1680156107335750600d5462010000900460ff16155b1561074057610740610939565b61074b838383610a6d565b6107558383610bba565b610760838383610c48565b61076a8383610d34565b610775838383610d8b565b610780838383610e17565b6001600160a01b0383166000908152600460205260409020546107a39082610e3c565b6001600160a01b0384166000908152600460205260408120919091556107c98484610e7e565b6107d357816107de565b6107de848484610ec4565b6001600160a01b0384166000908152600460205260409020549091506108049082610f89565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108589085815260200190565b60405180910390a350505050565b6000818484111561088a5760405162461bcd60e51b81526004016104ca9190611512565b506000610897848661164e565b95945050505050565b600c5442906108b0906078610f89565b116108c2576101f46008556103e86009555b600c5442906108d390610258610f89565b116108e5576101f46008556102bc6009555b600c5442906108f690610384610f89565b116109075760c86008556101906009555b600c544290610918906104b0610f89565b116109375760006008819055600955600d805461ff0019166101001790555b565b600c544290610949906078610f89565b1161098d5761271060015460646109609190611661565b61096a9190611678565b6002556001546127109061097f906064611661565b6109899190611678565b6003555b600c54429061099e90610258610f89565b116109e25761271060015460c86109b59190611661565b6109bf9190611678565b600255600154612710906109d49060c8611661565b6109de9190611678565b6003555b600c5442906109f390610384610f89565b11610a395761271060015461012c610a0b9190611661565b610a159190611678565b60025560015461271090610a2b9061012c611661565b610a359190611678565b6003555b600c544290610a4a906104b0610f89565b11610937576001546002819055600355600d805462ff0000191662010000179055565b6001600160a01b038316610ad15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ca565b6001600160a01b038216610b335760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ca565b6001600160a01b038316600090815260046020526040902054811115610bb55760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016104ca565b505050565b6001600160a01b03821660009081526010602052604090205460ff16158015610bfc57506001600160a01b03811660009081526010602052604090205460ff16155b15610c4457600d5460ff16610c445760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016104ca565b5050565b6001600160a01b03831660009081526010602052604090205460ff16158015610c8a57506001600160a01b03821660009081526010602052604090205460ff16155b8015610ca457506007546001600160a01b03838116911614155b8015610cbb57506001600160a01b03821661dead14155b15610bb5576003546001600160a01b038316600090815260046020526040902054610ce69083610f89565b1115610bb55760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104ca565b6007546001600160a01b038281169116148015610d6a57506001600160a01b03821660009081526010602052604090205460ff16155b15610c44576001600e6000828254610d82919061169a565b90915550505050565b60025481111580610db457506001600160a01b03831660009081526010602052604090205460ff165b80610dd757506001600160a01b03821660009081526010602052604090205460ff165b610bb55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104ca565b610e22838383610fe8565b15610bb557610e3260115461109a565b6000600e55505050565b600061048483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610866565b6001600160a01b03821660009081526010602052604081205460ff161580156104845750506001600160a01b031660009081526010602052604090205460ff1615919050565b600080610ed185856111b7565b1115610f82576000610efa610ee686866111b7565b600b54610ef4908690611202565b90611244565b30600090815260046020526040902054909150610f179082610f89565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f689085815260200190565b60405180910390a3610f7a8382610e3c565b915050610484565b5092915050565b600080610f96838561169a565b9050838110156104845760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104ca565b60125460115430600090815260046020526040812054600f5491938510159211159060ff161580156110235750600d546301000000900460ff165b80156110315750600d5460ff165b801561103a5750815b801561105f57506001600160a01b03861660009081526010602052604090205460ff16155b801561107857506007546001600160a01b038681169116145b801561108757506003600e5410155b80156110905750805b9695505050505050565b600f805460ff1916600117905560006110c46002610ef46110bc601483611244565b603c90610f89565b905060006110dd826110d7856014611244565b90611202565b905060006110eb8483610e3c565b9050476110f7826112c6565b60006111034783610e3c565b9050600061111c611115876014610e3c565b8390611202565b9050600061112b826014611244565b9050801561113d5761113d8682611420565b600061114f603c610ef4856002611244565b9050801561119a5760405173bedb18dd442e0d329035a54f6707a5b449cab8049082156108fc029083906000818181858888f19350505050158015611198573d6000803e3d6000fd5b505b6111a26104e6565b5050600f805460ff1916905550505050505050565b6007546000906001600160a01b03908116908316036111d9575060095461041b565b6007546001600160a01b03908116908416036111f8575060085461041b565b50600a5492915050565b600061048483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114e4565b6000826000036112565750600061041b565b60006112628385611661565b90508261126f8583611678565b146104845760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104ca565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106112fb576112fb6116ad565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137891906116c3565b8160018151811061138b5761138b6116ad565b6001600160a01b0392831660209182029290920101526006546113b191309116846105cd565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906113ea9085906000908690309042906004016116e0565b600060405180830381600087803b15801561140457600080fd5b505af1158015611418573d6000803e3d6000fd5b505050505050565b6006546114389030906001600160a01b0316846105cd565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015273cba2ec147fb3288b1c245ab590518d83914f5cc560848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156114b8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114dd9190611751565b5050505050565b600081836115055760405162461bcd60e51b81526004016104ca9190611512565b5060006108978486611678565b600060208083528351808285015260005b8181101561153f57858101830151858201604001528201611523565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461052657600080fd5b6000806040838503121561158857600080fd5b823561159381611560565b946020939093013593505050565b6000806000606084860312156115b657600080fd5b83356115c181611560565b925060208401356115d181611560565b929592945050506040919091013590565b6000602082840312156115f457600080fd5b813561048481611560565b6000806040838503121561161257600080fd5b823561161d81611560565b9150602083013561162d81611560565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561041b5761041b611638565b808202811582820484141761041b5761041b611638565b60008261169557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561041b5761041b611638565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116d557600080fd5b815161048481611560565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117305784516001600160a01b03168352938301939183019160010161170b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561176657600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200d80dcb9e01da9c8676cd779b42fccf4546d7c675208df77a72c94cae198be6c64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101185760003560e01c806370a08231116100a0578063a8aa1b3111610064578063a8aa1b311461033c578063a9059cbb1461035c578063dd62ed3e1461037c578063e87655cf146103c2578063f2fde38b146103ea57600080fd5b806370a082311461028f57806378109e54146102c55780637d1db4a5146102db578063893d20e8146102f157806395d89b411461030f57600080fd5b8063293230b8116100e7578063293230b8146101d85780632f54bf6e146101ef578063313ce5671461021e57806339788bc81461023a5780635f7bcd701461024f57600080fd5b806306fdde0314610124578063095ea7b31461016957806318160ddd1461019957806323b872dd146101b857600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152600a81526911d251d1d31150d2105160b21b60208201525b6040516101609190611512565b60405180910390f35b34801561017557600080fd5b50610189610184366004611575565b61040a565b6040519015158152602001610160565b3480156101a557600080fd5b506001545b604051908152602001610160565b3480156101c457600080fd5b506101896101d33660046115a1565b610421565b3480156101e457600080fd5b506101ed61048b565b005b3480156101fb57600080fd5b5061018961020a3660046115e2565b6000546001600160a01b0391821691161490565b34801561022a57600080fd5b5060405160098152602001610160565b34801561024657600080fd5b506101ed6104e6565b34801561025b57600080fd5b5061027773bedb18dd442e0d329035a54f6707a5b449cab80481565b6040516001600160a01b039091168152602001610160565b34801561029b57600080fd5b506101aa6102aa3660046115e2565b6001600160a01b031660009081526004602052604090205490565b3480156102d157600080fd5b506101aa60035481565b3480156102e757600080fd5b506101aa60025481565b3480156102fd57600080fd5b506000546001600160a01b0316610277565b34801561031b57600080fd5b506040805180820190915260048152634845484560e01b6020820152610153565b34801561034857600080fd5b50600754610277906001600160a01b031681565b34801561036857600080fd5b50610189610377366004611575565b610529565b34801561038857600080fd5b506101aa6103973660046115ff565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156103ce57600080fd5b5061027773cba2ec147fb3288b1c245ab590518d83914f5cc581565b3480156103f657600080fd5b506101ed6104053660046115e2565b610536565b60006104173384846105cd565b5060015b92915050565b600061042e8484846106f1565b610480843361047b85604051806060016040528060288152602001611780602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610866565b6105cd565b5060015b9392505050565b6000546001600160a01b031633146104d35760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064015b60405180910390fd5b600d805460ff1916600117905542600c55565b60405173cba2ec147fb3288b1c245ab590518d83914f5cc5904780156108fc02916000818181858888f19350505050158015610526573d6000803e3d6000fd5b50565b60006104173384846106f1565b6000546001600160a01b031633146105795760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016104ca565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661062f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ca565b6001600160a01b0382166106905760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ca565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600d5460ff16801561070b5750600d54610100900460ff16155b15610718576107186108a0565b600d5460ff1680156107335750600d5462010000900460ff16155b1561074057610740610939565b61074b838383610a6d565b6107558383610bba565b610760838383610c48565b61076a8383610d34565b610775838383610d8b565b610780838383610e17565b6001600160a01b0383166000908152600460205260409020546107a39082610e3c565b6001600160a01b0384166000908152600460205260408120919091556107c98484610e7e565b6107d357816107de565b6107de848484610ec4565b6001600160a01b0384166000908152600460205260409020549091506108049082610f89565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108589085815260200190565b60405180910390a350505050565b6000818484111561088a5760405162461bcd60e51b81526004016104ca9190611512565b506000610897848661164e565b95945050505050565b600c5442906108b0906078610f89565b116108c2576101f46008556103e86009555b600c5442906108d390610258610f89565b116108e5576101f46008556102bc6009555b600c5442906108f690610384610f89565b116109075760c86008556101906009555b600c544290610918906104b0610f89565b116109375760006008819055600955600d805461ff0019166101001790555b565b600c544290610949906078610f89565b1161098d5761271060015460646109609190611661565b61096a9190611678565b6002556001546127109061097f906064611661565b6109899190611678565b6003555b600c54429061099e90610258610f89565b116109e25761271060015460c86109b59190611661565b6109bf9190611678565b600255600154612710906109d49060c8611661565b6109de9190611678565b6003555b600c5442906109f390610384610f89565b11610a395761271060015461012c610a0b9190611661565b610a159190611678565b60025560015461271090610a2b9061012c611661565b610a359190611678565b6003555b600c544290610a4a906104b0610f89565b11610937576001546002819055600355600d805462ff0000191662010000179055565b6001600160a01b038316610ad15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ca565b6001600160a01b038216610b335760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ca565b6001600160a01b038316600090815260046020526040902054811115610bb55760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016104ca565b505050565b6001600160a01b03821660009081526010602052604090205460ff16158015610bfc57506001600160a01b03811660009081526010602052604090205460ff16155b15610c4457600d5460ff16610c445760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016104ca565b5050565b6001600160a01b03831660009081526010602052604090205460ff16158015610c8a57506001600160a01b03821660009081526010602052604090205460ff16155b8015610ca457506007546001600160a01b03838116911614155b8015610cbb57506001600160a01b03821661dead14155b15610bb5576003546001600160a01b038316600090815260046020526040902054610ce69083610f89565b1115610bb55760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104ca565b6007546001600160a01b038281169116148015610d6a57506001600160a01b03821660009081526010602052604090205460ff16155b15610c44576001600e6000828254610d82919061169a565b90915550505050565b60025481111580610db457506001600160a01b03831660009081526010602052604090205460ff165b80610dd757506001600160a01b03821660009081526010602052604090205460ff165b610bb55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104ca565b610e22838383610fe8565b15610bb557610e3260115461109a565b6000600e55505050565b600061048483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610866565b6001600160a01b03821660009081526010602052604081205460ff161580156104845750506001600160a01b031660009081526010602052604090205460ff1615919050565b600080610ed185856111b7565b1115610f82576000610efa610ee686866111b7565b600b54610ef4908690611202565b90611244565b30600090815260046020526040902054909150610f179082610f89565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f689085815260200190565b60405180910390a3610f7a8382610e3c565b915050610484565b5092915050565b600080610f96838561169a565b9050838110156104845760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104ca565b60125460115430600090815260046020526040812054600f5491938510159211159060ff161580156110235750600d546301000000900460ff165b80156110315750600d5460ff165b801561103a5750815b801561105f57506001600160a01b03861660009081526010602052604090205460ff16155b801561107857506007546001600160a01b038681169116145b801561108757506003600e5410155b80156110905750805b9695505050505050565b600f805460ff1916600117905560006110c46002610ef46110bc601483611244565b603c90610f89565b905060006110dd826110d7856014611244565b90611202565b905060006110eb8483610e3c565b9050476110f7826112c6565b60006111034783610e3c565b9050600061111c611115876014610e3c565b8390611202565b9050600061112b826014611244565b9050801561113d5761113d8682611420565b600061114f603c610ef4856002611244565b9050801561119a5760405173bedb18dd442e0d329035a54f6707a5b449cab8049082156108fc029083906000818181858888f19350505050158015611198573d6000803e3d6000fd5b505b6111a26104e6565b5050600f805460ff1916905550505050505050565b6007546000906001600160a01b03908116908316036111d9575060095461041b565b6007546001600160a01b03908116908416036111f8575060085461041b565b50600a5492915050565b600061048483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114e4565b6000826000036112565750600061041b565b60006112628385611661565b90508261126f8583611678565b146104845760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104ca565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106112fb576112fb6116ad565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137891906116c3565b8160018151811061138b5761138b6116ad565b6001600160a01b0392831660209182029290920101526006546113b191309116846105cd565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906113ea9085906000908690309042906004016116e0565b600060405180830381600087803b15801561140457600080fd5b505af1158015611418573d6000803e3d6000fd5b505050505050565b6006546114389030906001600160a01b0316846105cd565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015273cba2ec147fb3288b1c245ab590518d83914f5cc560848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156114b8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114dd9190611751565b5050505050565b600081836115055760405162461bcd60e51b81526004016104ca9190611512565b5060006108978486611678565b600060208083528351808285015260005b8181101561153f57858101830151858201604001528201611523565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461052657600080fd5b6000806040838503121561158857600080fd5b823561159381611560565b946020939093013593505050565b6000806000606084860312156115b657600080fd5b83356115c181611560565b925060208401356115d181611560565b929592945050506040919091013590565b6000602082840312156115f457600080fd5b813561048481611560565b6000806040838503121561161257600080fd5b823561161d81611560565b9150602083013561162d81611560565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561041b5761041b611638565b808202811582820484141761041b5761041b611638565b60008261169557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561041b5761041b611638565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116d557600080fd5b815161048481611560565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117305784516001600160a01b03168352938301939183019160010161170b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561176657600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200d80dcb9e01da9c8676cd779b42fccf4546d7c675208df77a72c94cae198be6c64736f6c63430008110033

Deployed Bytecode Sourcemap

4299:10839:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6680:67;;;;;;;;;;-1:-1:-1;6740:5:0;;;;;;;;;;;;-1:-1:-1;;;6740:5:0;;;;6680:67;;;;;;;:::i;:::-;;;;;;;;7583:133;;;;;;;;;;-1:-1:-1;7583:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7583:133:0;1023:187:1;7722:84:0;;;;;;;;;;-1:-1:-1;7792:12:0;;7722:84;;;1361:25:1;;;1349:2;1334:18;7722:84:0;1215:177:1;14481:309:0;;;;;;;;;;-1:-1:-1;14481:309:0;;;;;:::i;:::-;;:::i;7374:97::-;;;;;;;;;;;;;:::i;:::-;;3004:87;;;;;;;;;;-1:-1:-1;3004:87:0;;;;;:::i;:::-;3059:4;3084:5;-1:-1:-1;;;;;3073:16:0;;;3084:5;;3073:16;;3004:87;6830:67;;;;;;;;;;-1:-1:-1;6830:67:0;;4511:1;2252:36:1;;2240:2;2225:18;6830:67:0;2110:184:1;7477:100:0;;;;;;;;;;;;;:::i;5786:87::-;;;;;;;;;;;;5831:42;5786:87;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;5786:87:0;2299:203:1;6987:103:0;;;;;;;;;;-1:-1:-1;6987:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7070:18:0;7053:7;7070:18;;;:9;:18;;;;;;;6987:103;4652:62;;;;;;;;;;;;;;;;4586:59;;;;;;;;;;;;;;;;6903:78;;;;;;;;;;-1:-1:-1;6955:7:0;6973:5;-1:-1:-1;;;;;6973:5:0;6903:78;;6753:71;;;;;;;;;;-1:-1:-1;6815:7:0;;;;;;;;;;;;-1:-1:-1;;;6815:7:0;;;;6753:71;;4863:19;;;;;;;;;;-1:-1:-1;4863:19:0;;;;-1:-1:-1;;;;;4863:19:0;;;7096:139;;;;;;;;;;-1:-1:-1;7096:139:0;;;;;:::i;:::-;;:::i;7241:127::-;;;;;;;;;;-1:-1:-1;7241:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7339:18:0;;;7322:7;7339:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7241:127;5880:87;;;;;;;;;;;;5925:42;5880:87;;3097:111;;;;;;;;;;-1:-1:-1;3097:111:0;;;;;:::i;:::-;;:::i;7583:133::-;7658:4;7665:37;7674:10;7686:7;7695:6;7665:8;:37::i;:::-;-1:-1:-1;7710:4:0;7583:133;;;;;:::o;14481:309::-;14579:4;14596:36;14606:6;14614:9;14625:6;14596:9;:36::i;:::-;14643:117;14652:6;14660:10;14672:87;14708:6;14672:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14672:19:0;;;;;;:11;:19;;;;;;;;14692:10;14672:31;;;;;;;;;:87;:35;:87::i;:::-;14643:8;:117::i;:::-;-1:-1:-1;14778:4:0;14481:309;;;;;;:::o;7374:97::-;3059:4;3084:5;-1:-1:-1;;;;;3084:5:0;2971:10;3073:16;2955:38;;;;-1:-1:-1;;;2955:38:0;;3362:2:1;2955:38:0;;;3344:21:1;3401:1;3381:18;;;3374:29;-1:-1:-1;;;3419:18:1;;;3412:36;3465:18;;2955:38:0;;;;;;;;;7418:14:::1;:21:::0;;-1:-1:-1;;7418:21:0::1;7435:4;7418:21;::::0;;7454:15:::1;7441:10;:28:::0;7374:97::o;7477:100::-;7514:61;;5736:42;;7553:21;7514:61;;;;;;;;;7553:21;5736:42;7514:61;;;;;;;;;;;;;;;;;;;;;7477:100::o;7096:139::-;7174:4;7181:40;7191:10;7203:9;7214:6;7181:9;:40::i;3097:111::-;3059:4;3084:5;-1:-1:-1;;;;;3084:5:0;2971:10;3073:16;2955:38;;;;-1:-1:-1;;;2955:38:0;;3362:2:1;2955:38:0;;;3344:21:1;3401:1;3381:18;;;3374:29;-1:-1:-1;;;3419:18:1;;;3412:36;3465:18;;2955:38:0;3160:329:1;2955:38:0;3163:5:::1;:11:::0;;-1:-1:-1;;;;;;3163:11:0::1;-1:-1:-1::0;;;;;3163:11:0;::::1;::::0;;::::1;::::0;;;3181:25:::1;::::0;2445:51:1;;;3181:25:0::1;::::0;2433:2:1;2418:18;3181:25:0::1;;;;;;;3097:111:::0;:::o;14798:335::-;-1:-1:-1;;;;;14891:19:0;;14883:68;;;;-1:-1:-1;;;14883:68:0;;3912:2:1;14883:68:0;;;3894:21:1;3951:2;3931:18;;;3924:30;3990:34;3970:18;;;3963:62;-1:-1:-1;;;4041:18:1;;;4034:34;4085:19;;14883:68:0;3710:400:1;14883:68:0;-1:-1:-1;;;;;14970:21:0;;14962:68;;;;-1:-1:-1;;;14962:68:0;;4317:2:1;14962:68:0;;;4299:21:1;4356:2;4336:18;;;4329:30;4395:34;4375:18;;;4368:62;-1:-1:-1;;;4446:18:1;;;4439:32;4488:19;;14962:68:0;4115:398:1;14962:68:0;-1:-1:-1;;;;;15041:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15093:32;;1361:25:1;;;15093:32:0;;1334:18:1;15093:32:0;;;;;;;14798:335;;;:::o;8180:840::-;8272:14;;;;:33;;;;-1:-1:-1;8291:14:0;;;;;;;8290:15;8272:33;8269:68;;;8307:28;:26;:28::i;:::-;8350:14;;;;:33;;;;-1:-1:-1;8369:14:0;;;;;;;8368:15;8350:33;8347:67;;;8385:27;:25;:27::i;:::-;8424:40;8438:6;8446:9;8457:6;8424:13;:40::i;:::-;8475:38;8495:6;8503:9;8475:19;:38::i;:::-;8524:41;8539:6;8547:9;8558:6;8524:14;:41::i;:::-;8577:31;8590:6;8598:9;8577:12;:31::i;:::-;8619:39;8632:6;8640:9;8651:6;8619:12;:39::i;:::-;8670:35;8679:6;8687:9;8698:6;8670:8;:35::i;:::-;-1:-1:-1;;;;;8736:17:0;;;;;;:9;:17;;;;;;:29;;8758:6;8736:21;:29::i;:::-;-1:-1:-1;;;;;8716:17:0;;;;;;:9;:17;;;;;:49;;;;8801:32;8726:6;8823:9;8801:13;:32::i;:::-;:78;;8873:6;8801:78;;;8836:34;8844:6;8852:9;8863:6;8836:7;:34::i;:::-;-1:-1:-1;;;;;8913:20:0;;;;;;:9;:20;;;;;;8776:103;;-1:-1:-1;8913:40:0;;8776:103;8913:24;:40::i;:::-;-1:-1:-1;;;;;8890:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8969:43;;;;;;;;;;8997:14;1361:25:1;;1349:2;1334:18;;1215:177;8969:43:0;;;;;;;;8258:762;8180:840;;;:::o;682:190::-;768:7;804:12;796:6;;;;788:29;;;;-1:-1:-1;;;788:29:0;;;;;;;;:::i;:::-;-1:-1:-1;828:9:0;840:5;844:1;840;:5;:::i;:::-;828:17;682:190;-1:-1:-1;;;;;682:190:0:o;9028:519::-;9089:10;;9118:15;;9089:25;;9104:9;9089:14;:25::i;:::-;:44;9086:98;;9154:3;9135:8;:23;9177:4;9160:7;:22;9086:98;9197:10;;9227:15;;9197:26;;9212:10;9197:14;:26::i;:::-;:45;9194:98;;9263:3;9244:8;:23;9286:3;9269:7;:21;9194:98;9305:10;;9335:15;;9305:26;;9320:10;9305:14;:26::i;:::-;:45;9302:98;;9371:3;9352:8;:23;9394:3;9377:7;:21;9302:98;9413:10;;9443:15;;9413:26;;9428:10;9413:14;:26::i;:::-;:45;9410:130;;9479:1;9460:8;:21;;;9483:7;:19;9517:14;:21;;-1:-1:-1;;9517:21:0;;;;;9410:130;9028:519::o;9555:728::-;9615:10;;9644:15;;9615:25;;9630:9;9615:14;:25::i;:::-;:44;9612:160;;9715:5;9692:12;;9707:3;9692:18;;;;:::i;:::-;9690:30;;;;:::i;:::-;9675:12;:45;9742:12;;9765:5;;9742:18;;9757:3;9742:18;:::i;:::-;9740:30;;;;:::i;:::-;9722:15;:48;9612:160;9785:10;;9815:15;;9785:26;;9800:10;9785:14;:26::i;:::-;:45;9782:161;;9886:5;9863:12;;9878:3;9863:18;;;;:::i;:::-;9861:30;;;;:::i;:::-;9846:12;:45;9913:12;;9936:5;;9913:18;;9928:3;9913:18;:::i;:::-;9911:30;;;;:::i;:::-;9893:15;:48;9782:161;9960:10;;9990:15;;9960:26;;9975:10;9960:14;:26::i;:::-;:45;9957:161;;10061:5;10038:12;;10053:3;10038:18;;;;:::i;:::-;10036:30;;;;:::i;:::-;10021:12;:45;10088:12;;10111:5;;10088:18;;10103:3;10088:18;:::i;:::-;10086:30;;;;:::i;:::-;10068:15;:48;9957:161;10131:10;;10161:15;;10131:26;;10146:10;10131:14;:26::i;:::-;:45;10128:148;;10207:12;;10192;:27;;;10221:15;:30;10253:14;:21;;-1:-1:-1;;10253:21:0;;;;;9555:728::o;7814:358::-;-1:-1:-1;;;;;7921:20:0;;7913:70;;;;-1:-1:-1;;;7913:70:0;;5380:2:1;7913:70:0;;;5362:21:1;5419:2;5399:18;;;5392:30;5458:34;5438:18;;;5431:62;-1:-1:-1;;;5509:18:1;;;5502:35;5554:19;;7913:70:0;5178:401:1;7913:70:0;-1:-1:-1;;;;;8002:23:0;;7994:71;;;;-1:-1:-1;;;7994:71:0;;5786:2:1;7994:71:0;;;5768:21:1;5825:2;5805:18;;;5798:30;5864:34;5844:18;;;5837:62;-1:-1:-1;;;5915:18:1;;;5908:33;5958:19;;7994:71:0;5584:399:1;7994:71:0;-1:-1:-1;;;;;7070:18:0;;7053:7;7070:18;;;:9;:18;;;;;;8084:6;:27;;8076:88;;;;-1:-1:-1;;;8076:88:0;;6190:2:1;8076:88:0;;;6172:21:1;6229:2;6209:18;;;6202:30;6268:34;6248:18;;;6241:62;-1:-1:-1;;;6319:18:1;;;6312:47;6376:19;;8076:88:0;5988:413:1;8076:88:0;7814:358;;;:::o;10291:211::-;-1:-1:-1;;;;;10384:19:0;;;;;;:11;:19;;;;;:29;;;10383:30;:67;;;;-1:-1:-1;;;;;;10418:22:0;;;;;;:11;:22;;;;;:32;;;10417:33;10383:67;10380:115;;;10460:14;;;;10452:41;;;;-1:-1:-1;;;10452:41:0;;6608:2:1;10452:41:0;;;6590:21:1;6647:2;6627:18;;;6620:30;-1:-1:-1;;;6666:18:1;;;6659:44;6720:18;;10452:41:0;6406:338:1;10452:41:0;10291:211;;:::o;10514:351::-;-1:-1:-1;;;;;10618:19:0;;;;;;:11;:19;;;;;:29;;;10617:30;:67;;;;-1:-1:-1;;;;;;10652:22:0;;;;;;:11;:22;;;;;:32;;;10651:33;10617:67;:97;;;;-1:-1:-1;10709:4:0;;-1:-1:-1;;;;;10688:26:0;;;10709:4;;10688:26;;10617:97;:127;;;;-1:-1:-1;;;;;;10718:26:0;;5638:42;10718:26;;10617:127;10614:244;;;10806:15;;-1:-1:-1;;;;;10769:20:0;;;;;;:9;:20;;;;;;:32;;10794:6;10769:24;:32::i;:::-;10768:53;;10760:96;;;;-1:-1:-1;;;10760:96:0;;6951:2:1;10760:96:0;;;6933:21:1;6990:2;6970:18;;;6963:30;7029:32;7009:18;;;7002:60;7079:18;;10760:96:0;6749:354:1;10873:165:0;10966:4;;-1:-1:-1;;;;;10953:17:0;;;10966:4;;10953:17;:51;;;;-1:-1:-1;;;;;;10975:19:0;;;;;;:11;:19;;;;;:29;;;10974:30;10953:51;10950:81;;;11027:1;11006:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;10873:165:0;;:::o;11046:227::-;11162:12;;11152:6;:22;;:55;;;-1:-1:-1;;;;;;11178:19:0;;;;;;:11;:19;;;;;:29;;;11152:55;:91;;;-1:-1:-1;;;;;;11211:22:0;;;;;;:11;:22;;;;;:32;;;11152:91;11144:121;;;;-1:-1:-1;;;11144:121:0;;7440:2:1;11144:121:0;;;7422:21:1;7479:2;7459:18;;;7452:30;-1:-1:-1;;;7498:18:1;;;7491:47;7555:18;;11144:121:0;7238:341:1;13421:197:0;13513:41;13528:6;13536:9;13547:6;13513:14;:41::i;:::-;13510:101;;;13556:29;13571:13;;13556:14;:29::i;:::-;13607:1;13587:9;:22;13421:197;;;:::o;538:136::-;596:7;623:43;627:1;630;623:43;;;;;;;;;;;;;;;;;:3;:43::i;13626:180::-;-1:-1:-1;;;;;13732:19:0;;13707:4;13732:19;;;:11;:19;;;;;:29;;;13731:30;:67;;;;-1:-1:-1;;;;;;;13766:22:0;;;;;:11;:22;;;;;:32;;;13765:33;;13626:180;-1:-1:-1;13626:180:0:o;14041:432::-;14127:7;14183:1;14150:30;14162:6;14170:9;14150:11;:30::i;:::-;:34;14147:304;;;14196:17;14216:59;14244:30;14256:6;14264:9;14244:11;:30::i;:::-;14227:11;;14216:23;;:6;;:10;:23::i;:::-;:27;;:59::i;:::-;14331:4;14313:24;;;;:9;:24;;;;;;14196:79;;-1:-1:-1;14313:39:0;;14196:79;14313:28;:39::i;:::-;14304:4;14286:24;;;;:9;:24;;;;;;;:66;;;;14368:42;;-1:-1:-1;;;;;14368:42:0;;;;;;;14400:9;1361:25:1;;1349:2;1334:18;;1215:177;14368:42:0;;;;;;;;14428:21;:6;14439:9;14428:10;:21::i;:::-;14421:28;;;;;14147:304;-1:-1:-1;14459:6:0;14041:432;-1:-1:-1;;14041:432:0:o;351:179::-;409:7;;441:5;445:1;441;:5;:::i;:::-;429:17;;470:1;465;:6;;457:46;;;;-1:-1:-1;;;457:46:0;;7786:2:1;457:46:0;;;7768:21:1;7825:2;7805:18;;;7798:30;7864:29;7844:18;;;7837:57;7911:18;;457:46:0;7584:351:1;12989:424:0;13130:15;;13206:13;;13196:4;13087;7070:18;;;:9;:18;;;;;;13238:8;;13087:4;;13120:25;;;;-1:-1:-1;13178:41:0;;13238:8;;13237:9;:24;;;;-1:-1:-1;13250:11:0;;;;;;;13237:24;:42;;;;-1:-1:-1;13265:14:0;;;;13237:42;:54;;;;;13283:8;13237:54;:88;;;;-1:-1:-1;;;;;;13296:19:0;;;;;;:11;:19;;;;;:29;;;13295:30;13237:88;:123;;;;-1:-1:-1;13356:4:0;;-1:-1:-1;;;;;13343:17:0;;;13356:4;;13343:17;13237:123;:150;;;;;13385:1;13364:9;;:23;;13237:150;:168;;;;;13391:14;13237:168;13230:175;12989:424;-1:-1:-1;;;;;;12989:424:0:o;11281:907::-;5323:8;:15;;-1:-1:-1;;5323:15:0;5334:4;5323:15;;;:8;11375:60:::1;11432:1;11375:44;11391:27;11399:2;11432:1:::0;11391:15:::1;:27::i;:::-;11383:2;::::0;11375:15:::1;:44::i;:60::-;11352:83:::0;-1:-1:-1;11446:32:0::1;11481:41;11352:83:::0;11481:23:::1;:6:::0;11500:2:::1;11481:10;:23::i;:::-;:27:::0;::::1;:41::i;:::-;11446:76:::0;-1:-1:-1;11533:14:0::1;11550:36;:6:::0;11446:76;11550:10:::1;:36::i;:::-;11533:53:::0;-1:-1:-1;11622:21:0::1;11654:24;11533:53:::0;11654:16:::1;:24::i;:::-;11689:20;11712:41;:21;11738:14:::0;11712:25:::1;:41::i;:::-;11689:64:::0;-1:-1:-1;11764:19:0::1;11785:47;11802:29;:12:::0;11827:2:::1;11802:16;:29::i;:::-;11785:12:::0;;:16:::1;:47::i;:::-;11764:68:::0;-1:-1:-1;11843:29:0::1;11875:28;11764:68:::0;11899:2:::1;11875:15;:28::i;:::-;11843:60:::0;-1:-1:-1;11917:34:0;;11914:103:::1;;11953:61;11966:24;11992:21;11953:12;:61::i;:::-;12027:20;12050:35;12081:2;12050:18;:11:::0;12066:1:::1;12050:15;:18::i;:35::-;12027:58:::0;-1:-1:-1;12099:16:0;;12096:73:::1;;12117:50;::::0;5831:42:::1;::::0;12117:50;::::1;;;::::0;12154:12;;12117:50:::1;::::0;;;12154:12;5831:42;12117:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12096:73;12170:10;:8;:10::i;:::-;-1:-1:-1::0;;5343:8:0;:16;;-1:-1:-1;;5343:16:0;;;-1:-1:-1;;;;;;;11281:907:0:o;13814:219::-;13929:4;;13893:7;;-1:-1:-1;;;;;13929:4:0;;;13916:17;;;;13913:38;;-1:-1:-1;13942:7:0;;13935:14;;13913:38;13974:4;;-1:-1:-1;;;;;13974:4:0;;;13964:14;;;;13961:36;;-1:-1:-1;13987:8:0;;13980:15;;13961:36;-1:-1:-1;14014:11:0;;13814:219;;;;:::o;1136:132::-;1194:7;1221:39;1225:1;1228;1221:39;;;;;;;;;;;;;;;;;:3;:39::i;880:248::-;938:7;962:1;967;962:6;958:47;;-1:-1:-1;992:1:0;985:8;;958:47;1017:9;1029:5;1033:1;1029;:5;:::i;:::-;1017:17;-1:-1:-1;1062:1:0;1053:5;1057:1;1017:17;1053:5;:::i;:::-;:10;1045:56;;;;-1:-1:-1;;;1045:56:0;;8142:2:1;1045:56:0;;;8124:21:1;8181:2;8161:18;;;8154:30;8220:34;8200:18;;;8193:62;-1:-1:-1;;;8271:18:1;;;8264:31;8312:19;;1045:56:0;7940:397:1;12547:434:0;12637:16;;;12651:1;12637:16;;;;;;;;12613:21;;12637:16;;;;;;;;;;-1:-1:-1;12637:16:0;12613:40;;12682:4;12664;12669:1;12664:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12664:23:0;;;:7;;;;;;;;;;:23;;;;12708:6;;:13;;;-1:-1:-1;;;12708:13:0;;;;:6;;;;;:11;;:13;;;;;12664:7;;12708:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12698:4;12703:1;12698:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12698:23:0;;;:7;;;;;;;;;:23;12764:6;;12732:53;;12749:4;;12764:6;12773:11;12732:8;:53::i;:::-;12796:6;;:177;;-1:-1:-1;;;12796:177:0;;-1:-1:-1;;;;;12796:6:0;;;;:57;;:177;;12868:11;;12796:6;;12910:4;;12937;;12957:15;;12796:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12602:379;12547:434;:::o;12196:343::-;12309:6;;12277:53;;12294:4;;-1:-1:-1;;;;;12309:6:0;12318:11;12277:8;:53::i;:::-;12341:6;;:190;;-1:-1:-1;;;12341:190:0;;12404:4;12341:190;;;10188:34:1;10238:18;;;10231:34;;;12341:6:0;10281:18:1;;;10274:34;;;10324:18;;;10317:34;5925:42:0;10367:19:1;;;10360:44;12515:15:0;10420:19:1;;;10413:35;-1:-1:-1;;;;;12341:6:0;;;;:22;;12371:9;;10122:19:1;;12341:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12196:343;;:::o;1276:276::-;1362:7;1397:12;1390:5;1382:28;;;;-1:-1:-1;;;1382:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1421:9:0;1433:5;1437:1;1433;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;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;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;4518:127::-;4579:10;4574:3;4570:20;4567:1;4560:31;4610:4;4607:1;4600:15;4634:4;4631:1;4624:15;4650:128;4717:9;;;4738:11;;;4735:37;;;4752:18;;:::i;4783:168::-;4856:9;;;4887;;4904:15;;;4898:22;;4884:37;4874:71;;4925:18;;:::i;4956:217::-;4996:1;5022;5012:132;;5066:10;5061:3;5057:20;5054:1;5047:31;5101:4;5098:1;5091:15;5129:4;5126:1;5119:15;5012:132;-1:-1:-1;5158:9:1;;4956:217::o;7108:125::-;7173:9;;;7194:10;;;7191:36;;;7207:18;;:::i;8474:127::-;8535:10;8530:3;8526:20;8523:1;8516:31;8566:4;8563:1;8556:15;8590:4;8587:1;8580:15;8606:251;8676:6;8729:2;8717:9;8708:7;8704:23;8700:32;8697:52;;;8745:1;8742;8735:12;8697:52;8777:9;8771:16;8796:31;8821:5;8796:31;:::i;8862:980::-;9124:4;9172:3;9161:9;9157:19;9203:6;9192:9;9185:25;9229:2;9267:6;9262:2;9251:9;9247:18;9240:34;9310:3;9305:2;9294:9;9290:18;9283:31;9334:6;9369;9363:13;9400:6;9392;9385:22;9438:3;9427:9;9423:19;9416:26;;9477:2;9469:6;9465:15;9451:29;;9498:1;9508:195;9522:6;9519:1;9516:13;9508:195;;;9587:13;;-1:-1:-1;;;;;9583:39:1;9571:52;;9678:15;;;;9643:12;;;;9619:1;9537:9;9508:195;;;-1:-1:-1;;;;;;;9759:32:1;;;;9754:2;9739:18;;9732:60;-1:-1:-1;;;9823:3:1;9808:19;9801:35;9720:3;8862:980;-1:-1:-1;;;8862:980:1:o;10459:306::-;10547:6;10555;10563;10616:2;10604:9;10595:7;10591:23;10587:32;10584:52;;;10632:1;10629;10622:12;10584:52;10661:9;10655:16;10645:26;;10711:2;10700:9;10696:18;10690:25;10680:35;;10755:2;10744:9;10740:18;10734:25;10724:35;;10459:306;;;;;:::o

Swarm Source

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