ETH Price: $3,354.15 (-2.77%)
Gas: 2 Gwei

Token

GOAT (GOAT)
 

Overview

Max Total Supply

1,000,000 GOAT

Holders

356

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.498834464690230762 GOAT

Value
$0.00
0xaf79312eb821871208ac76a80c8e282f8796964e
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:
GOAT

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-20
*/

//SPDX-License-Identifier: MIT


/*

Twitter : https://twitter.com/GoatETHER
Telegram : https://t.me/gooatportal

*/

pragma solidity ^0.8.0;

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

interface ERC20 {
    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 OwnableL {
    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 renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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;
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
    external
    payable
    returns (uint[] memory amounts);
}

contract GOAT is ERC20, OwnableL {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; 
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "GOAT";
    string constant _symbol = "GOAT";
    uint8 constant _decimals = 18;

    uint256 public _totalSupply = 1000000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 5) / 100; // 5%
    uint256 public _maxTxAmount = _totalSupply.mul(100).div(100); //100%

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) _auth;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 marketingFee = 1;
    uint256 devFee = 1;
    uint256 liquidityFee = 1;
    uint256 totalFee = devFee + marketingFee + liquidityFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = 0xc95a0Bf330Cd40c96815A535FAA8276e99e66327;
    address public devFeeReceiver = 0xd955D20A2D6e00023F57fBa95291FF39589fC78B;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = (_totalSupply * 2) / 600; // 0.33%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    modifier onlyAuth() {
        require(_auth[msg.sender], "not auth minter"); _;
    }

    constructor () OwnableL(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;

        _auth[msg.sender] = true;

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
 
        if(shouldSwapBack()){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);

        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        address[] memory path2 = new address[](2);
        path2[1] = address(this);
        path2[0] = router.WETH();

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore); 
        uint256 amountETHDev = amountETH.mul(devFee).div(totalFee);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalFee);
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalFee);


        (bool DevSuccess, ) = payable(devFeeReceiver).call{value: amountETHDev, gas: 30000}("");
        require(DevSuccess, "receiver rejected ETH transfer");
        (bool MarketingSuccess, ) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        uint[] memory amounts = router.swapExactETHForTokens{value: amountETHLiquidity}(
            0,
            path2,
            pair,
            block.timestamp
         );

         _balances[address(this)] = _balances[address(this)].add(amounts[1]);
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function clearStuckBalance() external {
        payable(devFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function setFee(uint256 _devFee, uint256 _marketingFee, uint256 _liquidityFee) external onlyOwner {
        devFee = _devFee;
        marketingFee = _marketingFee;
        liquidityFee = _liquidityFee;
        totalFee = devFee + marketingFee + liquidityFee;
    }

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"marketingFeeReceiver","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486012600a62000685565b6200005790620f424062000770565b600355606460035460056200006d919062000770565b62000079919062000617565b600455620000b360646200009f60646003546200043160201b620007a41790919060201c565b6200049160201b620007e91790919060201c565b6005556001600b819055600c819055600d819055620000d38180620005fc565b620000df9190620005fc565b600e556064600f55601080546001600160a01b031990811673c95a0bf330cd40c96815a535faa8276e99e66327179091556011805490911673d955d20a2d6e00023f57fba95291ff39589fc78b1790556013805460ff60a01b1916600160a01b179055600354610258906200015690600262000770565b62000162919062000617565b6014553480156200017257600080fd5b50600080546001600160a01b03199081163317909155600154601280549092166001600160a01b0391821617918290556040805163c45a015560e01b81529051929091169163c45a015591600480820192602092909190829003018186803b158015620001de57600080fd5b505afa158015620001f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000219919062000519565b6001600160a01b031663c9c65396601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027657600080fd5b505afa1580156200028b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b1919062000519565b306040518363ffffffff1660e01b8152600401620002d192919062000542565b602060405180830381600087803b158015620002ec57600080fd5b505af115801562000301573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000327919062000519565b601380546001600160a01b0319166001600160a01b039283161790553060009081526007602090815260408083206012548516845282528083206000199055825433845260088352818420805460ff19908116600190811790925591861680865260098552838620805484168317905560108054881687528487208054851684179055818752600a8652848720805485168417905554871686528386208054841683179055600254909616855282852080549092161790556003548484526006909252808320829055518392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620004229190620005f3565b60405180910390a350620007a8565b60008262000442575060006200048b565b600062000450838562000770565b9050826200045f858362000617565b14620004885760405162461bcd60e51b81526004016200047f90620005b2565b60405180910390fd5b90505b92915050565b60006200048883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004db60201b60201c565b60008183620004ff5760405162461bcd60e51b81526004016200047f91906200055c565b5060006200050e848662000617565b9150505b9392505050565b6000602082840312156200052b578081fd5b81516001600160a01b038116811462000488578182fd5b6001600160a01b0392831681529116602082015260400190565b6000602080835283518082850152825b818110156200058a578581018301518582016040015282016200056c565b818111156200059c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b90815260200190565b6000821982111562000612576200061262000792565b500190565b6000826200063357634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116200064c57506200067c565b81870482111562000661576200066162000792565b808616156200066f57918102915b9490941c9380026200063b565b94509492505050565b60006200048860001960ff851684600082620006a45750600162000512565b81620006b35750600062000512565b8160018114620006cc5760028114620006d7576200070b565b600191505062000512565b60ff841115620006eb57620006eb62000792565b6001841b91508482111562000704576200070462000792565b5062000512565b5060208310610133831016604e8410600b841016171562000743575081810a838111156200073d576200073d62000792565b62000512565b62000752848484600162000638565b80860482111562000767576200076762000792565b02949350505050565b60008160001904831182151516156200078d576200078d62000792565b500290565b634e487b7160e01b600052601160045260246000fd5b61175f80620007b86000396000f3fe60806040526004361061016a5760003560e01c80636ddd1713116100d1578063a8aa1b311161008a578063dd62ed3e11610064578063dd62ed3e146103b3578063e96fada2146103d3578063f1d5f517146103e8578063f887ea401461040857610171565b8063a8aa1b3114610369578063a9059cbb1461037e578063dab84ee71461039e57610171565b80636ddd1713146102e857806370a08231146102fd578063715018a61461031d5780637d1db4a514610332578063893d20e81461034757806395d89b41146101a157610171565b8063313ce56711610123578063313ce56714610245578063364333f4146102675780633eaaf86b1461027e578063571ac8b0146102935780635b65b9ab146102b35780636c0a24eb146102d357610171565b80630445b6671461017657806306fdde03146101a1578063095ea7b3146101c357806318160ddd146101f057806323b872dd146102055780632f54bf6e1461022557610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61041d565b6040516101989190611627565b60405180910390f35b3480156101ad57600080fd5b506101b6610423565b60405161019891906114c0565b3480156101cf57600080fd5b506101e36101de3660046112fe565b610441565b6040516101989190611480565b3480156101fc57600080fd5b5061018b6104ac565b34801561021157600080fd5b506101e36102203660046112be565b6104b2565b34801561023157600080fd5b506101e361024036600461124e565b610574565b34801561025157600080fd5b5061025a610588565b604051610198919061166c565b34801561027357600080fd5b5061027c61058d565b005b34801561028a57600080fd5b5061018b6105c9565b34801561029f57600080fd5b506101e36102ae36600461124e565b6105cf565b3480156102bf57600080fd5b5061027c6102ce3660046113fb565b6105dd565b3480156102df57600080fd5b5061018b610637565b3480156102f457600080fd5b506101e361063d565b34801561030957600080fd5b5061018b61031836600461124e565b61064d565b34801561032957600080fd5b5061027c610668565b34801561033e57600080fd5b5061018b6106d5565b34801561035357600080fd5b5061035c6106db565b604051610198919061146c565b34801561037557600080fd5b5061035c6106ea565b34801561038a57600080fd5b506101e36103993660046112fe565b6106f9565b3480156103aa57600080fd5b5061035c610706565b3480156103bf57600080fd5b5061018b6103ce366004611286565b610715565b3480156103df57600080fd5b5061035c610740565b3480156103f457600080fd5b5061027c6104033660046113e3565b61074f565b34801561041457600080fd5b5061035c610795565b60145481565b60408051808201909152600481526311d3d05560e21b602082015290565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061049a908690611627565b60405180910390a35060015b92915050565b60035490565b6001600160a01b03831660009081526007602090815260408083203384529091528120546000191461055f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260078252838120338252909152919091205461053a91849061082b565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61056a848484610865565b90505b9392505050565b6000546001600160a01b0390811691161490565b601290565b6011546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105c6573d6000803e3d6000fd5b50565b60035481565b60006104a682600019610441565b6105e633610574565b61060b5760405162461bcd60e51b815260040161060290611607565b60405180910390fd5b600c839055600b829055600d81905580610625838561167a565b61062f919061167a565b600e55505050565b60045481565b601354600160a01b900460ff1681565b6001600160a01b031660009081526006602052604090205490565b61067133610574565b61068d5760405162461bcd60e51b815260040161060290611607565b600080546001600160a01b03191681556040517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163916106cb9161146c565b60405180910390a1565b60055481565b6000546001600160a01b031690565b6013546001600160a01b031681565b600061056d338484610865565b6011546001600160a01b031681565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b6010546001600160a01b031681565b61075833610574565b6107745760405162461bcd60e51b815260040161060290611607565b6103e88160035461078591906116b2565b61078f9190611692565b60045550565b6012546001600160a01b031681565b6000826107b3575060006104a6565b60006107bf83856116b2565b9050826107cc8583611692565b1461056d5760405162461bcd60e51b8152600401610602906115c6565b600061056d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a49565b6000818484111561084f5760405162461bcd60e51b815260040161060291906114c0565b50600061085c84866116d1565b95945050505050565b60155460009060ff16156108855761087e848484610a77565b905061056d565b6013546001600160a01b038481169116148015906108b157506002546001600160a01b03848116911614155b1561091e576001600160a01b0383166000908152600a602052604090205460ff168061090257506004546001600160a01b0384166000908152600660205260409020546108ff90849061167a565b11155b61091e5760405162461bcd60e51b815260040161060290611513565b610926610b5b565b1561093357610933610bb3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526006909152919091205461098591849061082b565b6001600160a01b0385166000908152600660205260408120919091556109aa8561111a565b6109b457826109be565b6109be8584611139565b6001600160a01b0385166000908152600660205260409020549091506109e490826111dd565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a36908590611627565b60405180910390a3506001949350505050565b60008183610a6a5760405162461bcd60e51b815260040161060291906114c0565b50600061085c8486611692565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054610ac891849061082b565b6001600160a01b038086166000908152600660205260408082209390935590851681522054610af790836111dd565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b49908690611627565b60405180910390a35060019392505050565b6013546000906001600160a01b03163314801590610b7c575060155460ff16155b8015610b915750601354600160a01b900460ff165b8015610bae57506014543060009081526006602052604090205410155b905090565b6015805460ff19166001179055601454600e54600d54600091610be691600291610be091829087906107a4565b906107e9565b90506000610bf4838361120c565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610c3c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610c9057600080fd5b505afa158015610ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc8919061126a565b81600181518110610ce957634e487b7160e01b600052603260045260246000fd5b6001600160a01b039290921660209283029190910182015260408051600280825260608201835260009391929091830190803683370190505090503081600181518110610d4657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610d9a57600080fd5b505afa158015610dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd2919061126a565b81600081518110610df357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b81524792919091169063791ac94790610e3d908790600090889030904290600401611630565b600060405180830381600087803b158015610e5757600080fd5b505af1158015610e6b573d6000803e3d6000fd5b505050506000610e84824761120c90919063ffffffff16565b90506000610ea3600e54610be0600c54856107a490919063ffffffff16565b90506000610ec2600e54610be0600b54866107a490919063ffffffff16565b90506000610ee1600e54610be0600d54876107a490919063ffffffff16565b6011546040519192506000916001600160a01b0390911690617530908690610f0890611469565b600060405180830381858888f193505050503d8060008114610f46576040519150601f19603f3d011682016040523d82523d6000602084013e610f4b565b606091505b5050905080610f6c5760405162461bcd60e51b81526004016106029061158f565b6010546040516000916001600160a01b031690617530908690610f8e90611469565b600060405180830381858888f193505050503d8060008114610fcc576040519150601f19603f3d011682016040523d82523d6000602084013e610fd1565b606091505b5050905080610ff25760405162461bcd60e51b81526004016106029061158f565b6000601260009054906101000a90046001600160a01b03166001600160a01b0316637ff36ab58560008c601360009054906101000a90046001600160a01b0316426040518663ffffffff1660e01b8152600401611052949392919061148b565b6000604051808303818588803b15801561106b57600080fd5b505af115801561107f573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526110a89190810190611329565b90506110f1816001815181106110ce57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101513060009081526006909252604090912054906111dd565b3060009081526006602052604090205550506015805460ff191690555050505050505050505050565b6001600160a01b031660009081526009602052604090205460ff161590565b600080611157600f54610be0600e54866107a490919063ffffffff16565b3060009081526006602052604090205490915061117490826111dd565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111c3908590611627565b60405180910390a36111d5838261120c565b949350505050565b6000806111ea838561167a565b90508381101561056d5760405162461bcd60e51b815260040161060290611558565b600061056d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061082b565b60006020828403121561125f578081fd5b813561056d81611714565b60006020828403121561127b578081fd5b815161056d81611714565b60008060408385031215611298578081fd5b82356112a381611714565b915060208301356112b381611714565b809150509250929050565b6000806000606084860312156112d2578081fd5b83356112dd81611714565b925060208401356112ed81611714565b929592945050506040919091013590565b60008060408385031215611310578182fd5b823561131b81611714565b946020939093013593505050565b6000602080838503121561133b578182fd5b825167ffffffffffffffff80821115611352578384fd5b818501915085601f830112611365578384fd5b815181811115611377576113776116fe565b83810260405185828201018181108582111715611396576113966116fe565b604052828152858101935084860182860187018a10156113b4578788fd5b8795505b838610156113d65780518552600195909501949386019386016113b8565b5098975050505050505050565b6000602082840312156113f4578081fd5b5035919050565b60008060006060848603121561140f578283fd5b505081359360208301359350604090920135919050565b6000815180845260208085019450808401835b8381101561145e5781516001600160a01b031687529582019590820190600101611439565b509495945050505050565b90565b6001600160a01b0391909116815260200190565b901515815260200190565b6000858252608060208301526114a46080830186611426565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b818110156114ec578581018301518582016040015282016114d0565b818111156114fd5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526025908201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060408201526439b4bd329760d91b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f72656365697665722072656a656374656420455448207472616e736665720000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b90815260200190565b600086825285602083015260a0604083015261164f60a0830186611426565b6001600160a01b0394909416606083015250608001529392505050565b60ff91909116815260200190565b6000821982111561168d5761168d6116e8565b500190565b6000826116ad57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156116cc576116cc6116e8565b500290565b6000828210156116e3576116e36116e8565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146105c657600080fdfea264697066735822122062730fdc52c5ffeb7a0ff7c0fb35431db168a11ca2d3b52ca7786be5eb1cd8e364736f6c63430008000033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80636ddd1713116100d1578063a8aa1b311161008a578063dd62ed3e11610064578063dd62ed3e146103b3578063e96fada2146103d3578063f1d5f517146103e8578063f887ea401461040857610171565b8063a8aa1b3114610369578063a9059cbb1461037e578063dab84ee71461039e57610171565b80636ddd1713146102e857806370a08231146102fd578063715018a61461031d5780637d1db4a514610332578063893d20e81461034757806395d89b41146101a157610171565b8063313ce56711610123578063313ce56714610245578063364333f4146102675780633eaaf86b1461027e578063571ac8b0146102935780635b65b9ab146102b35780636c0a24eb146102d357610171565b80630445b6671461017657806306fdde03146101a1578063095ea7b3146101c357806318160ddd146101f057806323b872dd146102055780632f54bf6e1461022557610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61041d565b6040516101989190611627565b60405180910390f35b3480156101ad57600080fd5b506101b6610423565b60405161019891906114c0565b3480156101cf57600080fd5b506101e36101de3660046112fe565b610441565b6040516101989190611480565b3480156101fc57600080fd5b5061018b6104ac565b34801561021157600080fd5b506101e36102203660046112be565b6104b2565b34801561023157600080fd5b506101e361024036600461124e565b610574565b34801561025157600080fd5b5061025a610588565b604051610198919061166c565b34801561027357600080fd5b5061027c61058d565b005b34801561028a57600080fd5b5061018b6105c9565b34801561029f57600080fd5b506101e36102ae36600461124e565b6105cf565b3480156102bf57600080fd5b5061027c6102ce3660046113fb565b6105dd565b3480156102df57600080fd5b5061018b610637565b3480156102f457600080fd5b506101e361063d565b34801561030957600080fd5b5061018b61031836600461124e565b61064d565b34801561032957600080fd5b5061027c610668565b34801561033e57600080fd5b5061018b6106d5565b34801561035357600080fd5b5061035c6106db565b604051610198919061146c565b34801561037557600080fd5b5061035c6106ea565b34801561038a57600080fd5b506101e36103993660046112fe565b6106f9565b3480156103aa57600080fd5b5061035c610706565b3480156103bf57600080fd5b5061018b6103ce366004611286565b610715565b3480156103df57600080fd5b5061035c610740565b3480156103f457600080fd5b5061027c6104033660046113e3565b61074f565b34801561041457600080fd5b5061035c610795565b60145481565b60408051808201909152600481526311d3d05560e21b602082015290565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061049a908690611627565b60405180910390a35060015b92915050565b60035490565b6001600160a01b03831660009081526007602090815260408083203384529091528120546000191461055f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260078252838120338252909152919091205461053a91849061082b565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61056a848484610865565b90505b9392505050565b6000546001600160a01b0390811691161490565b601290565b6011546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105c6573d6000803e3d6000fd5b50565b60035481565b60006104a682600019610441565b6105e633610574565b61060b5760405162461bcd60e51b815260040161060290611607565b60405180910390fd5b600c839055600b829055600d81905580610625838561167a565b61062f919061167a565b600e55505050565b60045481565b601354600160a01b900460ff1681565b6001600160a01b031660009081526006602052604090205490565b61067133610574565b61068d5760405162461bcd60e51b815260040161060290611607565b600080546001600160a01b03191681556040517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163916106cb9161146c565b60405180910390a1565b60055481565b6000546001600160a01b031690565b6013546001600160a01b031681565b600061056d338484610865565b6011546001600160a01b031681565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b6010546001600160a01b031681565b61075833610574565b6107745760405162461bcd60e51b815260040161060290611607565b6103e88160035461078591906116b2565b61078f9190611692565b60045550565b6012546001600160a01b031681565b6000826107b3575060006104a6565b60006107bf83856116b2565b9050826107cc8583611692565b1461056d5760405162461bcd60e51b8152600401610602906115c6565b600061056d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a49565b6000818484111561084f5760405162461bcd60e51b815260040161060291906114c0565b50600061085c84866116d1565b95945050505050565b60155460009060ff16156108855761087e848484610a77565b905061056d565b6013546001600160a01b038481169116148015906108b157506002546001600160a01b03848116911614155b1561091e576001600160a01b0383166000908152600a602052604090205460ff168061090257506004546001600160a01b0384166000908152600660205260409020546108ff90849061167a565b11155b61091e5760405162461bcd60e51b815260040161060290611513565b610926610b5b565b1561093357610933610bb3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526006909152919091205461098591849061082b565b6001600160a01b0385166000908152600660205260408120919091556109aa8561111a565b6109b457826109be565b6109be8584611139565b6001600160a01b0385166000908152600660205260409020549091506109e490826111dd565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a36908590611627565b60405180910390a3506001949350505050565b60008183610a6a5760405162461bcd60e51b815260040161060291906114c0565b50600061085c8486611692565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054610ac891849061082b565b6001600160a01b038086166000908152600660205260408082209390935590851681522054610af790836111dd565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b49908690611627565b60405180910390a35060019392505050565b6013546000906001600160a01b03163314801590610b7c575060155460ff16155b8015610b915750601354600160a01b900460ff165b8015610bae57506014543060009081526006602052604090205410155b905090565b6015805460ff19166001179055601454600e54600d54600091610be691600291610be091829087906107a4565b906107e9565b90506000610bf4838361120c565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610c3c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610c9057600080fd5b505afa158015610ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc8919061126a565b81600181518110610ce957634e487b7160e01b600052603260045260246000fd5b6001600160a01b039290921660209283029190910182015260408051600280825260608201835260009391929091830190803683370190505090503081600181518110610d4657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610d9a57600080fd5b505afa158015610dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd2919061126a565b81600081518110610df357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b81524792919091169063791ac94790610e3d908790600090889030904290600401611630565b600060405180830381600087803b158015610e5757600080fd5b505af1158015610e6b573d6000803e3d6000fd5b505050506000610e84824761120c90919063ffffffff16565b90506000610ea3600e54610be0600c54856107a490919063ffffffff16565b90506000610ec2600e54610be0600b54866107a490919063ffffffff16565b90506000610ee1600e54610be0600d54876107a490919063ffffffff16565b6011546040519192506000916001600160a01b0390911690617530908690610f0890611469565b600060405180830381858888f193505050503d8060008114610f46576040519150601f19603f3d011682016040523d82523d6000602084013e610f4b565b606091505b5050905080610f6c5760405162461bcd60e51b81526004016106029061158f565b6010546040516000916001600160a01b031690617530908690610f8e90611469565b600060405180830381858888f193505050503d8060008114610fcc576040519150601f19603f3d011682016040523d82523d6000602084013e610fd1565b606091505b5050905080610ff25760405162461bcd60e51b81526004016106029061158f565b6000601260009054906101000a90046001600160a01b03166001600160a01b0316637ff36ab58560008c601360009054906101000a90046001600160a01b0316426040518663ffffffff1660e01b8152600401611052949392919061148b565b6000604051808303818588803b15801561106b57600080fd5b505af115801561107f573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526110a89190810190611329565b90506110f1816001815181106110ce57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101513060009081526006909252604090912054906111dd565b3060009081526006602052604090205550506015805460ff191690555050505050505050505050565b6001600160a01b031660009081526009602052604090205460ff161590565b600080611157600f54610be0600e54866107a490919063ffffffff16565b3060009081526006602052604090205490915061117490826111dd565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111c3908590611627565b60405180910390a36111d5838261120c565b949350505050565b6000806111ea838561167a565b90508381101561056d5760405162461bcd60e51b815260040161060290611558565b600061056d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061082b565b60006020828403121561125f578081fd5b813561056d81611714565b60006020828403121561127b578081fd5b815161056d81611714565b60008060408385031215611298578081fd5b82356112a381611714565b915060208301356112b381611714565b809150509250929050565b6000806000606084860312156112d2578081fd5b83356112dd81611714565b925060208401356112ed81611714565b929592945050506040919091013590565b60008060408385031215611310578182fd5b823561131b81611714565b946020939093013593505050565b6000602080838503121561133b578182fd5b825167ffffffffffffffff80821115611352578384fd5b818501915085601f830112611365578384fd5b815181811115611377576113776116fe565b83810260405185828201018181108582111715611396576113966116fe565b604052828152858101935084860182860187018a10156113b4578788fd5b8795505b838610156113d65780518552600195909501949386019386016113b8565b5098975050505050505050565b6000602082840312156113f4578081fd5b5035919050565b60008060006060848603121561140f578283fd5b505081359360208301359350604090920135919050565b6000815180845260208085019450808401835b8381101561145e5781516001600160a01b031687529582019590820190600101611439565b509495945050505050565b90565b6001600160a01b0391909116815260200190565b901515815260200190565b6000858252608060208301526114a46080830186611426565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b818110156114ec578581018301518582016040015282016114d0565b818111156114fd5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526025908201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060408201526439b4bd329760d91b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f72656365697665722072656a656374656420455448207472616e736665720000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b90815260200190565b600086825285602083015260a0604083015261164f60a0830186611426565b6001600160a01b0394909416606083015250608001529392505050565b60ff91909116815260200190565b6000821982111561168d5761168d6116e8565b500190565b6000826116ad57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156116cc576116cc6116e8565b500290565b6000828210156116e3576116e36116e8565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146105c657600080fdfea264697066735822122062730fdc52c5ffeb7a0ff7c0fb35431db168a11ca2d3b52ca7786be5eb1cd8e364736f6c63430008000033

Deployed Bytecode Sourcemap

4350:8248:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5586:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6799:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7221:216::-;;;;;;;;;;-1:-1:-1;7221:216:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6529:88::-;;;;;;;;;;;;;:::i;7739:370::-;;;;;;;;;;-1:-1:-1;7739:370:0;;;;;:::i;:::-;;:::i;2418:103::-;;;;;;;;;;-1:-1:-1;2418:103:0;;;;;:::i;:::-;;:::i;6623:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11992:112::-;;;;;;;;;;;;;:::i;:::-;;4676:57;;;;;;;;;;;;;:::i;7445:122::-;;;;;;;;;;-1:-1:-1;7445:122:0;;;;;:::i;:::-;;:::i;12262:269::-;;;;;;;;;;-1:-1:-1;12262:269:0;;;;;:::i;:::-;;:::i;4740:58::-;;;;;;;;;;;;;:::i;5549:30::-;;;;;;;;;;;;;:::i;6969:105::-;;;;;;;;;;-1:-1:-1;6969:105:0;;;;;:::i;:::-;;:::i;2527:131::-;;;;;;;;;;;;;:::i;4811:60::-;;;;;;;;;;;;;:::i;6885:78::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5521:19::-;;;;;;;;;;;;;:::i;7575:156::-;;;;;;;;;;-1:-1:-1;7575:156:0;;;;;:::i;:::-;;:::i;5407:74::-;;;;;;;;;;;;;:::i;7080:133::-;;;;;;;;;;-1:-1:-1;7080:133:0;;;;;:::i;:::-;;:::i;5320:80::-;;;;;;;;;;;;;:::i;12112:142::-;;;;;;;;;;-1:-1:-1;12112:142:0;;;;;:::i;:::-;;:::i;5490:24::-;;;;;;;;;;;;;:::i;5586:55::-;;;;:::o;6799:80::-;6871:5;;;;;;;;;;;;-1:-1:-1;;;6871:5:0;;;;6799:80;:::o;7221:216::-;7325:10;7296:4;7313:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7313:32:0;;;;;;;;;;:41;;;7370:37;7296:4;;7313:32;;7370:37;;;;7348:6;;7370:37;:::i;:::-;;;;;;;;-1:-1:-1;7425:4:0;7221:216;;;;;:::o;6529:88::-;6602:12;;6529:88;:::o;7739:370::-;-1:-1:-1;;;;;7859:19:0;;7839:4;7859:19;;;:11;:19;;;;;;;;7879:10;7859:31;;;;;;;;-1:-1:-1;;7859:52:0;7856:186;;7961:69;;;;;;;;;;;-1:-1:-1;;;7961:69:0;;;;;;;;-1:-1:-1;;;;;7961:19:0;;-1:-1:-1;7961:19:0;;;:11;:19;;;;;7981:10;7961:31;;;;;;;;;;:69;;7997:6;;7961:35;:69::i;:::-;-1:-1:-1;;;;;7927:19:0;;;;;;:11;:19;;;;;;;;7947:10;7927:31;;;;;;;:103;7856:186;8061:40;8075:6;8083:9;8094:6;8061:13;:40::i;:::-;8054:47;;7739:370;;;;;;:::o;2418:103::-;2473:4;2508:5;-1:-1:-1;;;;;2508:5:0;;;2497:16;;;;2418:103::o;6623:80::-;4665:2;6623:80;:::o;11992:112::-;12049:14;;12041:55;;-1:-1:-1;;;;;12049:14:0;;;;12074:21;12041:55;;;;;12049:14;12041:55;12049:14;12041:55;12074:21;12049:14;12041:55;;;;;;;;;;;;;;;;;;;;;11992:112::o;4676:57::-;;;;:::o;7445:122::-;7500:4;7524:35;7532:7;-1:-1:-1;;7524:7:0;:35::i;12262:269::-;2371:19;2379:10;2371:7;:19::i;:::-;2363:38;;;;-1:-1:-1;;;2363:38:0;;;;;;;:::i;:::-;;;;;;;;;12371:6:::1;:16:::0;;;12398:12:::1;:28:::0;;;12437:12:::1;:28:::0;;;12452:13;12487:21:::1;12413:13:::0;12380:7;12487:21:::1;:::i;:::-;:36;;;;:::i;:::-;12476:8;:47:::0;-1:-1:-1;;;12262:269:0:o;4740:58::-;;;;:::o;5549:30::-;;;-1:-1:-1;;;5549:30:0;;;;;:::o;6969:105::-;-1:-1:-1;;;;;7053:18:0;7035:7;7053:18;;;:9;:18;;;;;;;6969:105::o;2527:131::-;2371:19;2379:10;2371:7;:19::i;:::-;2363:38;;;;-1:-1:-1;;;2363:38:0;;;;;;;:::i;:::-;2600:1:::1;2584:18:::0;;-1:-1:-1;;;;;;2584:18:0::1;::::0;;2618:32:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;2527:131::o:0;4811:60::-;;;;:::o;6885:78::-;6937:7;6955:5;-1:-1:-1;;;;;6955:5:0;6885:78;:::o;5521:19::-;;;-1:-1:-1;;;;;5521:19:0;;:::o;7575:156::-;7655:4;7679:44;7693:10;7705:9;7716:6;7679:13;:44::i;5407:74::-;;;-1:-1:-1;;;;;5407:74:0;;:::o;7080:133::-;-1:-1:-1;;;;;7182:19:0;;;7164:7;7182:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7080:133::o;5320:80::-;;;-1:-1:-1;;;;;5320:80:0;;:::o;12112:142::-;2371:19;2379:10;2371:7;:19::i;:::-;2363:38;;;;-1:-1:-1;;;2363:38:0;;;;;;;:::i;:::-;12242:4:::1;12224:13;12209:12;;:28;;;;:::i;:::-;12208:38;;;;:::i;:::-;12189:16;:57:::0;-1:-1:-1;12112:142:0:o;5490:24::-;;;-1:-1:-1;;;;;5490:24:0;;:::o;702:246::-;760:7;784:6;780:47;;-1:-1:-1;814:1:0;807:8;;780:47;837:9;849:5;853:1;849;:5;:::i;:::-;837:17;-1:-1:-1;882:1:0;873:5;877:1;837:17;873:5;:::i;:::-;:10;865:56;;;;-1:-1:-1;;;865:56:0;;;;;;;:::i;954:132::-;1012:7;1039:39;1043:1;1046;1039:39;;;;;;;;;;;;;;;;;:3;:39::i;506:190::-;592:7;628:12;620:6;;;;612:29;;;;-1:-1:-1;;;612:29:0;;;;;;;;:::i;:::-;-1:-1:-1;652:9:0;664:5;668:1;664;:5;:::i;:::-;652:17;506:190;-1:-1:-1;;;;;506:190:0:o;8117:778::-;8229:6;;8209:4;;8229:6;;8226:63;;;8245:41;8260:6;8268:9;8279:6;8245:14;:41::i;:::-;8238:48;;;;8226:63;8318:4;;-1:-1:-1;;;;;8305:17:0;;;8318:4;;8305:17;;;;:38;;-1:-1:-1;8339:4:0;;-1:-1:-1;;;;;8326:17:0;;;8339:4;;8326:17;;8305:38;8301:200;;;-1:-1:-1;;;;;8368:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;8431:16:0;;-1:-1:-1;;;;;8398:20:0;;;;;;:9;:20;;;;;;:29;;8421:6;;8398:29;:::i;:::-;:49;;8368:79;8360:129;;;;-1:-1:-1;;;8360:129:0;;;;;;;:::i;:::-;8517:16;:14;:16::i;:::-;8514:35;;;8536:10;:8;:10::i;:::-;8581:53;;;;;;;;;;;-1:-1:-1;;;8581:53:0;;;;;;;;-1:-1:-1;;;;;8581:17:0;;-1:-1:-1;8581:17:0;;;:9;:17;;;;;;;;:53;;8603:6;;8581:21;:53::i;:::-;-1:-1:-1;;;;;8561:17:0;;;;;;:9;:17;;;;;:73;;;;8672:21;8571:6;8672:13;:21::i;:::-;:56;;8722:6;8672:56;;;8696:23;8704:6;8712;8696:7;:23::i;:::-;-1:-1:-1;;;;;8762:20:0;;;;;;:9;:20;;;;;;8647:81;;-1:-1:-1;8762:40:0;;8647:81;8762:24;:40::i;:::-;-1:-1:-1;;;;;8739:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8820:43;;;;;;;;;;8848:14;;8820:43;:::i;:::-;;;;;;;;-1:-1:-1;8883:4:0;;8117:778;-1:-1:-1;;;;8117:778:0:o;1092:189::-;1178:7;1213:12;1206:5;1198:28;;;;-1:-1:-1;;;1198:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1237:9:0;1249:5;1253:1;1249;:5;:::i;8903:330::-;9033:53;;;;;;;;;;;-1:-1:-1;;;9033:53:0;;;;;;;;-1:-1:-1;;;;;9033:17:0;;8996:4;9033:17;;;:9;:17;;;;;;;:53;;9055:6;;9033:21;:53::i;:::-;-1:-1:-1;;;;;9013:17:0;;;;;;;:9;:17;;;;;;:73;;;;9120:20;;;;;;;:32;;9145:6;9120:24;:32::i;:::-;-1:-1:-1;;;;;9097:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9168:35;;;;;;;;;;9196:6;;9168:35;:::i;:::-;;;;;;;;-1:-1:-1;9221:4:0;8903:330;;;;;:::o;9700:197::-;9787:4;;9749;;-1:-1:-1;;;;;9787:4:0;9773:10;:18;;;;:38;;-1:-1:-1;9805:6:0;;;;9804:7;9773:38;:62;;;;-1:-1:-1;9824:11:0;;-1:-1:-1;;;9824:11:0;;;;9773:62;:116;;;;-1:-1:-1;9876:13:0;;9866:4;9848:24;;;;:9;:24;;;;;;:41;;9773:116;9766:123;;9700:197;:::o;9905:1701::-;5697:6;:13;;-1:-1:-1;;5697:13:0;5706:4;5697:13;;;9985::::1;::::0;10078:8:::1;::::0;10060:12:::1;::::0;5697:6;;10035:59:::1;::::0;10092:1:::1;::::0;10035:52:::1;::::0;;;9985:13;;10035:24:::1;:38::i;:::-;:42:::0;::::1;:52::i;:59::-;10009:85:::0;-1:-1:-1;10105:20:0::1;10128:41;:20:::0;10009:85;10128:24:::1;:41::i;:::-;10206:16;::::0;;10220:1:::1;10206:16:::0;;;;;::::1;::::0;;10105:64;;-1:-1:-1;10182:21:0::1;::::0;10206:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10206:16:0::1;10182:40;;10251:4;10233;10238:1;10233:7;;;;;;-1:-1:-1::0;;;10233:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;10233:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10277:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;10277:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;10233:7;;10277:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10267:4;10272:1;10267:7;;;;;;-1:-1:-1::0;;;10267:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;10267:23:0;;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;10328:16:::1;::::0;;10342:1:::1;10328:16:::0;;;;;::::1;::::0;;10303:22:::1;::::0;10328:16;;10342:1;;10328:16;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10328:16:0::1;10303:41;;10374:4;10355:5;10361:1;10355:8;;;;;;-1:-1:-1::0;;;10355:8:0::1;;;;;;;;;-1:-1:-1::0;;;;;10355:24:0;;::::1;:8;::::0;;::::1;::::0;;;;;;:24;;;;10401:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;10401:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;10355:8;;10401:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10390:5;10396:1;10390:8;;;;;;-1:-1:-1::0;;;10390:8:0::1;;;;;;;;;-1:-1:-1::0;;;;;10390:24:0;;::::1;:8;::::0;;::::1;::::0;;;;;:24;10485:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;10485:188:0;;10451:21:::1;::::0;10485:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;10557:12;;10427:21:::1;::::0;10600:4;;10627::::1;::::0;10647:15:::1;::::0;10485:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10684:17;10704:40;10730:13;10704:21;:25;;:40;;;;:::i;:::-;10684:60;;10756:20;10779:35;10805:8;;10779:21;10793:6;;10779:9;:13;;:21;;;;:::i;:35::-;10756:58;;10825:26;10854:41;10886:8;;10854:27;10868:12;;10854:9;:13;;:27;;;;:::i;:41::-;10825:70;;10906:26;10935:41;10967:8;;10935:27;10949:12;;10935:9;:13;;:27;;;;:::i;:41::-;11021:14;::::0;11013:65:::1;::::0;10906:70;;-1:-1:-1;10992:15:0::1;::::0;-1:-1:-1;;;;;11021:14:0;;::::1;::::0;11068:5:::1;::::0;11049:12;;11013:65:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10991:87;;;11097:10;11089:53;;;;-1:-1:-1::0;;;11089:53:0::1;;;;;;;:::i;:::-;11189:20;::::0;11181:77:::1;::::0;11154:21:::1;::::0;-1:-1:-1;;;;;11189:20:0::1;::::0;11248:5:::1;::::0;11223:18;;11181:77:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11153:105;;;11277:16;11269:59;;;;-1:-1:-1::0;;;11269:59:0::1;;;;;;;:::i;:::-;11341:21;11365:6;;;;;;;;;-1:-1:-1::0;;;;;11365:6:0::1;-1:-1:-1::0;;;;;11365:28:0::1;;11401:18;11435:1;11451:5;11471:4;;;;;;;;;-1:-1:-1::0;;;;;11471:4:0::1;11490:15;11365:152;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;11365:152:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;11341:176;;11558:40;11587:7;11595:1;11587:10;;;;;;-1:-1:-1::0;;;11587:10:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;11576:4:::1;11558:24;::::0;;;:9:::1;:24:::0;;;;;;;;;:28:::1;:40::i;:::-;11549:4;11531:24;::::0;;;:9:::1;:24;::::0;;;;:67;-1:-1:-1;;5715:6:0;:14;;-1:-1:-1;;5715:14:0;;;-1:-1:-1;;;;;;;;;;;9905:1701:0:o;9241:114::-;-1:-1:-1;;;;;9328:19:0;9303:4;9328:19;;;:11;:19;;;;;;;;9327:20;;9241:114::o;9363:329::-;9430:7;9450:17;9470:40;9495:14;;9470:20;9481:8;;9470:6;:10;;:20;;;;:::i;:40::-;9566:4;9548:24;;;;:9;:24;;;;;;9450:60;;-1:-1:-1;9548:39:0;;9450:60;9548:28;:39::i;:::-;9539:4;9521:24;;;;:9;:24;;;;;;;:66;;;;9603:42;;-1:-1:-1;;;;;9603:42:0;;;;;;;9635:9;;9603:42;:::i;:::-;;;;;;;;9663:21;:6;9674:9;9663:10;:21::i;:::-;9656:28;9363:329;-1:-1:-1;;;;9363:329:0:o;179:179::-;237:7;;269:5;273:1;269;:5;:::i;:::-;257:17;;298:1;293;:6;;285:46;;;;-1:-1:-1;;;285:46:0;;;;;;;:::i;364:136::-;422:7;449:43;453:1;456;449:43;;;;;;;;;;;;;;;;;:3;:43::i;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:402::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:33;786:5;759:33;:::i;:::-;811:5;-1:-1:-1;868:2:1;853:18;;840:32;881:35;840:32;881:35;:::i;:::-;935:7;925:17;;;633:315;;;;;:::o;953:470::-;;;;1099:2;1087:9;1078:7;1074:23;1070:32;1067:2;;;1120:6;1112;1105:22;1067:2;1164:9;1151:23;1183:33;1210:5;1183:33;:::i;:::-;1235:5;-1:-1:-1;1292:2:1;1277:18;;1264:32;1305:35;1264:32;1305:35;:::i;:::-;1057:366;;1359:7;;-1:-1:-1;;;1413:2:1;1398:18;;;;1385:32;;1057:366::o;1428:327::-;;;1557:2;1545:9;1536:7;1532:23;1528:32;1525:2;;;1578:6;1570;1563:22;1525:2;1622:9;1609:23;1641:33;1668:5;1641:33;:::i;:::-;1693:5;1745:2;1730:18;;;;1717:32;;-1:-1:-1;;;1515:240:1:o;1760:1148::-;;1886:2;1929;1917:9;1908:7;1904:23;1900:32;1897:2;;;1950:6;1942;1935:22;1897:2;1988:9;1982:16;2017:18;2058:2;2050:6;2047:14;2044:2;;;2079:6;2071;2064:22;2044:2;2122:6;2111:9;2107:22;2097:32;;2167:7;2160:4;2156:2;2152:13;2148:27;2138:2;;2194:6;2186;2179:22;2138:2;2228;2222:9;2250:2;2246;2243:10;2240:2;;;2256:18;;:::i;:::-;2303:2;2299;2295:11;2335:2;2329:9;2386:2;2381;2373:6;2369:15;2365:24;2439:6;2427:10;2424:22;2419:2;2407:10;2404:18;2401:46;2398:2;;;2450:18;;:::i;:::-;2486:2;2479:22;2536:18;;;2570:15;;;;-1:-1:-1;2605:11:1;;;2635;;;2631:20;;2628:33;-1:-1:-1;2625:2:1;;;2679:6;2671;2664:22;2625:2;2706:6;2697:15;;2721:156;2735:2;2732:1;2729:9;2721:156;;;2792:10;;2780:23;;2753:1;2746:9;;;;;2823:12;;;;2855;;2721:156;;;-1:-1:-1;2896:6:1;1866:1042;-1:-1:-1;;;;;;;;1866:1042:1:o;2913:190::-;;3025:2;3013:9;3004:7;3000:23;2996:32;2993:2;;;3046:6;3038;3031:22;2993:2;-1:-1:-1;3074:23:1;;2983:120;-1:-1:-1;2983:120:1:o;3108:326::-;;;;3254:2;3242:9;3233:7;3229:23;3225:32;3222:2;;;3275:6;3267;3260:22;3222:2;-1:-1:-1;;3303:23:1;;;3373:2;3358:18;;3345:32;;-1:-1:-1;3424:2:1;3409:18;;;3396:32;;3212:222;-1:-1:-1;3212:222:1:o;3439:469::-;;3536:5;3530:12;3563:6;3558:3;3551:19;3589:4;3618:2;3613:3;3609:12;3602:19;;3655:2;3648:5;3644:14;3676:3;3688:195;3702:6;3699:1;3696:13;3688:195;;;3767:13;;-1:-1:-1;;;;;3763:39:1;3751:52;;3823:12;;;;3858:15;;;;3799:1;3717:9;3688:195;;;-1:-1:-1;3899:3:1;;3506:402;-1:-1:-1;;;;;3506:402:1:o;3913:205::-;4113:3;4104:14::o;4123:203::-;-1:-1:-1;;;;;4287:32:1;;;;4269:51;;4257:2;4242:18;;4224:102::o;4331:187::-;4496:14;;4489:22;4471:41;;4459:2;4444:18;;4426:92::o;4749:516::-;;5020:6;5009:9;5002:25;5063:3;5058:2;5047:9;5043:18;5036:31;5084:63;5142:3;5131:9;5127:19;5119:6;5084:63;:::i;:::-;-1:-1:-1;;;;;5183:32:1;;;;5178:2;5163:18;;5156:60;-1:-1:-1;5247:2:1;5232:18;5225:34;5076:71;4992:273;-1:-1:-1;;4992:273:1:o;5270:603::-;;5411:2;5440;5429:9;5422:21;5472:6;5466:13;5515:6;5510:2;5499:9;5495:18;5488:34;5540:4;5553:140;5567:6;5564:1;5561:13;5553:140;;;5662:14;;;5658:23;;5652:30;5628:17;;;5647:2;5624:26;5617:66;5582:10;;5553:140;;;5711:6;5708:1;5705:13;5702:2;;;5781:4;5776:2;5767:6;5756:9;5752:22;5748:31;5741:45;5702:2;-1:-1:-1;5857:2:1;5836:15;-1:-1:-1;;5832:29:1;5817:45;;;;5864:2;5813:54;;5391:482;-1:-1:-1;;;5391:482:1:o;5878:401::-;6080:2;6062:21;;;6119:2;6099:18;;;6092:30;6158:34;6153:2;6138:18;;6131:62;-1:-1:-1;;;6224:2:1;6209:18;;6202:35;6269:3;6254:19;;6052:227::o;6284:351::-;6486:2;6468:21;;;6525:2;6505:18;;;6498:30;6564:29;6559:2;6544:18;;6537:57;6626:2;6611:18;;6458:177::o;6640:354::-;6842:2;6824:21;;;6881:2;6861:18;;;6854:30;6920:32;6915:2;6900:18;;6893:60;6985:2;6970:18;;6814:180::o;6999:397::-;7201:2;7183:21;;;7240:2;7220:18;;;7213:30;7279:34;7274:2;7259:18;;7252:62;-1:-1:-1;;;7345:2:1;7330:18;;7323:31;7386:3;7371:19;;7173:223::o;7401:329::-;7603:2;7585:21;;;7642:1;7622:18;;;7615:29;-1:-1:-1;;;7675:2:1;7660:18;;7653:36;7721:2;7706:18;;7575:155::o;7735:177::-;7881:25;;;7869:2;7854:18;;7836:76::o;7917:588::-;;8216:6;8205:9;8198:25;8259:6;8254:2;8243:9;8239:18;8232:34;8302:3;8297:2;8286:9;8282:18;8275:31;8323:63;8381:3;8370:9;8366:19;8358:6;8323:63;:::i;:::-;-1:-1:-1;;;;;8422:32:1;;;;8417:2;8402:18;;8395:60;-1:-1:-1;8486:3:1;8471:19;8464:35;8315:71;8188:317;-1:-1:-1;;;8188:317:1:o;8510:184::-;8682:4;8670:17;;;;8652:36;;8640:2;8625:18;;8607:87::o;8699:128::-;;8770:1;8766:6;8763:1;8760:13;8757:2;;;8776:18;;:::i;:::-;-1:-1:-1;8812:9:1;;8747:80::o;8832:217::-;;8898:1;8888:2;;-1:-1:-1;;;8923:31:1;;8977:4;8974:1;8967:15;9005:4;8930:1;8995:15;8888:2;-1:-1:-1;9034:9:1;;8878:171::o;9054:168::-;;9160:1;9156;9152:6;9148:14;9145:1;9142:21;9137:1;9130:9;9123:17;9119:45;9116:2;;;9167:18;;:::i;:::-;-1:-1:-1;9207:9:1;;9106:116::o;9227:125::-;;9295:1;9292;9289:8;9286:2;;;9300:18;;:::i;:::-;-1:-1:-1;9337:9:1;;9276:76::o;9357:127::-;9418:10;9413:3;9409:20;9406:1;9399:31;9449:4;9446:1;9439:15;9473:4;9470:1;9463:15;9489:127;9550:10;9545:3;9541:20;9538:1;9531:31;9581:4;9578:1;9571:15;9605:4;9602:1;9595:15;9621:133;-1:-1:-1;;;;;9698:31:1;;9688:42;;9678:2;;9744:1;9741;9734:12

Swarm Source

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