ETH Price: $3,054.03 (+1.29%)
Gas: 2 Gwei

Token

Metaverse Bank (MBNK)
 

Overview

Max Total Supply

1,000,000,000 MBNK

Holders

112

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,535,055.665980219 MBNK

Value
$0.00
0xbdf75e5d0552828360d43060b0f8f84ce72738d8
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:
MBNK

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-11
*/

// SPDX-License-Identifier: MIT

/*
The world's inaugural decentralized metaverse bank has arrived! Metaverse Bank is dedicated to encouraging the democratization and fractionalization of Metaverse lands for upcoming citizens.

Website: https://metaversebank.pro
Twitter: https://twitter.com/meta_eth_bank
Telegram: https://t.me/meta_eth_bank
Docs: https://medium.com/@metaversebank
*/

pragma solidity 0.8.21;

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

interface IERC20 {
    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 totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IUFactory {
    function createPair(address tokenA, address tokenB) external returns (address uPair);
}

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

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

contract MBNK is IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "Metaverse Bank";
    string private constant _symbol = "MBNK";

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExcludedFromFee;

    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);

    IURouter uRouter;
    address public uPair;
    bool private tradeBegin = false;
    bool private swapEnabled = true;
    uint256 private swappingCount;
    bool private isSwapping;
    uint256 swappingAt;

    uint256 private lpSplit = 0;
    uint256 private marketingSplit = 0;
    uint256 private devSplit = 100;
    uint256 private burnSplit = 0;
    
    uint256 private buyFee = 1300;
    uint256 private sellFee = 1300;
    uint256 private transferFee = 1300;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;

    address internal feeDev = 0x9F1252eB0d4D088d37945bF815f8B8513438dEAe; 
    address internal feeMarketing = 0x9F1252eB0d4D088d37945bF815f8B8513438dEAe;
    address internal feeLp = 0x9F1252eB0d4D088d37945bF815f8B8513438dEAe;

    uint256 public maxTx = ( _totalSupply * 350 ) / 10000;
    uint256 public maxBuy = ( _totalSupply * 350 ) / 10000;
    uint256 public maxWallet = ( _totalSupply * 350 ) / 10000;
    uint256 private feeMax = ( _totalSupply * 1000 ) / 100000;
    uint256 private feeMin = ( _totalSupply * 10 ) / 100000;
    modifier lockFee {isSwapping = true; _; isSwapping = false;}

    constructor() Ownable(msg.sender) {
        IURouter _router = IURouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IUFactory(_router.factory()).createPair(address(this), _router.WETH());
        uRouter = _router; uPair = _pair;
        isExcludedFromFee[feeMarketing] = true;
        isExcludedFromFee[feeDev] = true;
        isExcludedFromFee[feeLp] = true;
        isExcludedFromFee[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function startTrading() external onlyOwner {tradeBegin = true;}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}

    function swapLiquidifyAndBurn(uint256 tokens) private lockFee {
        uint256 _denominator = (lpSplit.add(1).add(marketingSplit).add(devSplit)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(lpSplit).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(lpSplit));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(lpSplit);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingSplit);
        if(marketingAmt > 0){payable(feeMarketing).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(feeDev).transfer(contractBalance);}
    }

    function takeFeeOnTrade(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (isExcludedFromFee[recipient]) {return maxTx;}
        if(getTaxAmount(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTaxAmount(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnSplit > uint256(0) && getTaxAmount(sender, recipient) > burnSplit){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnSplit));}
        return amount.sub(feeAmount);} return amount;
    }
    
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function shouldSwapClogged(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= feeMin;
        bool aboveThreshold = balanceOf(address(this)) >= feeMax;
        return !isSwapping && swapEnabled && tradeBegin && aboveMin && !isExcludedFromFee[sender] && recipient == uPair && swappingCount >= swappingAt && aboveThreshold;
    }

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

    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        lpSplit = _liquidity; marketingSplit = _marketing; burnSplit = _burn; devSplit = _development; buyFee = _total; sellFee = _sell; transferFee = _trans;
        require(buyFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "buyFee and sellFee cannot be more than 20%");
    }
    
    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uRouter.WETH();
        _approve(address(this), address(uRouter), tokenAmount);
        uRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function getTaxAmount(address sender, address recipient) internal view returns (uint256) {
        if(recipient == uPair){return sellFee;}
        if(sender == uPair){return buyFee;}
        return transferFee;
    }

    function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        maxTx = newTx; maxBuy = newTransfer; maxWallet = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function checkExclude(address sender, address recipient) internal view returns (bool) {
        return !isExcludedFromFee[sender] && !isExcludedFromFee[recipient];
    }    

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isExcludedFromFee[sender] && !isExcludedFromFee[recipient]){require(tradeBegin, "tradeBegin");}
        if(!isExcludedFromFee[sender] && !isExcludedFromFee[recipient] && recipient != address(uPair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= maxWallet, "Exceeds maximum wallet amount.");}
        if(sender != uPair){require(amount <= maxBuy || isExcludedFromFee[sender] || isExcludedFromFee[recipient], "TX Limit Exceeded");}
        require(amount <= maxTx || isExcludedFromFee[sender] || isExcludedFromFee[recipient], "TX Limit Exceeded"); 
        if(recipient == uPair && !isExcludedFromFee[sender]){swappingCount += uint256(1);}
        if(shouldSwapClogged(sender, recipient, amount)){swapLiquidifyAndBurn(feeMax); swappingCount = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !isExcludedFromFee[sender] ? takeFeeOnTrade(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004ba565b6200002290633b9aca00620004d1565b60048190556006805461ffff60a01b1916600160a81b1790555f600a819055600b8190556064600c55600d55610514600e819055600f8190556010556127106011819055601280546001600160a01b0319908116739f1252eb0d4d088d37945bf815f8b8513438deae9081179092556013805482168317905560148054909116909117905590620000b69061015e620004d1565b620000c29190620004eb565b60155561271060045461015e620000da9190620004d1565b620000e69190620004eb565b60165561271060045461015e620000fe9190620004d1565b6200010a9190620004eb565b601755620186a06004546103e8620001239190620004d1565b6200012f9190620004eb565b601855620186a0600454600a620001479190620004d1565b620001539190620004eb565b60195534801562000162575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ed91906200050b565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000239573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025f91906200050b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002aa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d091906200050b565b600580546001600160a01b038086166001600160a01b03199283161790925560068054838516921691909117905560135481165f908152600360209081526040808320805460ff199081166001908117909255601254861685528285208054821683179055601454909516845281842080548616821790553380855282852080549096168217909555600454925280832082905551939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200039b91815260200190565b60405180910390a3505062000533565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003ff57815f1904821115620003e357620003e3620003ab565b80851615620003f157918102915b93841c9390800290620003c4565b509250929050565b5f826200041757506001620004b4565b816200042557505f620004b4565b81600181146200043e5760028114620004495762000469565b6001915050620004b4565b60ff8411156200045d576200045d620003ab565b50506001821b620004b4565b5060208310610133831016604e8410600b84101617156200048e575081810a620004b4565b6200049a8383620003bf565b805f1904821115620004b057620004b0620003ab565b0290505b92915050565b5f620004ca60ff84168362000407565b9392505050565b8082028115828204841417620004b457620004b4620003ab565b5f826200050657634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200051c575f80fd5b81516001600160a01b0381168114620004ca575f80fd5b6117a380620005415f395ff3fe60806040526004361061011e575f3560e01c80637437681e1161009d578063a9059cbb11610062578063a9059cbb14610369578063cb7f97d714610388578063dd62ed3e146103a7578063f2fde38b146103eb578063f8b45b051461040a575f80fd5b80637437681e146102b65780637c95603e146102cb578063893d20e81461030257806395d89b411461031e5780639cc353511461034a575f80fd5b80632f54bf6e116100e35780632f54bf6e146101f7578063313ce567146102245780635342acb41461023f57806370a082311461026d57806370db69d6146102a1575f80fd5b806306fdde0314610129578063095ea7b31461017157806318160ddd146101a057806323b872dd146101c2578063293230b8146101e1575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600e81526d4d65746176657273652042616e6b60901b60208201525b6040516101689190611460565b60405180910390f35b34801561017c575f80fd5b5061019061018b3660046114c2565b61041f565b6040519015158152602001610168565b3480156101ab575f80fd5b506101b4610435565b604051908152602001610168565b3480156101cd575f80fd5b506101906101dc3660046114ec565b6104a5565b3480156101ec575f80fd5b506101f561050d565b005b348015610202575f80fd5b5061019061021136600461152a565b5f546001600160a01b0391821691161490565b34801561022f575f80fd5b5060405160098152602001610168565b34801561024a575f80fd5b5061019061025936600461152a565b60036020525f908152604090205460ff1681565b348015610278575f80fd5b506101b461028736600461152a565b6001600160a01b03165f9081526001602052604090205490565b3480156102ac575f80fd5b506101b460165481565b3480156102c1575f80fd5b506101b460155481565b3480156102d6575f80fd5b506006546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610168565b34801561030d575f80fd5b505f546001600160a01b03166102ea565b348015610329575f80fd5b506040805180820190915260048152634d424e4b60e01b602082015261015b565b348015610355575f80fd5b506101f5610364366004611545565b610554565b348015610374575f80fd5b506101906103833660046114c2565b610690565b348015610393575f80fd5b506101f56103a236600461156e565b61069c565b3480156103b2575f80fd5b506101b46103c13660046115b5565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103f6575f80fd5b506101f561040536600461152a565b610790565b348015610415575f80fd5b506101b460175481565b5f61042b33848461080c565b5060015b92915050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead5f9081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5460045491926104a092909161049a919061092f565b9061092f565b905090565b5f6104b184848461093a565b61050284336104fd85604051806060016040528060288152602001611746602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610e77565b61080c565b5060015b9392505050565b5f546001600160a01b0316331461053f5760405162461bcd60e51b8152600401610536906115ec565b60405180910390fd5b6006805460ff60a01b1916600160a01b179055565b5f546001600160a01b0316331461057d5760405162461bcd60e51b8152600401610536906115ec565b5f61059f61271061059986600454610ea290919063ffffffff16565b90610ead565b90505f6105bd61271061059986600454610ea290919063ffffffff16565b90505f6105db61271061059986600454610ea290919063ffffffff16565b60158490556016839055601781905590505f6106066103e86105996005610600610435565b90610ea2565b90508084101580156106185750808310155b80156106245750808210155b6106875760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610536565b50505050505050565b5f61042b33848461093a565b5f546001600160a01b031633146106c55760405162461bcd60e51b8152600401610536906115ec565b600a879055600b869055600d859055600c849055600e839055600f82905560108190556011546106f6906001610ead565b600e54111580156107165750601154610710906001610ead565b600f5411155b8015610731575060115461072b906001610ead565b60105411155b6106875760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b6064820152608401610536565b5f546001600160a01b031633146107b95760405162461bcd60e51b8152600401610536906115ec565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661086e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610536565b6001600160a01b0382166108cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610536565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6105068284611620565b6001600160a01b03831661099e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610536565b6001600160a01b038216610a005760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610536565b6001600160a01b0383165f90815260016020526040902054811115610a815760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610536565b6001600160a01b0383165f9081526003602052604090205460ff16158015610ac157506001600160a01b0382165f9081526003602052604090205460ff16155b15610b0c57600654600160a01b900460ff16610b0c5760405162461bcd60e51b815260206004820152600a6024820152693a3930b232a132b3b4b760b11b6044820152606401610536565b6001600160a01b0383165f9081526003602052604090205460ff16158015610b4c57506001600160a01b0382165f9081526003602052604090205460ff16155b8015610b6657506006546001600160a01b03838116911614155b8015610b7d57506001600160a01b03821661dead14155b15610bf5576017546001600160a01b0383165f90815260016020526040902054610ba79083610eb8565b1115610bf55760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610536565b6006546001600160a01b03848116911614610c945760165481111580610c3257506001600160a01b0383165f9081526003602052604090205460ff165b80610c5457506001600160a01b0382165f9081526003602052604090205460ff165b610c945760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610536565b60155481111580610cbc57506001600160a01b0383165f9081526003602052604090205460ff165b80610cde57506001600160a01b0382165f9081526003602052604090205460ff165b610d1e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610536565b6006546001600160a01b038381169116148015610d5357506001600160a01b0383165f9081526003602052604090205460ff16155b15610d7057600160075f828254610d6a9190611633565b90915550505b610d7b838383610ec3565b15610d9057610d8b601854610f7b565b5f6007555b6001600160a01b0383165f90815260016020526040902054610db2908261092f565b6001600160a01b0384165f90815260016020908152604080832093909355600390529081205460ff1615610de65781610df1565b610df18484846110eb565b6001600160a01b0384165f90815260016020526040902054909150610e169082610eb8565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e699085815260200190565b60405180910390a350505050565b5f8184841115610e9a5760405162461bcd60e51b81526004016105369190611460565b505050900390565b5f6105068284611646565b5f610506828461165d565b5f6105068284611633565b601954601854305f9081526001602052604081205460085491938510159211159060ff16158015610efd5750600654600160a81b900460ff165b8015610f125750600654600160a01b900460ff165b8015610f1b5750815b8015610f3f57506001600160a01b0386165f9081526003602052604090205460ff16155b8015610f5857506006546001600160a01b038681169116145b8015610f68575060095460075410155b8015610f715750805b9695505050505050565b6008805460ff19166001908117909155600c54600b54600a545f93610fb493600293610600939192610fae928391610eb8565b90610eb8565b90505f610fd082610599600a5486610ea290919063ffffffff16565b90505f610fdd848361092f565b905047610fe982611215565b5f610ff4478361092f565b90505f61101661100f600a548861092f90919063ffffffff16565b8390610ead565b90505f61102e600a5483610ea290919063ffffffff16565b90508015611040576110408682611365565b600b545f9061105490610600856002610ea2565b90508015611095576013546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611093573d5f803e3d5ffd5b505b4780156110d5576012546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110d3573d5f803e3d5ffd5b505b50506008805460ff191690555050505050505050565b6001600160a01b0382165f9081526003602052604081205460ff16156111145750601554610506565b5f61111f8585611416565b111561120e575f6111416111338686611416565b601154610600908690610ead565b305f9081526001602052604090205490915061115d9082610eb8565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111ad9085815260200190565b60405180910390a35f600d541180156111d05750600d546111ce8686611416565b115b156111fc576111fc3061dead6111f7600d5461060060115489610ead90919063ffffffff16565b61093a565b611206838261092f565b915050610506565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112485761124861167c565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561129f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112c39190611690565b816001815181106112d6576112d661167c565b6001600160a01b0392831660209182029290920101526005546112fc913091168461080c565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906113349085905f908690309042906004016116ab565b5f604051808303815f87803b15801561134b575f80fd5b505af115801561135d573d5f803e3d5ffd5b505050505050565b60055461137d9030906001600160a01b03168461080c565b60055460145460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156113ea573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061140f919061171a565b5050505050565b6006545f906001600160a01b03908116908316036114375750600f5461042f565b6006546001600160a01b03908116908416036114565750600e5461042f565b5060105492915050565b5f6020808352835180828501525f5b8181101561148b5785810183015185820160400152820161146f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114bf575f80fd5b50565b5f80604083850312156114d3575f80fd5b82356114de816114ab565b946020939093013593505050565b5f805f606084860312156114fe575f80fd5b8335611509816114ab565b92506020840135611519816114ab565b929592945050506040919091013590565b5f6020828403121561153a575f80fd5b8135610506816114ab565b5f805f60608486031215611557575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a031215611584575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f80604083850312156115c6575f80fd5b82356115d1816114ab565b915060208301356115e1816114ab565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561042f5761042f61160c565b8082018082111561042f5761042f61160c565b808202811582820484141761042f5761042f61160c565b5f8261167757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156116a0575f80fd5b8151610506816114ab565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156116f95784516001600160a01b0316835293830193918301916001016116d4565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561172c575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204ac9eb153978e9e6ecfd5387edb98909e58956528d96a6a6f96c46c57b033aef64736f6c63430008150033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c80637437681e1161009d578063a9059cbb11610062578063a9059cbb14610369578063cb7f97d714610388578063dd62ed3e146103a7578063f2fde38b146103eb578063f8b45b051461040a575f80fd5b80637437681e146102b65780637c95603e146102cb578063893d20e81461030257806395d89b411461031e5780639cc353511461034a575f80fd5b80632f54bf6e116100e35780632f54bf6e146101f7578063313ce567146102245780635342acb41461023f57806370a082311461026d57806370db69d6146102a1575f80fd5b806306fdde0314610129578063095ea7b31461017157806318160ddd146101a057806323b872dd146101c2578063293230b8146101e1575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600e81526d4d65746176657273652042616e6b60901b60208201525b6040516101689190611460565b60405180910390f35b34801561017c575f80fd5b5061019061018b3660046114c2565b61041f565b6040519015158152602001610168565b3480156101ab575f80fd5b506101b4610435565b604051908152602001610168565b3480156101cd575f80fd5b506101906101dc3660046114ec565b6104a5565b3480156101ec575f80fd5b506101f561050d565b005b348015610202575f80fd5b5061019061021136600461152a565b5f546001600160a01b0391821691161490565b34801561022f575f80fd5b5060405160098152602001610168565b34801561024a575f80fd5b5061019061025936600461152a565b60036020525f908152604090205460ff1681565b348015610278575f80fd5b506101b461028736600461152a565b6001600160a01b03165f9081526001602052604090205490565b3480156102ac575f80fd5b506101b460165481565b3480156102c1575f80fd5b506101b460155481565b3480156102d6575f80fd5b506006546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610168565b34801561030d575f80fd5b505f546001600160a01b03166102ea565b348015610329575f80fd5b506040805180820190915260048152634d424e4b60e01b602082015261015b565b348015610355575f80fd5b506101f5610364366004611545565b610554565b348015610374575f80fd5b506101906103833660046114c2565b610690565b348015610393575f80fd5b506101f56103a236600461156e565b61069c565b3480156103b2575f80fd5b506101b46103c13660046115b5565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103f6575f80fd5b506101f561040536600461152a565b610790565b348015610415575f80fd5b506101b460175481565b5f61042b33848461080c565b5060015b92915050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead5f9081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5460045491926104a092909161049a919061092f565b9061092f565b905090565b5f6104b184848461093a565b61050284336104fd85604051806060016040528060288152602001611746602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610e77565b61080c565b5060015b9392505050565b5f546001600160a01b0316331461053f5760405162461bcd60e51b8152600401610536906115ec565b60405180910390fd5b6006805460ff60a01b1916600160a01b179055565b5f546001600160a01b0316331461057d5760405162461bcd60e51b8152600401610536906115ec565b5f61059f61271061059986600454610ea290919063ffffffff16565b90610ead565b90505f6105bd61271061059986600454610ea290919063ffffffff16565b90505f6105db61271061059986600454610ea290919063ffffffff16565b60158490556016839055601781905590505f6106066103e86105996005610600610435565b90610ea2565b90508084101580156106185750808310155b80156106245750808210155b6106875760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610536565b50505050505050565b5f61042b33848461093a565b5f546001600160a01b031633146106c55760405162461bcd60e51b8152600401610536906115ec565b600a879055600b869055600d859055600c849055600e839055600f82905560108190556011546106f6906001610ead565b600e54111580156107165750601154610710906001610ead565b600f5411155b8015610731575060115461072b906001610ead565b60105411155b6106875760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b6064820152608401610536565b5f546001600160a01b031633146107b95760405162461bcd60e51b8152600401610536906115ec565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661086e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610536565b6001600160a01b0382166108cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610536565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6105068284611620565b6001600160a01b03831661099e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610536565b6001600160a01b038216610a005760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610536565b6001600160a01b0383165f90815260016020526040902054811115610a815760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610536565b6001600160a01b0383165f9081526003602052604090205460ff16158015610ac157506001600160a01b0382165f9081526003602052604090205460ff16155b15610b0c57600654600160a01b900460ff16610b0c5760405162461bcd60e51b815260206004820152600a6024820152693a3930b232a132b3b4b760b11b6044820152606401610536565b6001600160a01b0383165f9081526003602052604090205460ff16158015610b4c57506001600160a01b0382165f9081526003602052604090205460ff16155b8015610b6657506006546001600160a01b03838116911614155b8015610b7d57506001600160a01b03821661dead14155b15610bf5576017546001600160a01b0383165f90815260016020526040902054610ba79083610eb8565b1115610bf55760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610536565b6006546001600160a01b03848116911614610c945760165481111580610c3257506001600160a01b0383165f9081526003602052604090205460ff165b80610c5457506001600160a01b0382165f9081526003602052604090205460ff165b610c945760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610536565b60155481111580610cbc57506001600160a01b0383165f9081526003602052604090205460ff165b80610cde57506001600160a01b0382165f9081526003602052604090205460ff165b610d1e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610536565b6006546001600160a01b038381169116148015610d5357506001600160a01b0383165f9081526003602052604090205460ff16155b15610d7057600160075f828254610d6a9190611633565b90915550505b610d7b838383610ec3565b15610d9057610d8b601854610f7b565b5f6007555b6001600160a01b0383165f90815260016020526040902054610db2908261092f565b6001600160a01b0384165f90815260016020908152604080832093909355600390529081205460ff1615610de65781610df1565b610df18484846110eb565b6001600160a01b0384165f90815260016020526040902054909150610e169082610eb8565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e699085815260200190565b60405180910390a350505050565b5f8184841115610e9a5760405162461bcd60e51b81526004016105369190611460565b505050900390565b5f6105068284611646565b5f610506828461165d565b5f6105068284611633565b601954601854305f9081526001602052604081205460085491938510159211159060ff16158015610efd5750600654600160a81b900460ff165b8015610f125750600654600160a01b900460ff165b8015610f1b5750815b8015610f3f57506001600160a01b0386165f9081526003602052604090205460ff16155b8015610f5857506006546001600160a01b038681169116145b8015610f68575060095460075410155b8015610f715750805b9695505050505050565b6008805460ff19166001908117909155600c54600b54600a545f93610fb493600293610600939192610fae928391610eb8565b90610eb8565b90505f610fd082610599600a5486610ea290919063ffffffff16565b90505f610fdd848361092f565b905047610fe982611215565b5f610ff4478361092f565b90505f61101661100f600a548861092f90919063ffffffff16565b8390610ead565b90505f61102e600a5483610ea290919063ffffffff16565b90508015611040576110408682611365565b600b545f9061105490610600856002610ea2565b90508015611095576013546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611093573d5f803e3d5ffd5b505b4780156110d5576012546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110d3573d5f803e3d5ffd5b505b50506008805460ff191690555050505050505050565b6001600160a01b0382165f9081526003602052604081205460ff16156111145750601554610506565b5f61111f8585611416565b111561120e575f6111416111338686611416565b601154610600908690610ead565b305f9081526001602052604090205490915061115d9082610eb8565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111ad9085815260200190565b60405180910390a35f600d541180156111d05750600d546111ce8686611416565b115b156111fc576111fc3061dead6111f7600d5461060060115489610ead90919063ffffffff16565b61093a565b611206838261092f565b915050610506565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112485761124861167c565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561129f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112c39190611690565b816001815181106112d6576112d661167c565b6001600160a01b0392831660209182029290920101526005546112fc913091168461080c565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906113349085905f908690309042906004016116ab565b5f604051808303815f87803b15801561134b575f80fd5b505af115801561135d573d5f803e3d5ffd5b505050505050565b60055461137d9030906001600160a01b03168461080c565b60055460145460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156113ea573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061140f919061171a565b5050505050565b6006545f906001600160a01b03908116908316036114375750600f5461042f565b6006546001600160a01b03908116908416036114565750600e5461042f565b5060105492915050565b5f6020808352835180828501525f5b8181101561148b5785810183015185820160400152820161146f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114bf575f80fd5b50565b5f80604083850312156114d3575f80fd5b82356114de816114ab565b946020939093013593505050565b5f805f606084860312156114fe575f80fd5b8335611509816114ab565b92506020840135611519816114ab565b929592945050506040919091013590565b5f6020828403121561153a575f80fd5b8135610506816114ab565b5f805f60608486031215611557575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a031215611584575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f80604083850312156115c6575f80fd5b82356115d1816114ab565b915060208301356115e1816114ab565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561042f5761042f61160c565b8082018082111561042f5761042f61160c565b808202811582820484141761042f5761042f61160c565b5f8261167757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156116a0575f80fd5b8151610506816114ab565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156116f95784516001600160a01b0316835293830193918301916001016116d4565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561172c575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204ac9eb153978e9e6ecfd5387edb98909e58956528d96a6a6f96c46c57b033aef64736f6c63430008150033

Deployed Bytecode Sourcemap

3818:9849:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6112:67;;;;;;;;;;-1:-1:-1;6172:5:0;;;;;;;;;;;;-1:-1:-1;;;6172:5:0;;;;6112:67;;;;;;;:::i;:::-;;;;;;;;6549:133;;;;;;;;;;-1:-1:-1;6549:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6549:133:0;1023:187:1;6688:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6688:132:0;1215:177:1;9215:309:0;;;;;;;;;;-1:-1:-1;9215:309:0;;;;;:::i;:::-;;:::i;6335:63::-;;;;;;;;;;;;;:::i;:::-;;609:87;;;;;;;;;;-1:-1:-1;609:87:0;;;;;:::i;:::-;664:4;689:5;-1:-1:-1;;;;;678:16:0;;;689:5;;678:16;;609:87;6262:67;;;;;;;;;;-1:-1:-1;6262:67:0;;4212:1;2252:36:1;;2240:2;2225:18;6262:67:0;2110:184:1;4118:50:0;;;;;;;;;;-1:-1:-1;4118:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6910:103;;;;;;;;;;-1:-1:-1;6910:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6993:18:0;6976:7;6993:18;;;:9;:18;;;;;;;6910:103;5196:54;;;;;;;;;;;;;;;;5136:53;;;;;;;;;;;;;;;;4313:20;;;;;;;;;;-1:-1:-1;4313:20:0;;;;-1:-1:-1;;;;;4313:20:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;4313:20:0;2299:203:1;6826:78:0;;;;;;;;;;-1:-1:-1;6878:7:0;6896:5;-1:-1:-1;;;;;6896:5:0;6826:78;;6185:71;;;;;;;;;;-1:-1:-1;6247:7:0;;;;;;;;;;;;-1:-1:-1;;;6247:7:0;;;;6185:71;;11470:535;;;;;;;;;;-1:-1:-1;11470:535:0;;;;;:::i;:::-;;:::i;6404:139::-;;;;;;;;;;-1:-1:-1;6404:139:0;;;;;:::i;:::-;;:::i;10274:511::-;;;;;;;;;;-1:-1:-1;10274:511:0;;;;;:::i;:::-;;:::i;7025:127::-;;;;;;;;;;-1:-1:-1;7025:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7123:18:0;;;7106:7;7123:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7025:127;702:111;;;;;;;;;;-1:-1:-1;702:111:0;;;;;:::i;:::-;;:::i;5257:57::-;;;;;;;;;;;;;;;;6549:133;6624:4;6631:37;6640:10;6652:7;6661:6;6631:8;:37::i;:::-;-1:-1:-1;6676:4:0;6549:133;;;;;:::o;6688:132::-;6993:9;:18;;;;4852:42;6741:7;6993:18;;;;;6758:12;;6741:7;;6758:60;;6993:18;;6758:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;6751:67;;6688:132;:::o;9215:309::-;9313:4;9330:36;9340:6;9348:9;9359:6;9330:9;:36::i;:::-;9377:117;9386:6;9394:10;9406:87;9442:6;9406:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9406:19:0;;;;;;:11;:19;;;;;;;;9426:10;9406:31;;;;;;;;;:87;:35;:87::i;:::-;9377:8;:117::i;:::-;-1:-1:-1;9512:4:0;9215:309;;;;;;:::o;6335:63::-;664:4;689:5;-1:-1:-1;;;;;689:5:0;576:10;678:16;560:38;;;;-1:-1:-1;;;560:38:0;;;;;;;:::i;:::-;;;;;;;;;6379:10:::1;:17:::0;;-1:-1:-1;;;;6379:17:0::1;-1:-1:-1::0;;;6379:17:0::1;::::0;;6335:63::o;11470:535::-;664:4;689:5;-1:-1:-1;;;;;689:5:0;576:10;678:16;560:38;;;;-1:-1:-1;;;560:38:0;;;;;;;:::i;:::-;11576:13:::1;11592:33;11619:5;11592:22;11609:4;11592:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;11576:49;;11627:19;11649:34;11677:5;11649:23;11666:5;11649:12;;:16;;:23;;;;:::i;:34::-;11627:56;;11685:17;11705:36;11735:5;11705:25;11722:7;11705:12;;:16;;:25;;;;:::i;:36::-;11752:5;:13:::0;;;11767:6:::1;:20:::0;;;11789:9:::1;:21:::0;;;11685:56;-1:-1:-1;;11837:30:0::1;11862:4;11837:20;11855:1;11837:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;11821:46;;11895:5;11886;:14;;:38;;;;;11919:5;11904:11;:20;;11886:38;:60;;;;;11941:5;11928:9;:18;;11886:60;11878:119;;;::::0;-1:-1:-1;;;11878:119:0;;4614:2:1;11878:119:0::1;::::0;::::1;4596:21:1::0;4653:2;4633:18;;;4626:30;4692:34;4672:18;;;4665:62;-1:-1:-1;;;4743:18:1;;;4736:44;4797:19;;11878:119:0::1;4412:410:1::0;11878:119:0::1;11565:440;;;;11470:535:::0;;;:::o;6404:139::-;6482:4;6489:40;6499:10;6511:9;6522:6;6489:9;:40::i;10274:511::-;664:4;689:5;-1:-1:-1;;;;;689:5:0;576:10;678:16;560:38;;;;-1:-1:-1;;;560:38:0;;;;;;;:::i;:::-;10464:7:::1;:20:::0;;;10486:14:::1;:27:::0;;;10515:9:::1;:17:::0;;;10534:8:::1;:23:::0;;;10559:6:::1;:15:::0;;;10576:7:::1;:15:::0;;;10593:11:::1;:20:::0;;;10642:11:::1;::::0;:18:::1;::::0;-1:-1:-1;10642:15:0::1;:18::i;:::-;10632:6;;:28;;:61;;;;-1:-1:-1::0;10675:11:0::1;::::0;:18:::1;::::0;10691:1:::1;10675:15;:18::i;:::-;10664:7;;:29;;10632:61;:98;;;;-1:-1:-1::0;10712:11:0::1;::::0;:18:::1;::::0;10728:1:::1;10712:15;:18::i;:::-;10697:11;;:33;;10632:98;10624:153;;;::::0;-1:-1:-1;;;10624:153:0;;5029:2:1;10624:153:0::1;::::0;::::1;5011:21:1::0;5068:2;5048:18;;;5041:30;5107:34;5087:18;;;5080:62;-1:-1:-1;;;5158:18:1;;;5151:40;5208:19;;10624:153:0::1;4827:406:1::0;702:111:0;664:4;689:5;-1:-1:-1;;;;;689:5:0;576:10;678:16;560:38;;;;-1:-1:-1;;;560:38:0;;;;;;;:::i;:::-;768:5:::1;:11:::0;;-1:-1:-1;;;;;;768:11:0::1;-1:-1:-1::0;;;;;768:11:0;::::1;::::0;;::::1;::::0;;;786:25:::1;::::0;2445:51:1;;;786:25:0::1;::::0;2433:2:1;2418:18;786:25:0::1;;;;;;;702:111:::0;:::o;8868:335::-;-1:-1:-1;;;;;8961:19:0;;8953:68;;;;-1:-1:-1;;;8953:68:0;;5656:2:1;8953:68:0;;;5638:21:1;5695:2;5675:18;;;5668:30;5734:34;5714:18;;;5707:62;-1:-1:-1;;;5785:18:1;;;5778:34;5829:19;;8953:68:0;5454:400:1;8953:68:0;-1:-1:-1;;;;;9040:21:0;;9032:68;;;;-1:-1:-1;;;9032:68:0;;6061:2:1;9032:68:0;;;6043:21:1;6100:2;6080:18;;;6073:30;6139:34;6119:18;;;6112:62;-1:-1:-1;;;6190:18:1;;;6183:32;6232:19;;9032:68:0;5859:398:1;9032:68:0;-1:-1:-1;;;;;9111:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9163:32;;1361:25:1;;;9163:32:0;;1334:18:1;9163:32:0;;;;;;;8868:335;;;:::o;2653:98::-;2711:7;2738:5;2742:1;2738;:5;:::i;12196:1468::-;-1:-1:-1;;;;;12293:20:0;;12285:70;;;;-1:-1:-1;;;12285:70:0;;6729:2:1;12285:70:0;;;6711:21:1;6768:2;6748:18;;;6741:30;6807:34;6787:18;;;6780:62;-1:-1:-1;;;6858:18:1;;;6851:35;6903:19;;12285:70:0;6527:401:1;12285:70:0;-1:-1:-1;;;;;12374:23:0;;12366:71;;;;-1:-1:-1;;;12366:71:0;;7135:2:1;12366:71:0;;;7117:21:1;7174:2;7154:18;;;7147:30;7213:34;7193:18;;;7186:62;-1:-1:-1;;;7264:18:1;;;7257:33;7307:19;;12366:71:0;6933:399:1;12366:71:0;-1:-1:-1;;;;;6993:18:0;;6976:7;6993:18;;;:9;:18;;;;;;12456:6;:27;;12448:88;;;;-1:-1:-1;;;12448:88:0;;7539:2:1;12448:88:0;;;7521:21:1;7578:2;7558:18;;;7551:30;7617:34;7597:18;;;7590:62;-1:-1:-1;;;7668:18:1;;;7661:47;7725:19;;12448:88:0;7337:413:1;12448:88:0;-1:-1:-1;;;;;12551:25:0;;;;;;:17;:25;;;;;;;;12550:26;:59;;;;-1:-1:-1;;;;;;12581:28:0;;;;;;:17;:28;;;;;;;;12580:29;12550:59;12547:99;;;12619:10;;-1:-1:-1;;;12619:10:0;;;;12611:33;;;;-1:-1:-1;;;12611:33:0;;7957:2:1;12611:33:0;;;7939:21:1;7996:2;7976:18;;;7969:30;-1:-1:-1;;;8015:18:1;;;8008:40;8065:18;;12611:33:0;7755:334:1;12611:33:0;-1:-1:-1;;;;;12660:25:0;;;;;;:17;:25;;;;;;;;12659:26;:59;;;;-1:-1:-1;;;;;;12690:28:0;;;;;;:17;:28;;;;;;;;12689:29;12659:59;:90;;;;-1:-1:-1;12743:5:0;;-1:-1:-1;;;;;12722:27:0;;;12743:5;;12722:27;;12659:90;:120;;;;-1:-1:-1;;;;;;12753:26:0;;4852:42;12753:26;;12659:120;12656:227;;;12837:9;;-1:-1:-1;;;;;12800:20:0;;;;;;:9;:20;;;;;;:32;;12825:6;12800:24;:32::i;:::-;12799:47;;12791:90;;;;-1:-1:-1;;;12791:90:0;;8296:2:1;12791:90:0;;;8278:21:1;8335:2;8315:18;;;8308:30;8374:32;8354:18;;;8347:60;8424:18;;12791:90:0;8094:354:1;12791:90:0;12906:5;;-1:-1:-1;;;;;12896:15:0;;;12906:5;;12896:15;12893:129;;12931:6;;12921;:16;;:45;;;-1:-1:-1;;;;;;12941:25:0;;;;;;:17;:25;;;;;;;;12921:45;:77;;;-1:-1:-1;;;;;;12970:28:0;;;;;;:17;:28;;;;;;;;12921:77;12913:107;;;;-1:-1:-1;;;12913:107:0;;8655:2:1;12913:107:0;;;8637:21:1;8694:2;8674:18;;;8667:30;-1:-1:-1;;;8713:18:1;;;8706:47;8770:18;;12913:107:0;8453:341:1;12913:107:0;13050:5;;13040:6;:15;;:44;;;-1:-1:-1;;;;;;13059:25:0;;;;;;:17;:25;;;;;;;;13040:44;:76;;;-1:-1:-1;;;;;;13088:28:0;;;;;;:17;:28;;;;;;;;13040:76;13032:106;;;;-1:-1:-1;;;13032:106:0;;8655:2:1;13032:106:0;;;8637:21:1;8694:2;8674:18;;;8667:30;-1:-1:-1;;;8713:18:1;;;8706:47;8770:18;;13032:106:0;8453:341:1;13032:106:0;13166:5;;-1:-1:-1;;;;;13153:18:0;;;13166:5;;13153:18;:48;;;;-1:-1:-1;;;;;;13176:25:0;;;;;;:17;:25;;;;;;;;13175:26;13153:48;13150:82;;;13228:1;13203:13;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;13150:82:0;13245:44;13263:6;13271:9;13282:6;13245:17;:44::i;:::-;13242:107;;;13291:28;13312:6;;13291:20;:28::i;:::-;13345:1;13321:13;:26;13242:107;-1:-1:-1;;;;;13379:17:0;;;;;;:9;:17;;;;;;:29;;13401:6;13379:21;:29::i;:::-;-1:-1:-1;;;;;13359:17:0;;;;;;:9;:17;;;;;;;;:49;;;;13445:17;:25;;;;;;;;13444:26;:79;;13517:6;13444:79;;;13473:41;13488:6;13496:9;13507:6;13473:14;:41::i;:::-;-1:-1:-1;;;;;13557:20:0;;;;;;:9;:20;;;;;;13419:104;;-1:-1:-1;13557:40:0;;13419:104;13557:24;:40::i;:::-;-1:-1:-1;;;;;13534:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13613:43;;;;;;;;;;13641:14;1361:25:1;;1349:2;1334:18;;1215:177;13613:43:0;;;;;;;;12274:1390;12196:1468;;;:::o;3077:240::-;3197:7;3258:12;3250:6;;;;3242:29;;;;-1:-1:-1;;;3242:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3293:5:0;;;3077:240::o;2759:98::-;2817:7;2844:5;2848:1;2844;:5;:::i;2865:98::-;2923:7;2950:5;2954:1;2950;:5;:::i;2547:98::-;2605:7;2632:5;2636:1;2632;:5;:::i;9530:396::-;9674:6;;9741;;9731:4;9631;6993:18;;;:9;:18;;;;;;9766:10;;9631:4;;9664:16;;;;-1:-1:-1;9713:34:0;;9766:10;;9765:11;:26;;;;-1:-1:-1;9780:11:0;;-1:-1:-1;;;9780:11:0;;;;9765:26;:40;;;;-1:-1:-1;9795:10:0;;-1:-1:-1;;;9795:10:0;;;;9765:40;:52;;;;;9809:8;9765:52;:82;;;;-1:-1:-1;;;;;;9822:25:0;;;;;;:17;:25;;;;;;;;9821:26;9765:82;:104;;;;-1:-1:-1;9864:5:0;;-1:-1:-1;;;;;9851:18:0;;;9864:5;;9851:18;9765:104;:135;;;;;9890:10;;9873:13;;:27;;9765:135;:153;;;;;9904:14;9765:153;9758:160;9530:396;-1:-1:-1;;;;;;9530:396:0:o;7160:1023::-;5465:10;:17;;-1:-1:-1;;5465:17:0;5478:4;5465:17;;;;;;7296:8:::1;::::0;7276:14:::1;::::0;7257:7:::1;::::0;5465:10;;7256:57:::1;::::0;7311:1:::1;::::0;7257:48:::1;::::0;7296:8;;7257:34:::1;::::0;;;:11:::1;:14::i;:::-;:18:::0;::::1;:34::i;7256:57::-;7233:80;;7324:32;7359:37;7383:12;7359:19;7370:7;;7359:6;:10;;:19;;;;:::i;:37::-;7324:72:::0;-1:-1:-1;7407:14:0::1;7424:36;:6:::0;7324:72;7424:10:::1;:36::i;:::-;7407:53:::0;-1:-1:-1;7496:21:0::1;7528:24;7407:53:::0;7528:16:::1;:24::i;:::-;7563:20;7586:41;:21;7612:14:::0;7586:25:::1;:41::i;:::-;7563:64;;7638:19;7659:43;7676:25;7693:7;;7676:12;:16;;:25;;;;:::i;:::-;7659:12:::0;;:16:::1;:43::i;:::-;7638:64;;7713:29;7745:24;7761:7;;7745:11;:15;;:24;;;;:::i;:::-;7713:56:::0;-1:-1:-1;7783:34:0;;7780:103:::1;;7819:61;7832:24;7858:21;7819:12;:61::i;:::-;7939:14;::::0;7893:20:::1;::::0;7916:38:::1;::::0;:18:::1;:11:::0;7932:1:::1;7916:15;:18::i;:38::-;7893:61:::0;-1:-1:-1;7968:16:0;;7965:67:::1;;7994:12;::::0;7986:44:::1;::::0;-1:-1:-1;;;;;7994:12:0;;::::1;::::0;7986:44;::::1;;;::::0;8017:12;;7994::::1;7986:44:::0;7994:12;7986:44;8017:12;7994;7986:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;7965:67;8068:21;8103:28:::0;;8100:76:::1;;8141:6;::::0;8133:41:::1;::::0;-1:-1:-1;;;;;8141:6:0;;::::1;::::0;8133:41;::::1;;;::::0;8158:15;;8141:6:::1;8133:41:::0;8141:6;8133:41;8158:15;8141:6;8133:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8100:76;-1:-1:-1::0;;5487:10:0;:18;;-1:-1:-1;;5487:18:0;;;-1:-1:-1;;;;;;;;7160:1023:0:o;8191:665::-;-1:-1:-1;;;;;8308:28:0;;8284:7;8308:28;;;:17;:28;;;;;;;;8304:49;;;-1:-1:-1;8346:5:0;;8339:12;;8304:49;8400:1;8366:31;8379:6;8387:9;8366:12;:31::i;:::-;:35;8363:471;;;8413:17;8433:60;8461:31;8474:6;8482:9;8461:12;:31::i;:::-;8444:11;;8433:23;;:6;;:10;:23::i;:60::-;8549:4;8531:24;;;;:9;:24;;;;;;8413:80;;-1:-1:-1;8531:39:0;;8413:80;8531:28;:39::i;:::-;8522:4;8504:24;;;;:9;:24;;;;;;;:66;;;;8586:42;;-1:-1:-1;;;;;8586:42:0;;;;;;;8618:9;1361:25:1;;1349:2;1334:18;;1215:177;8586:42:0;;;;;;;;8662:1;8642:9;;:22;:69;;;;;8702:9;;8668:31;8681:6;8689:9;8668:12;:31::i;:::-;:43;8642:69;8639:155;;;8713:79;8731:4;4852:42;8753:38;8781:9;;8753:23;8764:11;;8753:6;:10;;:23;;;;:::i;:38::-;8713:9;:79::i;:::-;8811:21;:6;8822:9;8811:10;:21::i;:::-;8804:28;;;;;8363:471;-1:-1:-1;8842:6:0;8191:665;-1:-1:-1;;8191:665:0:o;10797:437::-;10887:16;;;10901:1;10887:16;;;;;;;;10863:21;;10887:16;;;;;;;;;;-1:-1:-1;10887:16:0;10863:40;;10932:4;10914;10919:1;10914:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10914:23:0;;;:7;;;;;;;;;;:23;;;;10958:7;;:14;;;-1:-1:-1;;;10958:14:0;;;;:7;;;;;:12;;:14;;;;;10914:7;;10958:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10948:4;10953:1;10948:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10948:24:0;;;:7;;;;;;;;;:24;11015:7;;10983:54;;11000:4;;11015:7;11025:11;10983:8;:54::i;:::-;11048:7;;:178;;-1:-1:-1;;;11048:178:0;;-1:-1:-1;;;;;11048:7:0;;;;:58;;:178;;11121:11;;11048:7;;11163:4;;11190;;11210:15;;11048:178;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10852:382;10797:437;:::o;9934:332::-;10047:7;;10015:54;;10032:4;;-1:-1:-1;;;;;10047:7:0;10057:11;10015:8;:54::i;:::-;10080:7;;10222:5;;10080:178;;-1:-1:-1;;;10080:178:0;;10144:4;10080:178;;;11170:34:1;11220:18;;;11213:34;;;10080:7:0;11263:18:1;;;11256:34;;;11306:18;;;11299:34;-1:-1:-1;;;;;10222:5:0;;;11349:19:1;;;11342:44;10242:15:0;11402:19:1;;;11395:35;10080:7:0;;;:23;;10111:9;;11104:19:1;;10080:178:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9934:332;;:::o;11242:220::-;11358:5;;11322:7;;-1:-1:-1;;;;;11358:5:0;;;11345:18;;;;11342:39;;-1:-1:-1;11372:7:0;;11365:14;;11342:39;11404:5;;-1:-1:-1;;;;;11404:5:0;;;11394:15;;;;11391:35;;-1:-1:-1;11418:6:0;;11411:13;;11391:35;-1:-1:-1;11443:11:0;;11242:220;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:316::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;;2692:23:1;;;2762:2;2747:18;;2734:32;;-1:-1:-1;2813:2:1;2798:18;;;2785:32;;2507:316;-1:-1:-1;2507:316:1:o;2828:592::-;2941:6;2949;2957;2965;2973;2981;2989;3042:3;3030:9;3021:7;3017:23;3013:33;3010:53;;;3059:1;3056;3049:12;3010:53;-1:-1:-1;;3082:23:1;;;3152:2;3137:18;;3124:32;;-1:-1:-1;3203:2:1;3188:18;;3175:32;;3254:2;3239:18;;3226:32;;-1:-1:-1;3305:3:1;3290:19;;3277:33;;-1:-1:-1;3357:3:1;3342:19;;3329:33;;-1:-1:-1;3409:3:1;3394:19;3381:33;;-1:-1:-1;2828:592:1;-1:-1:-1;2828:592:1:o;3425:388::-;3493:6;3501;3554:2;3542:9;3533:7;3529:23;3525:32;3522:52;;;3570:1;3567;3560:12;3522:52;3609:9;3596:23;3628:31;3653:5;3628:31;:::i;:::-;3678:5;-1:-1:-1;3735:2:1;3720:18;;3707:32;3748:33;3707:32;3748:33;:::i;:::-;3800:7;3790:17;;;3425:388;;;;;:::o;4078:329::-;4280:2;4262:21;;;4319:1;4299:18;;;4292:29;-1:-1:-1;;;4352:2:1;4337:18;;4330:36;4398:2;4383:18;;4078:329::o;6262:127::-;6323:10;6318:3;6314:20;6311:1;6304:31;6354:4;6351:1;6344:15;6378:4;6375:1;6368:15;6394:128;6461:9;;;6482:11;;;6479:37;;;6496:18;;:::i;8799:125::-;8864:9;;;8885:10;;;8882:36;;;8898:18;;:::i;8929:168::-;9002:9;;;9033;;9050:15;;;9044:22;;9030:37;9020:71;;9071:18;;:::i;9102:217::-;9142:1;9168;9158:132;;9212:10;9207:3;9203:20;9200:1;9193:31;9247:4;9244:1;9237:15;9275:4;9272:1;9265:15;9158:132;-1:-1:-1;9304:9:1;;9102:217::o;9456:127::-;9517:10;9512:3;9508:20;9505:1;9498:31;9548:4;9545:1;9538:15;9572:4;9569:1;9562:15;9588:251;9658:6;9711:2;9699:9;9690:7;9686:23;9682:32;9679:52;;;9727:1;9724;9717:12;9679:52;9759:9;9753:16;9778:31;9803:5;9778:31;:::i;9844:980::-;10106:4;10154:3;10143:9;10139:19;10185:6;10174:9;10167:25;10211:2;10249:6;10244:2;10233:9;10229:18;10222:34;10292:3;10287:2;10276:9;10272:18;10265:31;10316:6;10351;10345:13;10382:6;10374;10367:22;10420:3;10409:9;10405:19;10398:26;;10459:2;10451:6;10447:15;10433:29;;10480:1;10490:195;10504:6;10501:1;10498:13;10490:195;;;10569:13;;-1:-1:-1;;;;;10565:39:1;10553:52;;10660:15;;;;10625:12;;;;10601:1;10519:9;10490:195;;;-1:-1:-1;;;;;;;10741:32:1;;;;10736:2;10721:18;;10714:60;-1:-1:-1;;;10805:3:1;10790:19;10783:35;10702:3;9844:980;-1:-1:-1;;;9844:980:1:o;11441:306::-;11529:6;11537;11545;11598:2;11586:9;11577:7;11573:23;11569:32;11566:52;;;11614:1;11611;11604:12;11566:52;11643:9;11637:16;11627:26;;11693:2;11682:9;11678:18;11672:25;11662:35;;11737:2;11726:9;11722:18;11716:25;11706:35;;11441:306;;;;;:::o

Swarm Source

ipfs://4ac9eb153978e9e6ecfd5387edb98909e58956528d96a6a6f96c46c57b033aef
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.