ETH Price: $2,688.01 (-2.34%)
Gas: 0.83 Gwei

Token

HE IS AI (HEAI)
 

Overview

Max Total Supply

1,000,000 HEAI

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.867648302 HEAI

Value
$0.00
0xb7fca9714061b854dee703d78d666ade987ac86e
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:
HEAI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-30
*/

/**
*/

/**
*/

// SPDX-License-Identifier: MIT

/**

HE IS AI $HEAI

TG: https://t.me/heisaiportal
Twitter: https://twitter.com/aiherc1

**/
pragma solidity 0.8.17;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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

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

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

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

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

}

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 HEAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialTax=12;
    uint256 private _finalTax=5;
    uint256 private _reduceTaxAt=30;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    string private constant _name = unicode"HE IS AI";
    string private constant _symbol = unicode"HEAI";
    uint256 public _maxTxAmount =   20000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000 * 10**_decimals;
    uint256 public _taxSwap=20000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if(!inSwap){
              taxAmount = amount.mul((_buyCount>_reduceTaxAt)?_finalTax:_initialTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwap && _buyCount>_preventSwapBefore) {
                swapTokensForEth(_taxSwap>amount?amount:_taxSwap);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

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

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

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function setWalletandTxtAmount(uint256 maxTxAmount, uint256 maxWalletSize) external onlyOwner{
        _maxTxAmount = maxTxAmount * 10 **_decimals;
        _maxWalletSize = maxWalletSize * 10 **_decimals;
    }

    function updateMaxWallet(uint256 maxWalletSize) external onlyOwner{
        _maxWalletSize = maxWalletSize * 10 **_decimals;
    }

    function updateMaxTxtAmount(uint256 maxTxAmount) external onlyOwner{
        _maxTxAmount = maxTxAmount * 10 **_decimals;
    }


    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<2);
      _finalTax=_newFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        swapTokensForEth(balanceOf(address(this)));
    }

    function manualSend() external {
        require(_msgSender() == _taxWallet);
        sendETHToFee(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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","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":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setWalletandTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"updateMaxTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600c6006556005600755601e600855601e6009556000600a556009600a6200002d919062000307565b6200003b90614e206200031f565b600b556200004c6009600a62000307565b6200005a90614e206200031f565b600c556200006b6009600a62000307565b6200007990614e206200031f565b600d55600f805461ffff60a81b191690553480156200009757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191633179055620000f96009600a62000307565b6200010890620f42406200031f565b336000908152600160208190526040822092909255600390620001336000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001923390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001cc6009600a62000307565b620001db90620f42406200031f565b60405190815260200160405180910390a362000339565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002495781600019048211156200022d576200022d620001f2565b808516156200023b57918102915b93841c93908002906200020d565b509250929050565b600082620002625750600162000301565b81620002715750600062000301565b81600181146200028a57600281146200029557620002b5565b600191505062000301565b60ff841115620002a957620002a9620001f2565b50506001821b62000301565b5060208310610133831016604e8410600b8410161715620002da575081810a62000301565b620002e6838362000208565b8060001904821115620002fd57620002fd620001f2565b0290505b92915050565b60006200031860ff84168362000251565b9392505050565b8082028115828204841417620003015762000301620001f2565b611bc380620003496000396000f3fe60806040526004361061014e5760003560e01c8063751039fc116100b6578063c24ad66c1161006f578063c24ad66c146103ba578063c9567bf9146103da578063d34628cc146103ef578063dd62ed3e1461040f578063ec1f3f6314610455578063f42938901461047557600080fd5b8063751039fc146103045780637d1db4a5146103195780638da5cb5b1461032f5780638f9a55c01461035757806395d89b411461036d578063a9059cbb1461039a57600080fd5b8063313ce56711610108578063313ce5671461025257806331c2d8471461026e57806334376f3b1461028e57806351bc3c85146102a457806370a08231146102b9578063715018a6146102ef57600080fd5b8062f44d241461015a57806306fdde031461017c578063095ea7b3146101bf57806318160ddd146101ef5780631c499ab01461021257806323b872dd1461023257600080fd5b3661015557005b600080fd5b34801561016657600080fd5b5061017a61017536600461166f565b61048a565b005b34801561018857600080fd5b50604080518082019091526008815267484520495320414960c01b60208201525b6040516101b69190611688565b60405180910390f35b3480156101cb57600080fd5b506101df6101da3660046116fb565b6104d9565b60405190151581526020016101b6565b3480156101fb57600080fd5b506102046104f0565b6040519081526020016101b6565b34801561021e57600080fd5b5061017a61022d36600461166f565b610510565b34801561023e57600080fd5b506101df61024d366004611727565b610556565b34801561025e57600080fd5b50604051600981526020016101b6565b34801561027a57600080fd5b5061017a61028936600461177e565b6105bf565b34801561029a57600080fd5b50610204600d5481565b3480156102b057600080fd5b5061017a610655565b3480156102c557600080fd5b506102046102d4366004611843565b6001600160a01b031660009081526001602052604090205490565b3480156102fb57600080fd5b5061017a610690565b34801561031057600080fd5b5061017a610704565b34801561032557600080fd5b50610204600b5481565b34801561033b57600080fd5b506000546040516001600160a01b0390911681526020016101b6565b34801561036357600080fd5b50610204600c5481565b34801561037957600080fd5b506040805180820190915260048152634845414960e01b60208201526101a9565b3480156103a657600080fd5b506101df6103b53660046116fb565b6107b3565b3480156103c657600080fd5b5061017a6103d5366004611860565b6107c0565b3480156103e657600080fd5b5061017a610820565b3480156103fb57600080fd5b5061017a61040a36600461177e565b610bda565b34801561041b57600080fd5b5061020461042a366004611882565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561046157600080fd5b5061017a61047036600461166f565b610c6c565b34801561048157600080fd5b5061017a610c9e565b6000546001600160a01b031633146104bd5760405162461bcd60e51b81526004016104b4906118bb565b60405180910390fd5b6104c96009600a6119ea565b6104d390826119f9565b600b5550565b60006104e6338484610cc7565b5060015b92915050565b60006104fe6009600a6119ea565b61050b90620f42406119f9565b905090565b6000546001600160a01b0316331461053a5760405162461bcd60e51b81526004016104b4906118bb565b6105466009600a6119ea565b61055090826119f9565b600c5550565b6000610563848484610deb565b6105b584336105b085604051806060016040528060288152602001611b66602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906112e7565b610cc7565b5060019392505050565b6000546001600160a01b031633146105e95760405162461bcd60e51b81526004016104b4906118bb565b60005b81518110156106515760006004600084848151811061060d5761060d611a10565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061064981611a26565b9150506105ec565b5050565b6005546001600160a01b0316336001600160a01b03161461067557600080fd5b3060009081526001602052604090205461068e90611321565b565b6000546001600160a01b031633146106ba5760405162461bcd60e51b81526004016104b4906118bb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461072e5760405162461bcd60e51b81526004016104b4906118bb565b61073a6009600a6119ea565b61074790620f42406119f9565b600b556107566009600a6119ea565b61076390620f42406119f9565b600c557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107936009600a6119ea565b6107a090620f42406119f9565b60405190815260200160405180910390a1565b60006104e6338484610deb565b6000546001600160a01b031633146107ea5760405162461bcd60e51b81526004016104b4906118bb565b6107f66009600a6119ea565b61080090836119f9565b600b5561080f6009600a6119ea565b61081990826119f9565b600c555050565b6000546001600160a01b0316331461084a5760405162461bcd60e51b81526004016104b4906118bb565b600f54600160a01b900460ff16156108a45760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b4565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108ec9030906108df6009600a6119ea565b6105b090620f42406119f9565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561093f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109639190611a3f565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e99190611a3f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5a9190611a3f565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d7194730610aa2816001600160a01b031660009081526001602052604090205490565b600080610ab76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b1f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b449190611a5c565b5050600f805462ff00ff60a01b1981166201000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd79190611a8a565b50565b6000546001600160a01b03163314610c045760405162461bcd60e51b81526004016104b4906118bb565b60005b815181101561065157600160046000848481518110610c2857610c28611a10565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c6481611a26565b915050610c07565b6005546001600160a01b0316336001600160a01b031614610c8c57600080fd5b60028110610c9957600080fd5b600755565b6005546001600160a01b0316336001600160a01b031614610cbe57600080fd5b61068e4761149b565b6001600160a01b038316610d295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b4565b6001600160a01b038216610d8a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b4565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e4f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b4565b6001600160a01b038216610eb15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b4565b60008111610f135760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b4565b600080546001600160a01b03858116911614801590610f4057506000546001600160a01b03848116911614155b156111a4576001600160a01b03841660009081526004602052604090205460ff16158015610f8757506001600160a01b03831660009081526004602052604090205460ff16155b610f9057600080fd5b600f54600160a81b900460ff16610fd057610fcd6064610fc7600854600a5411610fbc57600654610fc0565b6007545b85906114d5565b9061155e565b90505b600f546001600160a01b038581169116148015610ffb5750600e546001600160a01b03848116911614155b801561102057506001600160a01b03831660009081526003602052604090205460ff16155b1561110857600b548211156110775760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104b4565b600c548261109a856001600160a01b031660009081526001602052604090205490565b6110a49190611aac565b11156110f25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b4565b600a805490600061110283611a26565b91905055505b30600090815260016020526040902054600f54600160a81b900460ff161580156111405750600f546001600160a01b03868116911614155b80156111555750600f54600160b01b900460ff165b80156111625750600d5481115b80156111715750600954600a54115b156111a25761119083600d541161118a57600d54611321565b83611321565b4780156111a0576111a04761149b565b505b505b6001600160a01b0384166000908152600160205260409020546111c790836115a0565b6001600160a01b03851660009081526001602052604090205561120c6111ed83836115a0565b6001600160a01b038516600090815260016020526040902054906115e2565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61125685856115a0565b60405190815260200160405180910390a380156112e1573060009081526001602052604090205461128790826115e2565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112d89085815260200190565b60405180910390a35b50505050565b6000818484111561130b5760405162461bcd60e51b81526004016104b49190611688565b5060006113188486611abf565b95945050505050565b600f805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061136957611369611a10565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190611a3f565b816001815181106113f9576113f9611a10565b6001600160a01b039283166020918202929092010152600e5461141f9130911684610cc7565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611458908590600090869030904290600401611ad2565b600060405180830381600087803b15801561147257600080fd5b505af1158015611486573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610651573d6000803e3d6000fd5b6000826000036114e7575060006104ea565b60006114f383856119f9565b9050826115008583611b43565b146115575760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104b4565b9392505050565b600061155783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611641565b600061155783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112e7565b6000806115ef8385611aac565b9050838110156115575760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104b4565b600081836116625760405162461bcd60e51b81526004016104b49190611688565b5060006113188486611b43565b60006020828403121561168157600080fd5b5035919050565b600060208083528351808285015260005b818110156116b557858101830151858201604001528201611699565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bd757600080fd5b80356116f6816116d6565b919050565b6000806040838503121561170e57600080fd5b8235611719816116d6565b946020939093013593505050565b60008060006060848603121561173c57600080fd5b8335611747816116d6565b92506020840135611757816116d6565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561179157600080fd5b823567ffffffffffffffff808211156117a957600080fd5b818501915085601f8301126117bd57600080fd5b8135818111156117cf576117cf611768565b8060051b604051601f19603f830116810181811085821117156117f4576117f4611768565b60405291825284820192508381018501918883111561181257600080fd5b938501935b8285101561183757611828856116eb565b84529385019392850192611817565b98975050505050505050565b60006020828403121561185557600080fd5b8135611557816116d6565b6000806040838503121561187357600080fd5b50508035926020909101359150565b6000806040838503121561189557600080fd5b82356118a0816116d6565b915060208301356118b0816116d6565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611941578160001904821115611927576119276118f0565b8085161561193457918102915b93841c939080029061190b565b509250929050565b600082611958575060016104ea565b81611965575060006104ea565b816001811461197b5760028114611985576119a1565b60019150506104ea565b60ff841115611996576119966118f0565b50506001821b6104ea565b5060208310610133831016604e8410600b84101617156119c4575081810a6104ea565b6119ce8383611906565b80600019048211156119e2576119e26118f0565b029392505050565b600061155760ff841683611949565b80820281158282048414176104ea576104ea6118f0565b634e487b7160e01b600052603260045260246000fd5b600060018201611a3857611a386118f0565b5060010190565b600060208284031215611a5157600080fd5b8151611557816116d6565b600080600060608486031215611a7157600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a9c57600080fd5b8151801515811461155757600080fd5b808201808211156104ea576104ea6118f0565b818103818111156104ea576104ea6118f0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b225784516001600160a01b031683529383019391830191600101611afd565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b6057634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c547de60834b079c9440af091647fd47fb90d8bdd2fa9078b39db177f4cf46c364736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014e5760003560e01c8063751039fc116100b6578063c24ad66c1161006f578063c24ad66c146103ba578063c9567bf9146103da578063d34628cc146103ef578063dd62ed3e1461040f578063ec1f3f6314610455578063f42938901461047557600080fd5b8063751039fc146103045780637d1db4a5146103195780638da5cb5b1461032f5780638f9a55c01461035757806395d89b411461036d578063a9059cbb1461039a57600080fd5b8063313ce56711610108578063313ce5671461025257806331c2d8471461026e57806334376f3b1461028e57806351bc3c85146102a457806370a08231146102b9578063715018a6146102ef57600080fd5b8062f44d241461015a57806306fdde031461017c578063095ea7b3146101bf57806318160ddd146101ef5780631c499ab01461021257806323b872dd1461023257600080fd5b3661015557005b600080fd5b34801561016657600080fd5b5061017a61017536600461166f565b61048a565b005b34801561018857600080fd5b50604080518082019091526008815267484520495320414960c01b60208201525b6040516101b69190611688565b60405180910390f35b3480156101cb57600080fd5b506101df6101da3660046116fb565b6104d9565b60405190151581526020016101b6565b3480156101fb57600080fd5b506102046104f0565b6040519081526020016101b6565b34801561021e57600080fd5b5061017a61022d36600461166f565b610510565b34801561023e57600080fd5b506101df61024d366004611727565b610556565b34801561025e57600080fd5b50604051600981526020016101b6565b34801561027a57600080fd5b5061017a61028936600461177e565b6105bf565b34801561029a57600080fd5b50610204600d5481565b3480156102b057600080fd5b5061017a610655565b3480156102c557600080fd5b506102046102d4366004611843565b6001600160a01b031660009081526001602052604090205490565b3480156102fb57600080fd5b5061017a610690565b34801561031057600080fd5b5061017a610704565b34801561032557600080fd5b50610204600b5481565b34801561033b57600080fd5b506000546040516001600160a01b0390911681526020016101b6565b34801561036357600080fd5b50610204600c5481565b34801561037957600080fd5b506040805180820190915260048152634845414960e01b60208201526101a9565b3480156103a657600080fd5b506101df6103b53660046116fb565b6107b3565b3480156103c657600080fd5b5061017a6103d5366004611860565b6107c0565b3480156103e657600080fd5b5061017a610820565b3480156103fb57600080fd5b5061017a61040a36600461177e565b610bda565b34801561041b57600080fd5b5061020461042a366004611882565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561046157600080fd5b5061017a61047036600461166f565b610c6c565b34801561048157600080fd5b5061017a610c9e565b6000546001600160a01b031633146104bd5760405162461bcd60e51b81526004016104b4906118bb565b60405180910390fd5b6104c96009600a6119ea565b6104d390826119f9565b600b5550565b60006104e6338484610cc7565b5060015b92915050565b60006104fe6009600a6119ea565b61050b90620f42406119f9565b905090565b6000546001600160a01b0316331461053a5760405162461bcd60e51b81526004016104b4906118bb565b6105466009600a6119ea565b61055090826119f9565b600c5550565b6000610563848484610deb565b6105b584336105b085604051806060016040528060288152602001611b66602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906112e7565b610cc7565b5060019392505050565b6000546001600160a01b031633146105e95760405162461bcd60e51b81526004016104b4906118bb565b60005b81518110156106515760006004600084848151811061060d5761060d611a10565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061064981611a26565b9150506105ec565b5050565b6005546001600160a01b0316336001600160a01b03161461067557600080fd5b3060009081526001602052604090205461068e90611321565b565b6000546001600160a01b031633146106ba5760405162461bcd60e51b81526004016104b4906118bb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461072e5760405162461bcd60e51b81526004016104b4906118bb565b61073a6009600a6119ea565b61074790620f42406119f9565b600b556107566009600a6119ea565b61076390620f42406119f9565b600c557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107936009600a6119ea565b6107a090620f42406119f9565b60405190815260200160405180910390a1565b60006104e6338484610deb565b6000546001600160a01b031633146107ea5760405162461bcd60e51b81526004016104b4906118bb565b6107f66009600a6119ea565b61080090836119f9565b600b5561080f6009600a6119ea565b61081990826119f9565b600c555050565b6000546001600160a01b0316331461084a5760405162461bcd60e51b81526004016104b4906118bb565b600f54600160a01b900460ff16156108a45760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b4565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108ec9030906108df6009600a6119ea565b6105b090620f42406119f9565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561093f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109639190611a3f565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e99190611a3f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5a9190611a3f565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d7194730610aa2816001600160a01b031660009081526001602052604090205490565b600080610ab76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b1f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b449190611a5c565b5050600f805462ff00ff60a01b1981166201000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd79190611a8a565b50565b6000546001600160a01b03163314610c045760405162461bcd60e51b81526004016104b4906118bb565b60005b815181101561065157600160046000848481518110610c2857610c28611a10565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c6481611a26565b915050610c07565b6005546001600160a01b0316336001600160a01b031614610c8c57600080fd5b60028110610c9957600080fd5b600755565b6005546001600160a01b0316336001600160a01b031614610cbe57600080fd5b61068e4761149b565b6001600160a01b038316610d295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b4565b6001600160a01b038216610d8a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b4565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e4f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b4565b6001600160a01b038216610eb15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b4565b60008111610f135760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b4565b600080546001600160a01b03858116911614801590610f4057506000546001600160a01b03848116911614155b156111a4576001600160a01b03841660009081526004602052604090205460ff16158015610f8757506001600160a01b03831660009081526004602052604090205460ff16155b610f9057600080fd5b600f54600160a81b900460ff16610fd057610fcd6064610fc7600854600a5411610fbc57600654610fc0565b6007545b85906114d5565b9061155e565b90505b600f546001600160a01b038581169116148015610ffb5750600e546001600160a01b03848116911614155b801561102057506001600160a01b03831660009081526003602052604090205460ff16155b1561110857600b548211156110775760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104b4565b600c548261109a856001600160a01b031660009081526001602052604090205490565b6110a49190611aac565b11156110f25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b4565b600a805490600061110283611a26565b91905055505b30600090815260016020526040902054600f54600160a81b900460ff161580156111405750600f546001600160a01b03868116911614155b80156111555750600f54600160b01b900460ff165b80156111625750600d5481115b80156111715750600954600a54115b156111a25761119083600d541161118a57600d54611321565b83611321565b4780156111a0576111a04761149b565b505b505b6001600160a01b0384166000908152600160205260409020546111c790836115a0565b6001600160a01b03851660009081526001602052604090205561120c6111ed83836115a0565b6001600160a01b038516600090815260016020526040902054906115e2565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61125685856115a0565b60405190815260200160405180910390a380156112e1573060009081526001602052604090205461128790826115e2565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112d89085815260200190565b60405180910390a35b50505050565b6000818484111561130b5760405162461bcd60e51b81526004016104b49190611688565b5060006113188486611abf565b95945050505050565b600f805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061136957611369611a10565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190611a3f565b816001815181106113f9576113f9611a10565b6001600160a01b039283166020918202929092010152600e5461141f9130911684610cc7565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611458908590600090869030904290600401611ad2565b600060405180830381600087803b15801561147257600080fd5b505af1158015611486573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610651573d6000803e3d6000fd5b6000826000036114e7575060006104ea565b60006114f383856119f9565b9050826115008583611b43565b146115575760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104b4565b9392505050565b600061155783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611641565b600061155783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112e7565b6000806115ef8385611aac565b9050838110156115575760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104b4565b600081836116625760405162461bcd60e51b81526004016104b49190611688565b5060006113188486611b43565b60006020828403121561168157600080fd5b5035919050565b600060208083528351808285015260005b818110156116b557858101830151858201604001528201611699565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bd757600080fd5b80356116f6816116d6565b919050565b6000806040838503121561170e57600080fd5b8235611719816116d6565b946020939093013593505050565b60008060006060848603121561173c57600080fd5b8335611747816116d6565b92506020840135611757816116d6565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561179157600080fd5b823567ffffffffffffffff808211156117a957600080fd5b818501915085601f8301126117bd57600080fd5b8135818111156117cf576117cf611768565b8060051b604051601f19603f830116810181811085821117156117f4576117f4611768565b60405291825284820192508381018501918883111561181257600080fd5b938501935b8285101561183757611828856116eb565b84529385019392850192611817565b98975050505050505050565b60006020828403121561185557600080fd5b8135611557816116d6565b6000806040838503121561187357600080fd5b50508035926020909101359150565b6000806040838503121561189557600080fd5b82356118a0816116d6565b915060208301356118b0816116d6565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611941578160001904821115611927576119276118f0565b8085161561193457918102915b93841c939080029061190b565b509250929050565b600082611958575060016104ea565b81611965575060006104ea565b816001811461197b5760028114611985576119a1565b60019150506104ea565b60ff841115611996576119966118f0565b50506001821b6104ea565b5060208310610133831016604e8410600b84101617156119c4575081810a6104ea565b6119ce8383611906565b80600019048211156119e2576119e26118f0565b029392505050565b600061155760ff841683611949565b80820281158282048414176104ea576104ea6118f0565b634e487b7160e01b600052603260045260246000fd5b600060018201611a3857611a386118f0565b5060010190565b600060208284031215611a5157600080fd5b8151611557816116d6565b600080600060608486031215611a7157600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a9c57600080fd5b8151801515811461155757600080fd5b808201808211156104ea576104ea6118f0565b818103818111156104ea576104ea6118f0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b225784516001600160a01b031683529383019391830191600101611afd565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b6057634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c547de60834b079c9440af091647fd47fb90d8bdd2fa9078b39db177f4cf46c364736f6c63430008110033

Deployed Bytecode Sourcemap

3596:7767:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10752:129;;;;;;;;;;-1:-1:-1;10752:129:0;;;;;:::i;:::-;;:::i;:::-;;5199:83;;;;;;;;;;-1:-1:-1;5269:5:0;;;;;;;;;;;;-1:-1:-1;;;5269:5:0;;;;5199:83;;;;;;;:::i;:::-;;;;;;;;6032:161;;;;;;;;;;-1:-1:-1;6032:161:0;;;;;:::i;:::-;;:::i;:::-;;;1512:14:1;;1505:22;1487:41;;1475:2;1460:18;6032:161:0;1347:187:1;5476:95:0;;;;;;;;;;;;;:::i;:::-;;;1685:25:1;;;1673:2;1658:18;5476:95:0;1539:177:1;10612:132:0;;;;;;;;;;-1:-1:-1;10612:132:0;;;;;:::i;:::-;;:::i;6201:313::-;;;;;;;;;;-1:-1:-1;6201:313:0;;;;;:::i;:::-;;:::i;5385:83::-;;;;;;;;;;-1:-1:-1;5385:83:0;;4178:1;2324:36:1;;2312:2;2297:18;5385:83:0;2182:184:1;9542:162:0;;;;;;;;;;-1:-1:-1;9542:162:0;;;;;:::i;:::-;;:::i;4481:45::-;;;;;;;;;;;;;;;;11083:138;;;;;;;;;;;;;:::i;5579:119::-;;;;;;;;;;-1:-1:-1;5579:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5672:18:0;5645:7;5672:18;;;:9;:18;;;;;;;5579:119;2677:148;;;;;;;;;;;;;:::i;9103:159::-;;;;;;;;;;;;;:::i;4361:53::-;;;;;;;;;;;;;;;;2463:79;;;;;;;;;;-1:-1:-1;2501:7:0;2528:6;2463:79;;-1:-1:-1;;;;;2528:6:0;;;4027:51:1;;4015:2;4000:18;2463:79:0;3881:203:1;4421:53:0;;;;;;;;;;;;;;;;5290:87;;;;;;;;;;-1:-1:-1;5362:7:0;;;;;;;;;;;;-1:-1:-1;;;5362:7:0;;;;5290:87;;5706:167;;;;;;;;;;-1:-1:-1;5706:167:0;;;;;:::i;:::-;;:::i;10391:213::-;;;;;;;;;;-1:-1:-1;10391:213:0;;;;;:::i;:::-;;:::i;9712:671::-;;;;;;;;;;;;;:::i;9370:164::-;;;;;;;;;;-1:-1:-1;9370:164:0;;;;;:::i;:::-;;:::i;5881:143::-;;;;;;;;;;-1:-1:-1;5881:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5989:18:0;;;5962:7;5989:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5881:143;10891:147;;;;;;;;;;-1:-1:-1;10891:147:0;;;;;:::i;:::-;;:::i;11229:131::-;;;;;;;;;;;;;:::i;10752:129::-;2590:6;;-1:-1:-1;;;;;2590:6:0;298:10;2590:22;2582:67;;;;-1:-1:-1;;;2582:67:0;;;;;;;:::i;:::-;;;;;;;;;10859:14:::1;4178:1;10859:2;:14;:::i;:::-;10845:28;::::0;:11;:28:::1;:::i;:::-;10830:12;:43:::0;-1:-1:-1;10752:129:0:o;6032:161::-;6107:4;6124:39;298:10;6147:7;6156:6;6124:8;:39::i;:::-;-1:-1:-1;6181:4:0;6032:161;;;;;:::o;5476:95::-;5529:7;4231:13;4178:1;4231:2;:13;:::i;:::-;4221:23;;:7;:23;:::i;:::-;5549:14;;5476:95;:::o;10612:132::-;2590:6;;-1:-1:-1;;;;;2590:6:0;298:10;2590:22;2582:67;;;;-1:-1:-1;;;2582:67:0;;;;;;;:::i;:::-;10722:14:::1;4178:1;10722:2;:14;:::i;:::-;10706:30;::::0;:13;:30:::1;:::i;:::-;10689:14;:47:::0;-1:-1:-1;10612:132:0:o;6201:313::-;6299:4;6316:36;6326:6;6334:9;6345:6;6316:9;:36::i;:::-;6363:121;6372:6;298:10;6394:89;6432:6;6394:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6394:19:0;;;;;;:11;:19;;;;;;;;298:10;6394:33;;;;;;;;;;:37;:89::i;:::-;6363:8;:121::i;:::-;-1:-1:-1;6502:4:0;6201:313;;;;;:::o;9542:162::-;2590:6;;-1:-1:-1;;;;;2590:6:0;298:10;2590:22;2582:67;;;;-1:-1:-1;;;2582:67:0;;;;;;;:::i;:::-;9615:6:::1;9610:87;9631:6;:13;9627:1;:17;9610:87;;;9682:5;9664:4;:15;9669:6;9676:1;9669:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9664:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9664:15:0;:23;;-1:-1:-1;;9664:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9646:3;::::1;::::0;::::1;:::i;:::-;;;;9610:87;;;;9542:162:::0;:::o;11083:138::-;11149:10;;-1:-1:-1;;;;;11149:10:0;298;-1:-1:-1;;;;;11133:26:0;;11125:35;;;;;;11206:4;5645:7;5672:18;;;:9;:18;;;;;;11171:42;;:16;:42::i;:::-;11083:138::o;2677:148::-;2590:6;;-1:-1:-1;;;;;2590:6:0;298:10;2590:22;2582:67;;;;-1:-1:-1;;;2582:67:0;;;;;;;:::i;:::-;2784:1:::1;2768:6:::0;;2747:40:::1;::::0;-1:-1:-1;;;;;2768:6:0;;::::1;::::0;2747:40:::1;::::0;2784:1;;2747:40:::1;2815:1;2798:19:::0;;-1:-1:-1;;;;;;2798:19:0::1;::::0;;2677:148::o;9103:159::-;2590:6;;-1:-1:-1;;;;;2590:6:0;298:10;2590:22;2582:67;;;;-1:-1:-1;;;2582:67:0;;;;;;;:::i;:::-;4231:13:::1;4178:1;4231:2;:13;:::i;:::-;4221:23;::::0;:7:::1;:23;:::i;:::-;9156:12;:22:::0;4231:13:::1;4178:1;4231:2;:13;:::i;:::-;4221:23;::::0;:7:::1;:23;:::i;:::-;9189:14;:22:::0;9227:27:::1;4231:13;4178:1;4231:2;:13;:::i;:::-;4221:23;::::0;:7:::1;:23;:::i;:::-;9227:27;::::0;1685:25:1;;;1673:2;1658:18;9227:27:0::1;;;;;;;9103:159::o:0;5706:167::-;5784:4;5801:42;298:10;5825:9;5836:6;5801:9;:42::i;10391:213::-;2590:6;;-1:-1:-1;;;;;2590:6:0;298:10;2590:22;2582:67;;;;-1:-1:-1;;;2582:67:0;;;;;;;:::i;:::-;10524:14:::1;4178:1;10524:2;:14;:::i;:::-;10510:28;::::0;:11;:28:::1;:::i;:::-;10495:12;:43:::0;10582:14:::1;4178:1;10582:2;:14;:::i;:::-;10566:30;::::0;:13;:30:::1;:::i;:::-;10549:14;:47:::0;-1:-1:-1;;10391:213:0:o;9712:671::-;2590:6;;-1:-1:-1;;;;;2590:6:0;298:10;2590:22;2582:67;;;;-1:-1:-1;;;2582:67:0;;;;;;;:::i;:::-;9776:11:::1;::::0;-1:-1:-1;;;9776:11:0;::::1;;;9775:12;9767:47;;;::::0;-1:-1:-1;;;9767:47:0;;7258:2:1;9767:47:0::1;::::0;::::1;7240:21:1::0;7297:2;7277:18;;;7270:30;7336:25;7316:18;;;7309:53;7379:18;;9767:47:0::1;7056:347:1::0;9767:47:0::1;9825:15;:80:::0;;-1:-1:-1;;;;;;9825:80:0::1;9862:42;9825:80:::0;;::::1;::::0;;;9916:58:::1;::::0;9933:4:::1;::::0;4231:13:::1;4178:1;4231:2;:13;:::i;:::-;4221:23;::::0;:7:::1;:23;:::i;9916:58::-;10019:15;;;;;;;;;-1:-1:-1::0;;;;;10019:15:0::1;-1:-1:-1::0;;;;;10019:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10001:55:0::1;;10065:4;10072:15;;;;;;;;;-1:-1:-1::0;;;;;10072:15:0::1;-1:-1:-1::0;;;;;10072:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10001:94;::::0;-1:-1:-1;;;;;;10001:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7894:15:1;;;10001:94:0::1;::::0;::::1;7876:34:1::0;7946:15;;7926:18;;;7919:43;7811:18;;10001:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9985:13;:110:::0;;-1:-1:-1;;;;;9985:110:0;;::::1;-1:-1:-1::0;;;;;;9985:110:0;;::::1;;::::0;;10106:15:::1;::::0;::::1;:31;10145:21;10176:4;10182:24;10176:4:::0;-1:-1:-1;;;;;5672:18:0;5645:7;5672:18;;;:9;:18;;;;;;;5579:119;10182:24:::1;10207:1;10209::::0;10211:7:::1;2501::::0;2528:6;-1:-1:-1;;;;;2528:6:0;;2463:79;10211:7:::1;10106:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10106:129:0;;;-1:-1:-1;;;;;8332:15:1;;;10106:129:0::1;::::0;::::1;8314:34:1::0;8364:18;;;8357:34;;;;8407:18;;;8400:34;;;;8450:18;;;8443:34;8514:15;;;8493:19;;;8486:44;10219:15:0::1;8546:19:1::0;;;8539:35;8248:19;;10106:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10246:11:0::1;:18:::0;;-1:-1:-1;;;;10275:18:0;;-1:-1:-1;;;10275:18:0;;;;10342:15:::1;::::0;10304:71:::1;::::0;-1:-1:-1;;;10304:71:0;;-1:-1:-1;;;;;10342:15:0;;::::1;10304:71;::::0;::::1;9070:51:1::0;-1:-1:-1;;9137:18:1;;;9130:34;10311:13:0;;;-1:-1:-1;10304:29:0::1;::::0;9043:18:1;;10304:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9712:671::o:0;9370:164::-;2590:6;;-1:-1:-1;;;;;2590:6:0;298:10;2590:22;2582:67;;;;-1:-1:-1;;;2582:67:0;;;;;;;:::i;:::-;9444:6:::1;9439:88;9460:5;:12;9456:1;:16;9439:88;;;9511:4;9494;:14;9499:5;9505:1;9499:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9494:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9494:14:0;:21;;-1:-1:-1;;9494:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9474:3;::::1;::::0;::::1;:::i;:::-;;;;9439:88;;10891:147:::0;10966:10;;-1:-1:-1;;;;;10966:10:0;298;-1:-1:-1;;;;;10952:24:0;;10944:33;;;;;;11002:1;10994:7;:9;10986:18;;;;;;11013:9;:17;10891:147::o;11229:131::-;11295:10;;-1:-1:-1;;;;;11295:10:0;298;-1:-1:-1;;;;;11279:26:0;;11271:35;;;;;;11317;11330:21;11317:12;:35::i;6522:335::-;-1:-1:-1;;;;;6615:19:0;;6607:68;;;;-1:-1:-1;;;6607:68:0;;9659:2:1;6607:68:0;;;9641:21:1;9698:2;9678:18;;;9671:30;9737:34;9717:18;;;9710:62;-1:-1:-1;;;9788:18:1;;;9781:34;9832:19;;6607:68:0;9457:400:1;6607:68:0;-1:-1:-1;;;;;6694:21:0;;6686:68;;;;-1:-1:-1;;;6686:68:0;;10064:2:1;6686:68:0;;;10046:21:1;10103:2;10083:18;;;10076:30;10142:34;10122:18;;;10115:62;-1:-1:-1;;;10193:18:1;;;10186:32;10235:19;;6686:68:0;9862:398:1;6686:68:0;-1:-1:-1;;;;;6765:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6817:32;;1685:25:1;;;6817:32:0;;1658:18:1;6817:32:0;;;;;;;6522:335;;;:::o;6865:1739::-;-1:-1:-1;;;;;6953:18:0;;6945:68;;;;-1:-1:-1;;;6945:68:0;;10467:2:1;6945:68:0;;;10449:21:1;10506:2;10486:18;;;10479:30;10545:34;10525:18;;;10518:62;-1:-1:-1;;;10596:18:1;;;10589:35;10641:19;;6945:68:0;10265:401:1;6945:68:0;-1:-1:-1;;;;;7032:16:0;;7024:64;;;;-1:-1:-1;;;7024:64:0;;10873:2:1;7024:64:0;;;10855:21:1;10912:2;10892:18;;;10885:30;10951:34;10931:18;;;10924:62;-1:-1:-1;;;11002:18:1;;;10995:33;11045:19;;7024:64:0;10671:399:1;7024:64:0;7116:1;7107:6;:10;7099:64;;;;-1:-1:-1;;;7099:64:0;;11277:2:1;7099:64:0;;;11259:21:1;11316:2;11296:18;;;11289:30;11355:34;11335:18;;;11328:62;-1:-1:-1;;;11406:18:1;;;11399:39;11455:19;;7099:64:0;11075:405:1;7099:64:0;7174:17;2528:6;;-1:-1:-1;;;;;7208:15:0;;;2528:6;;7208:15;;;;:32;;-1:-1:-1;2501:7:0;2528:6;-1:-1:-1;;;;;7227:13:0;;;2528:6;;7227:13;;7208:32;7204:1044;;;-1:-1:-1;;;;;7266:10:0;;;;;;:4;:10;;;;;;;;7265:11;:24;;;;-1:-1:-1;;;;;;7281:8:0;;;;;;:4;:8;;;;;;;;7280:9;7265:24;7257:33;;;;;;7309:6;;-1:-1:-1;;;7309:6:0;;;;7305:123;;7345:67;7408:3;7345:58;7367:12;;7357:9;;:22;7356:46;;7391:11;;7356:46;;;7381:9;;7356:46;7345:6;;:10;:58::i;:::-;:62;;:67::i;:::-;7333:79;;7305:123;7456:13;;-1:-1:-1;;;;;7448:21:0;;;7456:13;;7448:21;:55;;;;-1:-1:-1;7487:15:0;;-1:-1:-1;;;;;7473:30:0;;;7487:15;;7473:30;;7448:55;:83;;;;-1:-1:-1;;;;;;7509:22:0;;;;;;:18;:22;;;;;;;;7507:24;7448:83;7444:313;;;7571:12;;7561:6;:22;;7553:60;;;;-1:-1:-1;;;7553:60:0;;11687:2:1;7553:60:0;;;11669:21:1;11726:2;11706:18;;;11699:30;11765:27;11745:18;;;11738:55;11810:18;;7553:60:0;11485:349:1;7553:60:0;7666:14;;7656:6;7640:13;7650:2;-1:-1:-1;;;;;5672:18:0;5645:7;5672:18;;;:9;:18;;;;;;;5579:119;7640:13;:22;;;;:::i;:::-;:40;;7632:79;;;;-1:-1:-1;;;7632:79:0;;12171:2:1;7632:79:0;;;12153:21:1;12210:2;12190:18;;;12183:30;12249:28;12229:18;;;12222:56;12295:18;;7632:79:0;11969:350:1;7632:79:0;7730:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7444:313;7822:4;7773:28;5672:18;;;:9;:18;;;;;;7848:6;;-1:-1:-1;;;7848:6:0;;;;7847:7;:32;;;;-1:-1:-1;7866:13:0;;-1:-1:-1;;;;;7858:21:0;;;7866:13;;7858:21;;7847:32;:47;;;;-1:-1:-1;7883:11:0;;-1:-1:-1;;;7883:11:0;;;;7847:47;:80;;;;;7919:8;;7898:20;:29;7847:80;:112;;;;;7941:18;;7931:9;;:28;7847:112;7843:394;;;7980:49;8006:6;7997:8;;:15;:31;;8020:8;;11171:16;:42::i;7997:31::-;8013:6;7980:16;:49::i;:::-;8077:21;8120:22;;8117:105;;8167:35;8180:21;8167:12;:35::i;:::-;7961:276;7843:394;7242:1006;7204:1044;-1:-1:-1;;;;;8276:15:0;;;;;;:9;:15;;;;;;:27;;8296:6;8276:19;:27::i;:::-;-1:-1:-1;;;;;8260:15:0;;;;;;:9;:15;;;;;:43;8328:40;8346:21;:6;8357:9;8346:10;:21::i;:::-;-1:-1:-1;;;;;8328:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;8314:13:0;;;;;;;:9;:13;;;;;:54;;;;8384:41;;;8403:21;:6;8414:9;8403:10;:21::i;:::-;8384:41;;1685:25:1;;;1673:2;1658:18;8384:41:0;;;;;;;8439:11;;8436:161;;8507:4;8489:24;;;;:9;:24;;;;;;:39;;8518:9;8489:28;:39::i;:::-;8482:4;8464:24;;;;:9;:24;;;;;;;:64;;;;8546:39;;-1:-1:-1;;;;;8546:39:0;;;;;;;8575:9;1685:25:1;;1673:2;1658:18;;1539:177;8546:39:0;;;;;;;;8436:161;6934:1670;6865:1739;;;:::o;1355:190::-;1441:7;1477:12;1469:6;;;;1461:29;;;;-1:-1:-1;;;1461:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1501:9:0;1513:5;1517:1;1513;:5;:::i;:::-;1501:17;1355:190;-1:-1:-1;;;;;1355:190:0:o;8612:483::-;4808:6;:13;;-1:-1:-1;;;;4808:13:0;-1:-1:-1;;;4808:13:0;;;8714:16:::1;::::0;;8728:1:::1;8714:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8714:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8714:16:0::1;8690:40;;8759:4;8741;8746:1;8741:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8741:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8785:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8785:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8741:7;;8785:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8775:4;8780:1;8775:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8775:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8850:15:::1;::::0;8818:62:::1;::::0;8835:4:::1;::::0;8850:15:::1;8868:11:::0;8818:8:::1;:62::i;:::-;8891:15;::::0;:196:::1;::::0;-1:-1:-1;;;8891:196:0;;-1:-1:-1;;;;;8891:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;8972:11;;8891:15:::1;::::0;9014:4;;9041::::1;::::0;9061:15:::1;::::0;8891:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4844:6:0;:14;;-1:-1:-1;;;;4844:14:0;;;-1:-1:-1;;;;8612:483:0:o;9270:92::-;9327:10;;:27;;-1:-1:-1;;;;;9327:10:0;;;;:27;;;;;9347:6;;9327:10;:27;:10;:27;9347:6;9327:10;:27;;;;;;;;;;;;;;;;;;;1553:246;1611:7;1635:1;1640;1635:6;1631:47;;-1:-1:-1;1665:1:0;1658:8;;1631:47;1688:9;1700:5;1704:1;1700;:5;:::i;:::-;1688:17;-1:-1:-1;1733:1:0;1724:5;1728:1;1688:17;1724:5;:::i;:::-;:10;1716:56;;;;-1:-1:-1;;;1716:56:0;;13866:2:1;1716:56:0;;;13848:21:1;13905:2;13885:18;;;13878:30;13944:34;13924:18;;;13917:62;-1:-1:-1;;;13995:18:1;;;13988:31;14036:19;;1716:56:0;13664:397:1;1716:56:0;1790:1;1553:246;-1:-1:-1;;;1553:246:0:o;1807:132::-;1865:7;1892:39;1896:1;1899;1892:39;;;;;;;;;;;;;;;;;:3;:39::i;1211:136::-;1269:7;1296:43;1300:1;1303;1296:43;;;;;;;;;;;;;;;;;:3;:43::i;1024:179::-;1082:7;;1114:5;1118:1;1114;:5;:::i;:::-;1102:17;;1143:1;1138;:6;;1130:46;;;;-1:-1:-1;;;1130:46:0;;14268:2:1;1130:46:0;;;14250:21:1;14307:2;14287:18;;;14280:30;14346:29;14326:18;;;14319:57;14393:18;;1130:46:0;14066:351:1;1947:189:0;2033:7;2068:12;2061:5;2053:28;;;;-1:-1:-1;;;2053:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2092:9:0;2104:5;2108:1;2104;:5;:::i;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:134;956:20;;985:31;956:20;985:31;:::i;:::-;888:134;;;:::o;1027:315::-;1095:6;1103;1156:2;1144:9;1135:7;1131:23;1127:32;1124:52;;;1172:1;1169;1162:12;1124:52;1211:9;1198:23;1230:31;1255:5;1230:31;:::i;:::-;1280:5;1332:2;1317:18;;;;1304:32;;-1:-1:-1;;;1027:315:1:o;1721:456::-;1798:6;1806;1814;1867:2;1855:9;1846:7;1842:23;1838:32;1835:52;;;1883:1;1880;1873:12;1835:52;1922:9;1909:23;1941:31;1966:5;1941:31;:::i;:::-;1991:5;-1:-1:-1;2048:2:1;2033:18;;2020:32;2061:33;2020:32;2061:33;:::i;:::-;1721:456;;2113:7;;-1:-1:-1;;;2167:2:1;2152:18;;;;2139:32;;1721:456::o;2371:127::-;2432:10;2427:3;2423:20;2420:1;2413:31;2463:4;2460:1;2453:15;2487:4;2484:1;2477:15;2503:1121;2587:6;2618:2;2661;2649:9;2640:7;2636:23;2632:32;2629:52;;;2677:1;2674;2667:12;2629:52;2717:9;2704:23;2746:18;2787:2;2779:6;2776:14;2773:34;;;2803:1;2800;2793:12;2773:34;2841:6;2830:9;2826:22;2816:32;;2886:7;2879:4;2875:2;2871:13;2867:27;2857:55;;2908:1;2905;2898:12;2857:55;2944:2;2931:16;2966:2;2962;2959:10;2956:36;;;2972:18;;:::i;:::-;3018:2;3015:1;3011:10;3050:2;3044:9;3113:2;3109:7;3104:2;3100;3096:11;3092:25;3084:6;3080:38;3168:6;3156:10;3153:22;3148:2;3136:10;3133:18;3130:46;3127:72;;;3179:18;;:::i;:::-;3215:2;3208:22;3265:18;;;3299:15;;;;-1:-1:-1;3341:11:1;;;3337:20;;;3369:19;;;3366:39;;;3401:1;3398;3391:12;3366:39;3425:11;;;;3445:148;3461:6;3456:3;3453:15;3445:148;;;3527:23;3546:3;3527:23;:::i;:::-;3515:36;;3478:12;;;;3571;;;;3445:148;;;3612:6;2503:1121;-1:-1:-1;;;;;;;;2503:1121:1:o;3629:247::-;3688:6;3741:2;3729:9;3720:7;3716:23;3712:32;3709:52;;;3757:1;3754;3747:12;3709:52;3796:9;3783:23;3815:31;3840:5;3815:31;:::i;4089:248::-;4157:6;4165;4218:2;4206:9;4197:7;4193:23;4189:32;4186:52;;;4234:1;4231;4224:12;4186:52;-1:-1:-1;;4257:23:1;;;4327:2;4312:18;;;4299:32;;-1:-1:-1;4089:248:1:o;4342:388::-;4410:6;4418;4471:2;4459:9;4450:7;4446:23;4442:32;4439:52;;;4487:1;4484;4477:12;4439:52;4526:9;4513:23;4545:31;4570:5;4545:31;:::i;:::-;4595:5;-1:-1:-1;4652:2:1;4637:18;;4624:32;4665:33;4624:32;4665:33;:::i;:::-;4717:7;4707:17;;;4342:388;;;;;:::o;4735:356::-;4937:2;4919:21;;;4956:18;;;4949:30;5015:34;5010:2;4995:18;;4988:62;5082:2;5067:18;;4735:356::o;5096:127::-;5157:10;5152:3;5148:20;5145:1;5138:31;5188:4;5185:1;5178:15;5212:4;5209:1;5202:15;5228:422;5317:1;5360:5;5317:1;5374:270;5395:7;5385:8;5382:21;5374:270;;;5454:4;5450:1;5446:6;5442:17;5436:4;5433:27;5430:53;;;5463:18;;:::i;:::-;5513:7;5503:8;5499:22;5496:55;;;5533:16;;;;5496:55;5612:22;;;;5572:15;;;;5374:270;;;5378:3;5228:422;;;;;:::o;5655:806::-;5704:5;5734:8;5724:80;;-1:-1:-1;5775:1:1;5789:5;;5724:80;5823:4;5813:76;;-1:-1:-1;5860:1:1;5874:5;;5813:76;5905:4;5923:1;5918:59;;;;5991:1;5986:130;;;;5898:218;;5918:59;5948:1;5939:10;;5962:5;;;5986:130;6023:3;6013:8;6010:17;6007:43;;;6030:18;;:::i;:::-;-1:-1:-1;;6086:1:1;6072:16;;6101:5;;5898:218;;6200:2;6190:8;6187:16;6181:3;6175:4;6172:13;6168:36;6162:2;6152:8;6149:16;6144:2;6138:4;6135:12;6131:35;6128:77;6125:159;;;-1:-1:-1;6237:19:1;;;6269:5;;6125:159;6316:34;6341:8;6335:4;6316:34;:::i;:::-;6386:6;6382:1;6378:6;6374:19;6365:7;6362:32;6359:58;;;6397:18;;:::i;:::-;6435:20;;5655:806;-1:-1:-1;;;5655:806:1:o;6466:140::-;6524:5;6553:47;6594:4;6584:8;6580:19;6574:4;6553:47;:::i;6611:168::-;6684:9;;;6715;;6732:15;;;6726:22;;6712:37;6702:71;;6753:18;;:::i;6784:127::-;6845:10;6840:3;6836:20;6833:1;6826:31;6876:4;6873:1;6866:15;6900:4;6897:1;6890:15;6916:135;6955:3;6976:17;;;6973:43;;6996:18;;:::i;:::-;-1:-1:-1;7043:1:1;7032:13;;6916:135::o;7408:251::-;7478:6;7531:2;7519:9;7510:7;7506:23;7502:32;7499:52;;;7547:1;7544;7537:12;7499:52;7579:9;7573:16;7598:31;7623:5;7598:31;:::i;8585:306::-;8673:6;8681;8689;8742:2;8730:9;8721:7;8717:23;8713:32;8710:52;;;8758:1;8755;8748:12;8710:52;8787:9;8781:16;8771:26;;8837:2;8826:9;8822:18;8816:25;8806:35;;8881:2;8870:9;8866:18;8860:25;8850:35;;8585:306;;;;;:::o;9175:277::-;9242:6;9295:2;9283:9;9274:7;9270:23;9266:32;9263:52;;;9311:1;9308;9301:12;9263:52;9343:9;9337:16;9396:5;9389:13;9382:21;9375:5;9372:32;9362:60;;9418:1;9415;9408:12;11839:125;11904:9;;;11925:10;;;11922:36;;;11938:18;;:::i;12324:128::-;12391:9;;;12412:11;;;12409:37;;;12426:18;;:::i;12457:980::-;12719:4;12767:3;12756:9;12752:19;12798:6;12787:9;12780:25;12824:2;12862:6;12857:2;12846:9;12842:18;12835:34;12905:3;12900:2;12889:9;12885:18;12878:31;12929:6;12964;12958:13;12995:6;12987;12980:22;13033:3;13022:9;13018:19;13011:26;;13072:2;13064:6;13060:15;13046:29;;13093:1;13103:195;13117:6;13114:1;13111:13;13103:195;;;13182:13;;-1:-1:-1;;;;;13178:39:1;13166:52;;13273:15;;;;13238:12;;;;13214:1;13132:9;13103:195;;;-1:-1:-1;;;;;;;13354:32:1;;;;13349:2;13334:18;;13327:60;-1:-1:-1;;;13418:3:1;13403:19;13396:35;13315:3;12457:980;-1:-1:-1;;;12457:980:1:o;13442:217::-;13482:1;13508;13498:132;;13552:10;13547:3;13543:20;13540:1;13533:31;13587:4;13584:1;13577:15;13615:4;13612:1;13605:15;13498:132;-1:-1:-1;13644:9:1;;13442:217::o

Swarm Source

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