ETH Price: $2,496.97 (-3.53%)

Token

FUTURAMA (FUT)
 

Overview

Max Total Supply

1,000,000 FUT

Holders

100

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,932.344083853965709304 FUT

Value
$0.00
0xe5e7d1e8216abb22e360e128fea495a5c031bc1f
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:
FUTURAMA

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-05-18
*/

//SPDX-License-Identifier: MIT


/*

Twitter : https://twitter.com/futuramacoin
Telegram : https://t.me/futuramatoken

*/

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 FUTURAMA is ERC20, OwnableL {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; 
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "FUTURAMA";
    string constant _symbol = "FUT";
    uint8 constant _decimals = 18;

    uint256 public _totalSupply = 1000000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 2) / 100; // 2%
    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 = 2;
    uint256 devFee = 2;
    uint256 liquidityFee = 1;
    uint256 totalFee = devFee + marketingFee + liquidityFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = 0xbBEc8A92ea0Fb676832271f5c5A545D5A35FeACc;
    address public devFeeReceiver = 0x11D81f410E6702C02fe3cd0DD59DD71BE5b2e909;

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

    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"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486012600a6200068c565b6200005790620f424062000777565b600355606460035460026200006d919062000777565b6200007991906200061e565b600455620000b360646200009f60646003546200043860201b620007d91790919060201c565b6200049860201b6200081e1790919060201c565b6005556002600b556002600c556001600d55600d54600b54600c54620000da919062000603565b620000e6919062000603565b600e556064600f55601080546001600160a01b031990811673bbec8a92ea0fb676832271f5c5a545d5a35feacc17909155601180549091167311d81f410e6702c02fe3cd0dd59dd71be5b2e9091790556013805460ff60a01b1916600160a01b179055600354610258906200015d90600262000777565b6200016991906200061e565b6014553480156200017957600080fd5b50600080546001600160a01b03199081163317909155600154601280549092166001600160a01b0391821617918290556040805163c45a015560e01b81529051929091169163c45a015591600480820192602092909190829003018186803b158015620001e557600080fd5b505afa158015620001fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000220919062000520565b6001600160a01b031663c9c65396601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027d57600080fd5b505afa15801562000292573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b8919062000520565b306040518363ffffffff1660e01b8152600401620002d892919062000549565b602060405180830381600087803b158015620002f357600080fd5b505af115801562000308573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032e919062000520565b601380546001600160a01b0319166001600160a01b039283161790553060009081526007602090815260408083206012548516845282528083206000199055825433845260088352818420805460ff19908116600190811790925591861680865260098552838620805484168317905560108054881687528487208054851684179055818752600a8652848720805485168417905554871686528386208054841683179055600254909616855282852080549092161790556003548484526006909252808320829055518392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620004299190620005fa565b60405180910390a350620007af565b600082620004495750600062000492565b600062000457838562000777565b9050826200046685836200061e565b146200048f5760405162461bcd60e51b81526004016200048690620005b9565b60405180910390fd5b90505b92915050565b60006200048f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004e260201b60201c565b60008183620005065760405162461bcd60e51b815260040162000486919062000563565b5060006200051584866200061e565b9150505b9392505050565b60006020828403121562000532578081fd5b81516001600160a01b03811681146200048f578182fd5b6001600160a01b0392831681529116602082015260400190565b6000602080835283518082850152825b81811015620005915785810183015185820160400152820162000573565b81811115620005a35783604083870101525b50601f01601f1916929092016040019392505050565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b90815260200190565b6000821982111562000619576200061962000799565b500190565b6000826200063a57634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861162000653575062000683565b81870482111562000668576200066862000799565b808616156200067657918102915b9490941c93800262000642565b94509492505050565b60006200048f60001960ff851684600082620006ab5750600162000519565b81620006ba5750600062000519565b8160018114620006d35760028114620006de5762000712565b600191505062000519565b60ff841115620006f257620006f262000799565b6001841b9150848211156200070b576200070b62000799565b5062000519565b5060208310610133831016604e8410600b84101617156200074a575081810a8381111562000744576200074462000799565b62000519565b6200075984848460016200063f565b8086048211156200076e576200076e62000799565b02949350505050565b600081600019048311821515161562000794576200079462000799565b500290565b634e487b7160e01b600052601160045260246000fd5b61179480620007bf6000396000f3fe60806040526004361061016a5760003560e01c80636ddd1713116100d1578063a8aa1b311161008a578063dd62ed3e11610064578063dd62ed3e146103c8578063e96fada2146103e8578063f1d5f517146103fd578063f887ea401461041d57610171565b8063a8aa1b311461037e578063a9059cbb14610393578063dab84ee7146103b357610171565b80636ddd1713146102e857806370a08231146102fd578063715018a61461031d5780637d1db4a514610332578063893d20e81461034757806395d89b411461036957610171565b8063313ce56711610123578063313ce56714610245578063364333f4146102675780633eaaf86b1461027e578063571ac8b0146102935780635b65b9ab146102b35780636c0a24eb146102d357610171565b80630445b6671461017657806306fdde03146101a1578063095ea7b3146101c357806318160ddd146101f057806323b872dd146102055780632f54bf6e1461022557610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b610432565b604051610198919061165c565b60405180910390f35b3480156101ad57600080fd5b506101b6610438565b60405161019891906114f5565b3480156101cf57600080fd5b506101e36101de366004611333565b61045a565b60405161019891906114b5565b3480156101fc57600080fd5b5061018b6104c5565b34801561021157600080fd5b506101e36102203660046112f3565b6104cb565b34801561023157600080fd5b506101e3610240366004611283565b61058d565b34801561025157600080fd5b5061025a6105a1565b60405161019891906116a1565b34801561027357600080fd5b5061027c6105a6565b005b34801561028a57600080fd5b5061018b6105e2565b34801561029f57600080fd5b506101e36102ae366004611283565b6105e8565b3480156102bf57600080fd5b5061027c6102ce366004611430565b6105f6565b3480156102df57600080fd5b5061018b610650565b3480156102f457600080fd5b506101e3610656565b34801561030957600080fd5b5061018b610318366004611283565b610666565b34801561032957600080fd5b5061027c610681565b34801561033e57600080fd5b5061018b6106ee565b34801561035357600080fd5b5061035c6106f4565b60405161019891906114a1565b34801561037557600080fd5b506101b6610703565b34801561038a57600080fd5b5061035c610720565b34801561039f57600080fd5b506101e36103ae366004611333565b61072f565b3480156103bf57600080fd5b5061035c61073c565b3480156103d457600080fd5b5061018b6103e33660046112bb565b61074b565b3480156103f457600080fd5b5061035c610776565b34801561040957600080fd5b5061027c610418366004611418565b610785565b34801561042957600080fd5b5061035c6107ca565b60145481565b6040805180820190915260088152674655545552414d4160c01b602082015290565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104b390869061165c565b60405180910390a35060015b92915050565b60035490565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610578576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610553918490610860565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61058384848461089a565b90505b9392505050565b6000546001600160a01b0390811691161490565b601290565b6011546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105df573d6000803e3d6000fd5b50565b60035481565b60006104bf8260001961045a565b6105ff3361058d565b6106245760405162461bcd60e51b815260040161061b9061163c565b60405180910390fd5b600c839055600b829055600d8190558061063e83856116af565b61064891906116af565b600e55505050565b60045481565b601354600160a01b900460ff1681565b6001600160a01b031660009081526006602052604090205490565b61068a3361058d565b6106a65760405162461bcd60e51b815260040161061b9061163c565b600080546001600160a01b03191681556040517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163916106e4916114a1565b60405180910390a1565b60055481565b6000546001600160a01b031690565b60408051808201909152600381526211955560ea1b602082015290565b6013546001600160a01b031681565b600061058633848461089a565b6011546001600160a01b031681565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b6010546001600160a01b031681565b61078e3361058d565b6107aa5760405162461bcd60e51b815260040161061b9061163c565b6064816003546107ba91906116e7565b6107c491906116c7565b60045550565b6012546001600160a01b031681565b6000826107e8575060006104bf565b60006107f483856116e7565b90508261080185836116c7565b146105865760405162461bcd60e51b815260040161061b906115fb565b600061058683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a7e565b600081848411156108845760405162461bcd60e51b815260040161061b91906114f5565b5060006108918486611706565b95945050505050565b60155460009060ff16156108ba576108b3848484610aac565b9050610586565b6013546001600160a01b038481169116148015906108e657506002546001600160a01b03848116911614155b15610953576001600160a01b0383166000908152600a602052604090205460ff168061093757506004546001600160a01b0384166000908152600660205260409020546109349084906116af565b11155b6109535760405162461bcd60e51b815260040161061b90611548565b61095b610b90565b1561096857610968610be8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600690915291909120546109ba918490610860565b6001600160a01b0385166000908152600660205260408120919091556109df8561114f565b6109e957826109f3565b6109f3858461116e565b6001600160a01b038516600090815260066020526040902054909150610a199082611212565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a6b90859061165c565b60405180910390a3506001949350505050565b60008183610a9f5760405162461bcd60e51b815260040161061b91906114f5565b50600061089184866116c7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054610afd918490610860565b6001600160a01b038086166000908152600660205260408082209390935590851681522054610b2c9083611212565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b7e90869061165c565b60405180910390a35060019392505050565b6013546000906001600160a01b03163314801590610bb1575060155460ff16155b8015610bc65750601354600160a01b900460ff165b8015610be357506014543060009081526006602052604090205410155b905090565b6015805460ff19166001179055601454600e54600d54600091610c1b91600291610c1591829087906107d9565b9061081e565b90506000610c298383611241565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610c7157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610cc557600080fd5b505afa158015610cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd919061129f565b81600181518110610d1e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039290921660209283029190910182015260408051600280825260608201835260009391929091830190803683370190505090503081600181518110610d7b57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610dcf57600080fd5b505afa158015610de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e07919061129f565b81600081518110610e2857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b81524792919091169063791ac94790610e72908790600090889030904290600401611665565b600060405180830381600087803b158015610e8c57600080fd5b505af1158015610ea0573d6000803e3d6000fd5b505050506000610eb9824761124190919063ffffffff16565b90506000610ed8600e54610c15600c54856107d990919063ffffffff16565b90506000610ef7600e54610c15600b54866107d990919063ffffffff16565b90506000610f16600e54610c15600d54876107d990919063ffffffff16565b6011546040519192506000916001600160a01b0390911690617530908690610f3d9061149e565b600060405180830381858888f193505050503d8060008114610f7b576040519150601f19603f3d011682016040523d82523d6000602084013e610f80565b606091505b5050905080610fa15760405162461bcd60e51b815260040161061b906115c4565b6010546040516000916001600160a01b031690617530908690610fc39061149e565b600060405180830381858888f193505050503d8060008114611001576040519150601f19603f3d011682016040523d82523d6000602084013e611006565b606091505b50509050806110275760405162461bcd60e51b815260040161061b906115c4565b6000601260009054906101000a90046001600160a01b03166001600160a01b0316637ff36ab58560008c601360009054906101000a90046001600160a01b0316426040518663ffffffff1660e01b815260040161108794939291906114c0565b6000604051808303818588803b1580156110a057600080fd5b505af11580156110b4573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526110dd919081019061135e565b90506111268160018151811061110357634e487b7160e01b600052603260045260246000fd5b602090810291909101810151306000908152600690925260409091205490611212565b3060009081526006602052604090205550506015805460ff191690555050505050505050505050565b6001600160a01b031660009081526009602052604090205460ff161590565b60008061118c600f54610c15600e54866107d990919063ffffffff16565b306000908152600660205260409020549091506111a99082611212565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111f890859061165c565b60405180910390a361120a8382611241565b949350505050565b60008061121f83856116af565b9050838110156105865760405162461bcd60e51b815260040161061b9061158d565b600061058683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610860565b600060208284031215611294578081fd5b813561058681611749565b6000602082840312156112b0578081fd5b815161058681611749565b600080604083850312156112cd578081fd5b82356112d881611749565b915060208301356112e881611749565b809150509250929050565b600080600060608486031215611307578081fd5b833561131281611749565b9250602084013561132281611749565b929592945050506040919091013590565b60008060408385031215611345578182fd5b823561135081611749565b946020939093013593505050565b60006020808385031215611370578182fd5b825167ffffffffffffffff80821115611387578384fd5b818501915085601f83011261139a578384fd5b8151818111156113ac576113ac611733565b838102604051858282010181811085821117156113cb576113cb611733565b604052828152858101935084860182860187018a10156113e9578788fd5b8795505b8386101561140b5780518552600195909501949386019386016113ed565b5098975050505050505050565b600060208284031215611429578081fd5b5035919050565b600080600060608486031215611444578283fd5b505081359360208301359350604090920135919050565b6000815180845260208085019450808401835b838110156114935781516001600160a01b03168752958201959082019060010161146e565b509495945050505050565b90565b6001600160a01b0391909116815260200190565b901515815260200190565b6000858252608060208301526114d9608083018661145b565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b8181101561152157858101830151858201604001528201611505565b818111156115325783604083870101525b50601f01601f1916929092016040019392505050565b60208082526025908201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060408201526439b4bd329760d91b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f72656365697665722072656a656374656420455448207472616e736665720000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b90815260200190565b600086825285602083015260a0604083015261168460a083018661145b565b6001600160a01b0394909416606083015250608001529392505050565b60ff91909116815260200190565b600082198211156116c2576116c261171d565b500190565b6000826116e257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156117015761170161171d565b500290565b6000828210156117185761171861171d565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146105df57600080fdfea26469706673582212204be079b73ac99ffee7a0433e0c09625cc15ddb0d3faa776a0597e08c7c64b77c64736f6c63430008000033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80636ddd1713116100d1578063a8aa1b311161008a578063dd62ed3e11610064578063dd62ed3e146103c8578063e96fada2146103e8578063f1d5f517146103fd578063f887ea401461041d57610171565b8063a8aa1b311461037e578063a9059cbb14610393578063dab84ee7146103b357610171565b80636ddd1713146102e857806370a08231146102fd578063715018a61461031d5780637d1db4a514610332578063893d20e81461034757806395d89b411461036957610171565b8063313ce56711610123578063313ce56714610245578063364333f4146102675780633eaaf86b1461027e578063571ac8b0146102935780635b65b9ab146102b35780636c0a24eb146102d357610171565b80630445b6671461017657806306fdde03146101a1578063095ea7b3146101c357806318160ddd146101f057806323b872dd146102055780632f54bf6e1461022557610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b610432565b604051610198919061165c565b60405180910390f35b3480156101ad57600080fd5b506101b6610438565b60405161019891906114f5565b3480156101cf57600080fd5b506101e36101de366004611333565b61045a565b60405161019891906114b5565b3480156101fc57600080fd5b5061018b6104c5565b34801561021157600080fd5b506101e36102203660046112f3565b6104cb565b34801561023157600080fd5b506101e3610240366004611283565b61058d565b34801561025157600080fd5b5061025a6105a1565b60405161019891906116a1565b34801561027357600080fd5b5061027c6105a6565b005b34801561028a57600080fd5b5061018b6105e2565b34801561029f57600080fd5b506101e36102ae366004611283565b6105e8565b3480156102bf57600080fd5b5061027c6102ce366004611430565b6105f6565b3480156102df57600080fd5b5061018b610650565b3480156102f457600080fd5b506101e3610656565b34801561030957600080fd5b5061018b610318366004611283565b610666565b34801561032957600080fd5b5061027c610681565b34801561033e57600080fd5b5061018b6106ee565b34801561035357600080fd5b5061035c6106f4565b60405161019891906114a1565b34801561037557600080fd5b506101b6610703565b34801561038a57600080fd5b5061035c610720565b34801561039f57600080fd5b506101e36103ae366004611333565b61072f565b3480156103bf57600080fd5b5061035c61073c565b3480156103d457600080fd5b5061018b6103e33660046112bb565b61074b565b3480156103f457600080fd5b5061035c610776565b34801561040957600080fd5b5061027c610418366004611418565b610785565b34801561042957600080fd5b5061035c6107ca565b60145481565b6040805180820190915260088152674655545552414d4160c01b602082015290565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104b390869061165c565b60405180910390a35060015b92915050565b60035490565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610578576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610553918490610860565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61058384848461089a565b90505b9392505050565b6000546001600160a01b0390811691161490565b601290565b6011546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105df573d6000803e3d6000fd5b50565b60035481565b60006104bf8260001961045a565b6105ff3361058d565b6106245760405162461bcd60e51b815260040161061b9061163c565b60405180910390fd5b600c839055600b829055600d8190558061063e83856116af565b61064891906116af565b600e55505050565b60045481565b601354600160a01b900460ff1681565b6001600160a01b031660009081526006602052604090205490565b61068a3361058d565b6106a65760405162461bcd60e51b815260040161061b9061163c565b600080546001600160a01b03191681556040517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163916106e4916114a1565b60405180910390a1565b60055481565b6000546001600160a01b031690565b60408051808201909152600381526211955560ea1b602082015290565b6013546001600160a01b031681565b600061058633848461089a565b6011546001600160a01b031681565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b6010546001600160a01b031681565b61078e3361058d565b6107aa5760405162461bcd60e51b815260040161061b9061163c565b6064816003546107ba91906116e7565b6107c491906116c7565b60045550565b6012546001600160a01b031681565b6000826107e8575060006104bf565b60006107f483856116e7565b90508261080185836116c7565b146105865760405162461bcd60e51b815260040161061b906115fb565b600061058683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a7e565b600081848411156108845760405162461bcd60e51b815260040161061b91906114f5565b5060006108918486611706565b95945050505050565b60155460009060ff16156108ba576108b3848484610aac565b9050610586565b6013546001600160a01b038481169116148015906108e657506002546001600160a01b03848116911614155b15610953576001600160a01b0383166000908152600a602052604090205460ff168061093757506004546001600160a01b0384166000908152600660205260409020546109349084906116af565b11155b6109535760405162461bcd60e51b815260040161061b90611548565b61095b610b90565b1561096857610968610be8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600690915291909120546109ba918490610860565b6001600160a01b0385166000908152600660205260408120919091556109df8561114f565b6109e957826109f3565b6109f3858461116e565b6001600160a01b038516600090815260066020526040902054909150610a199082611212565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a6b90859061165c565b60405180910390a3506001949350505050565b60008183610a9f5760405162461bcd60e51b815260040161061b91906114f5565b50600061089184866116c7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054610afd918490610860565b6001600160a01b038086166000908152600660205260408082209390935590851681522054610b2c9083611212565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b7e90869061165c565b60405180910390a35060019392505050565b6013546000906001600160a01b03163314801590610bb1575060155460ff16155b8015610bc65750601354600160a01b900460ff165b8015610be357506014543060009081526006602052604090205410155b905090565b6015805460ff19166001179055601454600e54600d54600091610c1b91600291610c1591829087906107d9565b9061081e565b90506000610c298383611241565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610c7157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610cc557600080fd5b505afa158015610cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd919061129f565b81600181518110610d1e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039290921660209283029190910182015260408051600280825260608201835260009391929091830190803683370190505090503081600181518110610d7b57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610dcf57600080fd5b505afa158015610de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e07919061129f565b81600081518110610e2857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b81524792919091169063791ac94790610e72908790600090889030904290600401611665565b600060405180830381600087803b158015610e8c57600080fd5b505af1158015610ea0573d6000803e3d6000fd5b505050506000610eb9824761124190919063ffffffff16565b90506000610ed8600e54610c15600c54856107d990919063ffffffff16565b90506000610ef7600e54610c15600b54866107d990919063ffffffff16565b90506000610f16600e54610c15600d54876107d990919063ffffffff16565b6011546040519192506000916001600160a01b0390911690617530908690610f3d9061149e565b600060405180830381858888f193505050503d8060008114610f7b576040519150601f19603f3d011682016040523d82523d6000602084013e610f80565b606091505b5050905080610fa15760405162461bcd60e51b815260040161061b906115c4565b6010546040516000916001600160a01b031690617530908690610fc39061149e565b600060405180830381858888f193505050503d8060008114611001576040519150601f19603f3d011682016040523d82523d6000602084013e611006565b606091505b50509050806110275760405162461bcd60e51b815260040161061b906115c4565b6000601260009054906101000a90046001600160a01b03166001600160a01b0316637ff36ab58560008c601360009054906101000a90046001600160a01b0316426040518663ffffffff1660e01b815260040161108794939291906114c0565b6000604051808303818588803b1580156110a057600080fd5b505af11580156110b4573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526110dd919081019061135e565b90506111268160018151811061110357634e487b7160e01b600052603260045260246000fd5b602090810291909101810151306000908152600690925260409091205490611212565b3060009081526006602052604090205550506015805460ff191690555050505050505050505050565b6001600160a01b031660009081526009602052604090205460ff161590565b60008061118c600f54610c15600e54866107d990919063ffffffff16565b306000908152600660205260409020549091506111a99082611212565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111f890859061165c565b60405180910390a361120a8382611241565b949350505050565b60008061121f83856116af565b9050838110156105865760405162461bcd60e51b815260040161061b9061158d565b600061058683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610860565b600060208284031215611294578081fd5b813561058681611749565b6000602082840312156112b0578081fd5b815161058681611749565b600080604083850312156112cd578081fd5b82356112d881611749565b915060208301356112e881611749565b809150509250929050565b600080600060608486031215611307578081fd5b833561131281611749565b9250602084013561132281611749565b929592945050506040919091013590565b60008060408385031215611345578182fd5b823561135081611749565b946020939093013593505050565b60006020808385031215611370578182fd5b825167ffffffffffffffff80821115611387578384fd5b818501915085601f83011261139a578384fd5b8151818111156113ac576113ac611733565b838102604051858282010181811085821117156113cb576113cb611733565b604052828152858101935084860182860187018a10156113e9578788fd5b8795505b8386101561140b5780518552600195909501949386019386016113ed565b5098975050505050505050565b600060208284031215611429578081fd5b5035919050565b600080600060608486031215611444578283fd5b505081359360208301359350604090920135919050565b6000815180845260208085019450808401835b838110156114935781516001600160a01b03168752958201959082019060010161146e565b509495945050505050565b90565b6001600160a01b0391909116815260200190565b901515815260200190565b6000858252608060208301526114d9608083018661145b565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b8181101561152157858101830151858201604001528201611505565b818111156115325783604083870101525b50601f01601f1916929092016040019392505050565b60208082526025908201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060408201526439b4bd329760d91b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f72656365697665722072656a656374656420455448207472616e736665720000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b90815260200190565b600086825285602083015260a0604083015261168460a083018661145b565b6001600160a01b0394909416606083015250608001529392505050565b60ff91909116815260200190565b600082198211156116c2576116c261171d565b500190565b6000826116e257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156117015761170161171d565b500290565b6000828210156117185761171861171d565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146105df57600080fdfea26469706673582212204be079b73ac99ffee7a0433e0c09625cc15ddb0d3faa776a0597e08c7c64b77c64736f6c63430008000033

Deployed Bytecode Sourcemap

4355:8254:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5598:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6811:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7233:216::-;;;;;;;;;;-1:-1:-1;7233:216:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6541:88::-;;;;;;;;;;;;;:::i;7751:370::-;;;;;;;;;;-1:-1:-1;7751:370:0;;;;;:::i;:::-;;:::i;2423:103::-;;;;;;;;;;-1:-1:-1;2423:103:0;;;;;:::i;:::-;;:::i;6635:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12004:112::-;;;;;;;;;;;;;:::i;:::-;;4688:57;;;;;;;;;;;;;:::i;7457:122::-;;;;;;;;;;-1:-1:-1;7457:122:0;;;;;:::i;:::-;;:::i;12273:269::-;;;;;;;;;;-1:-1:-1;12273:269:0;;;;;:::i;:::-;;:::i;4752:58::-;;;;;;;;;;;;;:::i;5561:30::-;;;;;;;;;;;;;:::i;6981:105::-;;;;;;;;;;-1:-1:-1;6981:105:0;;;;;:::i;:::-;;:::i;2532:131::-;;;;;;;;;;;;;:::i;4823:60::-;;;;;;;;;;;;;:::i;6897:78::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6721:84::-;;;;;;;;;;;;;:::i;5533:19::-;;;;;;;;;;;;;:::i;7587:156::-;;;;;;;;;;-1:-1:-1;7587:156:0;;;;;:::i;:::-;;:::i;5419:74::-;;;;;;;;;;;;;:::i;7092:133::-;;;;;;;;;;-1:-1:-1;7092:133:0;;;;;:::i;:::-;;:::i;5332:80::-;;;;;;;;;;;;;:::i;12124:141::-;;;;;;;;;;-1:-1:-1;12124:141:0;;;;;:::i;:::-;;:::i;5502:24::-;;;;;;;;;;;;;:::i;5598:55::-;;;;:::o;6811:80::-;6883:5;;;;;;;;;;;;-1:-1:-1;;;6883:5:0;;;;6811:80;:::o;7233:216::-;7337:10;7308:4;7325:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7325:32:0;;;;;;;;;;:41;;;7382:37;7308:4;;7325:32;;7382:37;;;;7360:6;;7382:37;:::i;:::-;;;;;;;;-1:-1:-1;7437:4:0;7233:216;;;;;:::o;6541:88::-;6614:12;;6541:88;:::o;7751:370::-;-1:-1:-1;;;;;7871:19:0;;7851:4;7871:19;;;:11;:19;;;;;;;;7891:10;7871:31;;;;;;;;-1:-1:-1;;7871:52:0;7868:186;;7973:69;;;;;;;;;;;-1:-1:-1;;;7973:69:0;;;;;;;;-1:-1:-1;;;;;7973:19:0;;-1:-1:-1;7973:19:0;;;:11;:19;;;;;7993:10;7973:31;;;;;;;;;;:69;;8009:6;;7973:35;:69::i;:::-;-1:-1:-1;;;;;7939:19:0;;;;;;:11;:19;;;;;;;;7959:10;7939:31;;;;;;;:103;7868:186;8073:40;8087:6;8095:9;8106:6;8073:13;:40::i;:::-;8066:47;;7751:370;;;;;;:::o;2423:103::-;2478:4;2513:5;-1:-1:-1;;;;;2513:5:0;;;2502:16;;;;2423:103::o;6635:80::-;4677:2;6635:80;:::o;12004:112::-;12061:14;;12053:55;;-1:-1:-1;;;;;12061:14:0;;;;12086:21;12053:55;;;;;12061:14;12053:55;12061:14;12053:55;12086:21;12061:14;12053:55;;;;;;;;;;;;;;;;;;;;;12004:112::o;4688:57::-;;;;:::o;7457:122::-;7512:4;7536:35;7544:7;-1:-1:-1;;7536:7:0;:35::i;12273:269::-;2376:19;2384:10;2376:7;:19::i;:::-;2368:38;;;;-1:-1:-1;;;2368:38:0;;;;;;;:::i;:::-;;;;;;;;;12382:6:::1;:16:::0;;;12409:12:::1;:28:::0;;;12448:12:::1;:28:::0;;;12463:13;12498:21:::1;12424:13:::0;12391:7;12498:21:::1;:::i;:::-;:36;;;;:::i;:::-;12487:8;:47:::0;-1:-1:-1;;;12273:269:0:o;4752:58::-;;;;:::o;5561:30::-;;;-1:-1:-1;;;5561:30:0;;;;;:::o;6981:105::-;-1:-1:-1;;;;;7065:18:0;7047:7;7065:18;;;:9;:18;;;;;;;6981:105::o;2532:131::-;2376:19;2384:10;2376:7;:19::i;:::-;2368:38;;;;-1:-1:-1;;;2368:38:0;;;;;;;:::i;:::-;2605:1:::1;2589:18:::0;;-1:-1:-1;;;;;;2589:18:0::1;::::0;;2623:32:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;2532:131::o:0;4823:60::-;;;;:::o;6897:78::-;6949:7;6967:5;-1:-1:-1;;;;;6967:5:0;6897:78;:::o;6721:84::-;6795:7;;;;;;;;;;;;-1:-1:-1;;;6795:7:0;;;;6721:84;:::o;5533:19::-;;;-1:-1:-1;;;;;5533:19:0;;:::o;7587:156::-;7667:4;7691:44;7705:10;7717:9;7728:6;7691:13;:44::i;5419:74::-;;;-1:-1:-1;;;;;5419:74:0;;:::o;7092:133::-;-1:-1:-1;;;;;7194:19:0;;;7176:7;7194:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7092:133::o;5332:80::-;;;-1:-1:-1;;;;;5332:80:0;;:::o;12124:141::-;2376:19;2384:10;2376:7;:19::i;:::-;2368:38;;;;-1:-1:-1;;;2368:38:0;;;;;;;:::i;:::-;12254:3:::1;12236:13;12221:12;;:28;;;;:::i;:::-;12220:37;;;;:::i;:::-;12201:16;:56:::0;-1:-1:-1;12124:141:0:o;5502:24::-;;;-1:-1:-1;;;;;5502:24:0;;:::o;707:246::-;765:7;789:6;785:47;;-1:-1:-1;819:1:0;812:8;;785:47;842:9;854:5;858:1;854;:5;:::i;:::-;842:17;-1:-1:-1;887:1:0;878:5;882:1;842:17;878:5;:::i;:::-;:10;870:56;;;;-1:-1:-1;;;870:56:0;;;;;;;:::i;959:132::-;1017:7;1044:39;1048:1;1051;1044:39;;;;;;;;;;;;;;;;;:3;:39::i;511:190::-;597:7;633:12;625:6;;;;617:29;;;;-1:-1:-1;;;617:29:0;;;;;;;;:::i;:::-;-1:-1:-1;657:9:0;669:5;673:1;669;:5;:::i;:::-;657:17;511:190;-1:-1:-1;;;;;511:190:0:o;8129:778::-;8241:6;;8221:4;;8241:6;;8238:63;;;8257:41;8272:6;8280:9;8291:6;8257:14;:41::i;:::-;8250:48;;;;8238:63;8330:4;;-1:-1:-1;;;;;8317:17:0;;;8330:4;;8317:17;;;;:38;;-1:-1:-1;8351:4:0;;-1:-1:-1;;;;;8338:17:0;;;8351:4;;8338:17;;8317:38;8313:200;;;-1:-1:-1;;;;;8380:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;8443:16:0;;-1:-1:-1;;;;;8410:20:0;;;;;;:9;:20;;;;;;:29;;8433:6;;8410:29;:::i;:::-;:49;;8380:79;8372:129;;;;-1:-1:-1;;;8372:129:0;;;;;;;:::i;:::-;8529:16;:14;:16::i;:::-;8526:35;;;8548:10;:8;:10::i;:::-;8593:53;;;;;;;;;;;-1:-1:-1;;;8593:53:0;;;;;;;;-1:-1:-1;;;;;8593:17:0;;-1:-1:-1;8593:17:0;;;:9;:17;;;;;;;;:53;;8615:6;;8593:21;:53::i;:::-;-1:-1:-1;;;;;8573:17:0;;;;;;:9;:17;;;;;:73;;;;8684:21;8583:6;8684:13;:21::i;:::-;:56;;8734:6;8684:56;;;8708:23;8716:6;8724;8708:7;:23::i;:::-;-1:-1:-1;;;;;8774:20:0;;;;;;:9;:20;;;;;;8659:81;;-1:-1:-1;8774:40:0;;8659:81;8774:24;:40::i;:::-;-1:-1:-1;;;;;8751:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8832:43;;;;;;;;;;8860:14;;8832:43;:::i;:::-;;;;;;;;-1:-1:-1;8895:4:0;;8129:778;-1:-1:-1;;;;8129:778:0:o;1097:189::-;1183:7;1218:12;1211:5;1203:28;;;;-1:-1:-1;;;1203:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1242:9:0;1254:5;1258:1;1254;:5;:::i;8915:330::-;9045:53;;;;;;;;;;;-1:-1:-1;;;9045:53:0;;;;;;;;-1:-1:-1;;;;;9045:17:0;;9008:4;9045:17;;;:9;:17;;;;;;;:53;;9067:6;;9045:21;:53::i;:::-;-1:-1:-1;;;;;9025:17:0;;;;;;;:9;:17;;;;;;:73;;;;9132:20;;;;;;;:32;;9157:6;9132:24;:32::i;:::-;-1:-1:-1;;;;;9109:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9180:35;;;;;;;;;;9208:6;;9180:35;:::i;:::-;;;;;;;;-1:-1:-1;9233:4:0;8915:330;;;;;:::o;9712:197::-;9799:4;;9761;;-1:-1:-1;;;;;9799:4:0;9785:10;:18;;;;:38;;-1:-1:-1;9817:6:0;;;;9816:7;9785:38;:62;;;;-1:-1:-1;9836:11:0;;-1:-1:-1;;;9836:11:0;;;;9785:62;:116;;;;-1:-1:-1;9888:13:0;;9878:4;9860:24;;;;:9;:24;;;;;;:41;;9785:116;9778:123;;9712:197;:::o;9917:1701::-;5709:6;:13;;-1:-1:-1;;5709:13:0;5718:4;5709:13;;;9997::::1;::::0;10090:8:::1;::::0;10072:12:::1;::::0;5709:6;;10047:59:::1;::::0;10104:1:::1;::::0;10047:52:::1;::::0;;;9997:13;;10047:24:::1;:38::i;:::-;:42:::0;::::1;:52::i;:59::-;10021:85:::0;-1:-1:-1;10117:20:0::1;10140:41;:20:::0;10021:85;10140:24:::1;:41::i;:::-;10218:16;::::0;;10232:1:::1;10218:16:::0;;;;;::::1;::::0;;10117:64;;-1:-1:-1;10194:21:0::1;::::0;10218:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10218:16:0::1;10194:40;;10263:4;10245;10250:1;10245:7;;;;;;-1:-1:-1::0;;;10245:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;10245:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10289:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;10289:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;10245:7;;10289:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10279:4;10284:1;10279:7;;;;;;-1:-1:-1::0;;;10279:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;10279:23:0;;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;10340:16:::1;::::0;;10354:1:::1;10340:16:::0;;;;;::::1;::::0;;10315:22:::1;::::0;10340:16;;10354:1;;10340:16;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10340:16:0::1;10315:41;;10386:4;10367:5;10373:1;10367:8;;;;;;-1:-1:-1::0;;;10367:8:0::1;;;;;;;;;-1:-1:-1::0;;;;;10367:24:0;;::::1;:8;::::0;;::::1;::::0;;;;;;:24;;;;10413:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;10413:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;10367:8;;10413:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10402:5;10408:1;10402:8;;;;;;-1:-1:-1::0;;;10402:8:0::1;;;;;;;;;-1:-1:-1::0;;;;;10402:24:0;;::::1;:8;::::0;;::::1;::::0;;;;;:24;10497:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;10497:188:0;;10463:21:::1;::::0;10497:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;10569:12;;10439:21:::1;::::0;10612:4;;10639::::1;::::0;10659:15:::1;::::0;10497:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10696:17;10716:40;10742:13;10716:21;:25;;:40;;;;:::i;:::-;10696:60;;10768:20;10791:35;10817:8;;10791:21;10805:6;;10791:9;:13;;:21;;;;:::i;:35::-;10768:58;;10837:26;10866:41;10898:8;;10866:27;10880:12;;10866:9;:13;;:27;;;;:::i;:41::-;10837:70;;10918:26;10947:41;10979:8;;10947:27;10961:12;;10947:9;:13;;:27;;;;:::i;:41::-;11033:14;::::0;11025:65:::1;::::0;10918:70;;-1:-1:-1;11004:15:0::1;::::0;-1:-1:-1;;;;;11033:14:0;;::::1;::::0;11080:5:::1;::::0;11061:12;;11025:65:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11003:87;;;11109:10;11101:53;;;;-1:-1:-1::0;;;11101:53:0::1;;;;;;;:::i;:::-;11201:20;::::0;11193:77:::1;::::0;11166:21:::1;::::0;-1:-1:-1;;;;;11201:20:0::1;::::0;11260:5:::1;::::0;11235:18;;11193:77:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11165:105;;;11289:16;11281:59;;;;-1:-1:-1::0;;;11281:59:0::1;;;;;;;:::i;:::-;11353:21;11377:6;;;;;;;;;-1:-1:-1::0;;;;;11377:6:0::1;-1:-1:-1::0;;;;;11377:28:0::1;;11413:18;11447:1;11463:5;11483:4;;;;;;;;;-1:-1:-1::0;;;;;11483:4:0::1;11502:15;11377:152;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;11377:152:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;11353:176;;11570:40;11599:7;11607:1;11599:10;;;;;;-1:-1:-1::0;;;11599:10:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;11588:4:::1;11570:24;::::0;;;:9:::1;:24:::0;;;;;;;;;:28:::1;:40::i;:::-;11561:4;11543:24;::::0;;;:9:::1;:24;::::0;;;;:67;-1:-1:-1;;5727:6:0;:14;;-1:-1:-1;;5727:14:0;;;-1:-1:-1;;;;;;;;;;;9917:1701:0:o;9253:114::-;-1:-1:-1;;;;;9340:19:0;9315:4;9340:19;;;:11;:19;;;;;;;;9339:20;;9253:114::o;9375:329::-;9442:7;9462:17;9482:40;9507:14;;9482:20;9493:8;;9482:6;:10;;:20;;;;:::i;:40::-;9578:4;9560:24;;;;:9;:24;;;;;;9462:60;;-1:-1:-1;9560:39:0;;9462:60;9560:28;:39::i;:::-;9551:4;9533:24;;;;:9;:24;;;;;;;:66;;;;9615:42;;-1:-1:-1;;;;;9615:42:0;;;;;;;9647:9;;9615:42;:::i;:::-;;;;;;;;9675:21;:6;9686:9;9675:10;:21::i;:::-;9668:28;9375:329;-1:-1:-1;;;;9375:329:0:o;184:179::-;242:7;;274:5;278:1;274;:5;:::i;:::-;262:17;;303:1;298;:6;;290:46;;;;-1:-1:-1;;;290:46:0;;;;;;;:::i;369:136::-;427:7;454:43;458:1;461;454: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://4be079b73ac99ffee7a0433e0c09625cc15ddb0d3faa776a0597e08c7c64b77c
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.