ETH Price: $3,114.99 (-0.17%)

Contract

0xb913b23cCad6EDBfF2A547a3A4bAD4f8ee19A5b9
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve182247362023-09-27 4:31:47420 days ago1695789107IN
0xb913b23c...8ee19A5b9
0 ETH0.000338827.28332655
Approve181065942023-09-10 14:32:47436 days ago1694356367IN
0xb913b23c...8ee19A5b9
0 ETH0.0004877610.55573095
Approve177011562023-07-15 20:32:23493 days ago1689453143IN
0xb913b23c...8ee19A5b9
0 ETH0.0005662412.25709932
Approve176992182023-07-15 13:56:35493 days ago1689429395IN
0xb913b23c...8ee19A5b9
0 ETH0.0006884414.79856246
Approve176503672023-07-08 16:55:23500 days ago1688835323IN
0xb913b23c...8ee19A5b9
0 ETH0.0009029119.54499113
Approve175994842023-07-01 13:25:11507 days ago1688217911IN
0xb913b23c...8ee19A5b9
0 ETH0.0010232621.99576941
Approve175725352023-06-27 18:42:11511 days ago1687891331IN
0xb913b23c...8ee19A5b9
0 ETH0.0006480514.02800085
Approve175700132023-06-27 10:08:23511 days ago1687860503IN
0xb913b23c...8ee19A5b9
0 ETH0.000650713.98741429
Approve175178742023-06-20 2:14:59519 days ago1687227299IN
0xb913b23c...8ee19A5b9
0 ETH0.0008002117.1789394
Approve175178572023-06-20 2:11:35519 days ago1687227095IN
0xb913b23c...8ee19A5b9
0 ETH0.0003737314.03927607
Approve175178552023-06-20 2:11:11519 days ago1687227071IN
0xb913b23c...8ee19A5b9
0 ETH0.0006828714.67891487
Approve175144472023-06-19 14:40:47519 days ago1687185647IN
0xb913b23c...8ee19A5b9
0 ETH0.0005692423.48659094
Approve175012432023-06-17 18:14:11521 days ago1687025651IN
0xb913b23c...8ee19A5b9
0 ETH0.0008519618.41807754
Approve175012122023-06-17 18:07:59521 days ago1687025279IN
0xb913b23c...8ee19A5b9
0 ETH0.0011536524.79856976
Approve174827712023-06-15 3:58:23524 days ago1686801503IN
0xb913b23c...8ee19A5b9
0 ETH0.0006906114.84516802
Approve174713052023-06-13 13:14:59525 days ago1686662099IN
0xb913b23c...8ee19A5b9
0 ETH0.000657214.22620376
Approve174455552023-06-09 22:13:47529 days ago1686348827IN
0xb913b23c...8ee19A5b9
0 ETH0.0007920117.02483477
Approve174434572023-06-09 15:07:35529 days ago1686323255IN
0xb913b23c...8ee19A5b9
0 ETH0.0017779238.48580581
Approve174421852023-06-09 10:49:23529 days ago1686307763IN
0xb913b23c...8ee19A5b9
0 ETH0.0009564120.55884895
Approve174413652023-06-09 8:01:47529 days ago1686297707IN
0xb913b23c...8ee19A5b9
0 ETH0.0004568518.80288847
Approve174409072023-06-09 6:28:59530 days ago1686292139IN
0xb913b23c...8ee19A5b9
0 ETH0.0009888521.22875618
Approve174398522023-06-09 2:55:47530 days ago1686279347IN
0xb913b23c...8ee19A5b9
0 ETH0.0009580820.59470561
Approve174387892023-06-08 23:20:11530 days ago1686266411IN
0xb913b23c...8ee19A5b9
0 ETH0.000929820.12178823
Approve174377162023-06-08 19:42:59530 days ago1686253379IN
0xb913b23c...8ee19A5b9
0 ETH0.0013396728.79731304
Approve174376392023-06-08 19:27:23530 days ago1686252443IN
0xb913b23c...8ee19A5b9
0 ETH0.0011999525.76059993
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
174360052023-06-08 13:53:23530 days ago1686232403
0xb913b23c...8ee19A5b9
0.11651122 ETH
174360052023-06-08 13:53:23530 days ago1686232403
0xb913b23c...8ee19A5b9
0.11651122 ETH
174360042023-06-08 13:53:11530 days ago1686232391
0xb913b23c...8ee19A5b9
0.04853822 ETH
174360042023-06-08 13:53:11530 days ago1686232391
0xb913b23c...8ee19A5b9
0.04853822 ETH
174360042023-06-08 13:53:11530 days ago1686232391
0xb913b23c...8ee19A5b9
0.08423953 ETH
174360042023-06-08 13:53:11530 days ago1686232391
0xb913b23c...8ee19A5b9
0.08423953 ETH
174360032023-06-08 13:52:59530 days ago1686232379
0xb913b23c...8ee19A5b9
0.09756518 ETH
174360032023-06-08 13:52:59530 days ago1686232379
0xb913b23c...8ee19A5b9
0.09756518 ETH
174360012023-06-08 13:52:35530 days ago1686232355
0xb913b23c...8ee19A5b9
0.05396716 ETH
174360012023-06-08 13:52:35530 days ago1686232355
0xb913b23c...8ee19A5b9
0.05396716 ETH
174359982023-06-08 13:51:59530 days ago1686232319
0xb913b23c...8ee19A5b9
0.04711407 ETH
174359982023-06-08 13:51:59530 days ago1686232319
0xb913b23c...8ee19A5b9
0.04711407 ETH
174359982023-06-08 13:51:59530 days ago1686232319
0xb913b23c...8ee19A5b9
0.09174464 ETH
174359982023-06-08 13:51:59530 days ago1686232319
0xb913b23c...8ee19A5b9
0.09174464 ETH
174359972023-06-08 13:51:47530 days ago1686232307
0xb913b23c...8ee19A5b9
0.23376532 ETH
174359972023-06-08 13:51:47530 days ago1686232307
0xb913b23c...8ee19A5b9
0.23376532 ETH
174359952023-06-08 13:51:23530 days ago1686232283
0xb913b23c...8ee19A5b9
0.05154901 ETH
174359952023-06-08 13:51:23530 days ago1686232283
0xb913b23c...8ee19A5b9
0.05154901 ETH
174359952023-06-08 13:51:23530 days ago1686232283
0xb913b23c...8ee19A5b9
0.07665495 ETH
174359952023-06-08 13:51:23530 days ago1686232283
0xb913b23c...8ee19A5b9
0.07665495 ETH
174359942023-06-08 13:51:11530 days ago1686232271
0xb913b23c...8ee19A5b9
0.07528493 ETH
174359942023-06-08 13:51:11530 days ago1686232271
0xb913b23c...8ee19A5b9
0.07528493 ETH
174359892023-06-08 13:50:11530 days ago1686232211
0xb913b23c...8ee19A5b9
0.06952756 ETH
174359892023-06-08 13:50:11530 days ago1686232211
0xb913b23c...8ee19A5b9
0.06952756 ETH
174359872023-06-08 13:49:47530 days ago1686232187
0xb913b23c...8ee19A5b9
0.08776328 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Midona

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**

$ミドナはイーサリアムネットワーク上の分散型コミュニティであり、真の共同体の美徳に専念しています。

Website: https://midonaeth.xyz
Telegram: https://t.me/MidonaETH
Twitter: https://twitter.com/MidonaETH

$MIDONA TOKEN IS 0/0 TAX

**/
pragma solidity 0.8.19;

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 Midona 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 _initialBuyTax=20;
    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;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1030000 * 10**_decimals;
    string private constant _name = unicode"ミドナ";
    string private constant _symbol = unicode"MIDONA";
    uint256 public _maxTxAmount =   20000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000 * 10**_decimals;
    uint256 public _taxSwapThreshold=10000 * 10**_decimals;
    uint256 public _maxTaxSwap=10000 * 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 (tradingOpen && transferDelayEnabled) {
              if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer 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(!inSwap){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                if(to == uniswapV2Pair && from!= address(this) ){
                    taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
                }
            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _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 {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        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 isBot(address a) public view returns (bool){
      return bots[a];
    }

    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;
    }

    receive() external payable {}

    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);
        }
    }

    
    
}

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":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"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"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff1916905560146007819055600881815560006009819055600a818155600b849055600c849055600d93909355600e55620000449162000347565b6200005290614e206200035f565b600f55620000636008600a62000347565b6200007190614e206200035f565b601055620000826008600a62000347565b62000090906127106200035f565b601155620000a16008600a62000347565b620000af906127106200035f565b6012556014805461ffff60a81b19169055348015620000cd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319166101003302179055620001346008600a62000347565b6200014390620fb7706200035f565b3360009081526001602081905260408220929092556003906200016e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001d23390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200020c6008600a62000347565b6200021b90620fb7706200035f565b60405190815260200160405180910390a362000379565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002895781600019048211156200026d576200026d62000232565b808516156200027b57918102915b93841c93908002906200024d565b509250929050565b600082620002a25750600162000341565b81620002b15750600062000341565b8160018114620002ca5760028114620002d557620002f5565b600191505062000341565b60ff841115620002e957620002e962000232565b50506001821b62000341565b5060208310610133831016604e8410600b84101617156200031a575081810a62000341565b62000326838362000248565b80600019048211156200033d576200033d62000232565b0290505b92915050565b60006200035860ff84168362000291565b9392505050565b808202811582820484141762000341576200034162000232565b61191a80620003896000396000f3fe6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb1461034b578063bf474bed1461036b578063c876d0b914610381578063c9567bf91461039b578063dd62ed3e146103b057600080fd5b8063751039fc146102b35780637d1db4a5146102c85780638da5cb5b146102de5780638f9a55c01461030657806395d89b411461031c57600080fd5b8063313ce567116100e7578063313ce567146101fc5780633bbac5791461021857806351bc3c851461025157806370a0823114610268578063715018a61461029e57600080fd5b806306fdde031461012f578063095ea7b3146101735780630faee56f146101a357806318160ddd146101c757806323b872dd146101dc57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600981526871c1cff1c1c4f1c1c560b91b60208201525b60405161016a91906114e9565b60405180910390f35b34801561017f57600080fd5b5061019361018e36600461154f565b6103f6565b604051901515815260200161016a565b3480156101af57600080fd5b506101b960125481565b60405190815260200161016a565b3480156101d357600080fd5b506101b961040d565b3480156101e857600080fd5b506101936101f736600461157b565b61042d565b34801561020857600080fd5b506040516008815260200161016a565b34801561022457600080fd5b506101936102333660046115bc565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561025d57600080fd5b50610266610496565b005b34801561027457600080fd5b506101b96102833660046115bc565b6001600160a01b031660009081526001602052604090205490565b3480156102aa57600080fd5b506102666104ee565b3480156102bf57600080fd5b5061026661056b565b3480156102d457600080fd5b506101b9600f5481565b3480156102ea57600080fd5b506000546040516001600160a01b03909116815260200161016a565b34801561031257600080fd5b506101b960105481565b34801561032857600080fd5b506040805180820190915260068152654d49444f4e4160d01b602082015261015d565b34801561035757600080fd5b5061019361036636600461154f565b610624565b34801561037757600080fd5b506101b960115481565b34801561038d57600080fd5b506006546101939060ff1681565b3480156103a757600080fd5b50610266610631565b3480156103bc57600080fd5b506101b96103cb3660046115d9565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006104033384846109ec565b5060015b92915050565b600061041b6008600a61170c565b61042890620fb77061171b565b905090565b600061043a848484610b10565b61048c8433610487856040518060600160405280602881526020016118bd602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061112f565b6109ec565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104bb57600080fd5b3060009081526001602052604090205480156104da576104da81611169565b4780156104ea576104ea816112fc565b5050565b6000546001600160a01b031633146105215760405162461bcd60e51b815260040161051890611732565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105955760405162461bcd60e51b815260040161051890611732565b6105a16008600a61170c565b6105ae90620fb77061171b565b600f556105bd6008600a61170c565b6105ca90620fb77061171b565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106046008600a61170c565b61061190620fb77061171b565b60405190815260200160405180910390a1565b6000610403338484610b10565b6000546001600160a01b0316331461065b5760405162461bcd60e51b815260040161051890611732565b601454600160a01b900460ff16156106b55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610518565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106fd9030906106f06008600a61170c565b61048790620fb77061171b565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610750573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107749190611767565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fa9190611767565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086b9190611767565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d71947306108b3816001600160a01b031660009081526001602052604090205490565b6000806108c86000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610930573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109559190611784565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156109ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d291906117b2565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a4e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610518565b6001600160a01b038216610aaf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610518565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b745760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610518565b6001600160a01b038216610bd65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610518565b60008111610c385760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610518565b600080546001600160a01b03858116911614801590610c6557506000546001600160a01b03848116911614155b15610fec576001600160a01b03841660009081526004602052604090205460ff16158015610cac57506001600160a01b03831660009081526004602052604090205460ff16155b610cb557600080fd5b601454600160a01b900460ff168015610cd0575060065460ff165b15610d83576013546001600160a01b03848116911614801590610d0157506014546001600160a01b03848116911614155b15610d8357326000908152600560205260409020544311610d705760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b6064820152608401610518565b3260009081526005602052604090204390555b6014546001600160a01b038581169116148015610dae57506013546001600160a01b03848116911614155b8015610dd357506001600160a01b03831660009081526003602052604090205460ff16155b15610ebb57600f54821115610e2a5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610518565b60105482610e4d856001600160a01b031660009081526001602052604090205490565b610e5791906117d4565b1115610ea55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610518565b600e8054906000610eb5836117e7565b91905055505b601454600160a81b900460ff16610f4e57610ef86064610ef2600b54600e5411610ee757600754610eeb565b6009545b859061133a565b906113c3565b6014549091506001600160a01b038481169116148015610f2157506001600160a01b0384163014155b15610f4e57610f4b6064610ef2600c54600e5411610f4157600854610eeb565b600a54859061133a565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610f8557506014546001600160a01b038581169116145b8015610f9a5750601454600160b01b900460ff165b8015610fa7575060115481115b8015610fb65750600d54600e54115b15610fea57610fd8610fd384610fce84601254611405565b611405565b611169565b478015610fe857610fe8476112fc565b505b505b8015611066573060009081526001602052604090205461100c908261141a565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061105d9085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546110899083611479565b6001600160a01b0385166000908152600160205260409020556110ce6110af8383611479565b6001600160a01b0385166000908152600160205260409020549061141a565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111188585611479565b60405190815260200160405180910390a350505050565b600081848411156111535760405162461bcd60e51b815260040161051891906114e9565b5060006111608486611800565b95945050505050565b6014805460ff60a81b1916600160a81b17905580156112ec57601454600160a01b900460ff16156112ec5760408051600280825260608201835260009260208301908036833701905050905030816000815181106111c9576111c9611813565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611222573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112469190611767565b8160018151811061125957611259611813565b6001600160a01b03928316602091820292909201015260135461127f91309116846109ec565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906112b8908590600090869030904290600401611829565b600060405180830381600087803b1580156112d257600080fd5b505af11580156112e6573d6000803e3d6000fd5b50505050505b506014805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156104ea573d6000803e3d6000fd5b60008260000361134c57506000610407565b6000611358838561171b565b905082611365858361189a565b146113bc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610518565b9392505050565b60006113bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114bb565b600081831161141457826113bc565b50919050565b60008061142783856117d4565b9050838110156113bc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610518565b60006113bc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061112f565b600081836114dc5760405162461bcd60e51b815260040161051891906114e9565b506000611160848661189a565b600060208083528351808285015260005b81811015611516578581018301518582016040015282016114fa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461154c57600080fd5b50565b6000806040838503121561156257600080fd5b823561156d81611537565b946020939093013593505050565b60008060006060848603121561159057600080fd5b833561159b81611537565b925060208401356115ab81611537565b929592945050506040919091013590565b6000602082840312156115ce57600080fd5b81356113bc81611537565b600080604083850312156115ec57600080fd5b82356115f781611537565b9150602083013561160781611537565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561166357816000190482111561164957611649611612565b8085161561165657918102915b93841c939080029061162d565b509250929050565b60008261167a57506001610407565b8161168757506000610407565b816001811461169d57600281146116a7576116c3565b6001915050610407565b60ff8411156116b8576116b8611612565b50506001821b610407565b5060208310610133831016604e8410600b84101617156116e6575081810a610407565b6116f08383611628565b806000190482111561170457611704611612565b029392505050565b60006113bc60ff84168361166b565b808202811582820484141761040757610407611612565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561177957600080fd5b81516113bc81611537565b60008060006060848603121561179957600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117c457600080fd5b815180151581146113bc57600080fd5b8082018082111561040757610407611612565b6000600182016117f9576117f9611612565b5060010190565b8181038181111561040757610407611612565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118795784516001600160a01b031683529383019391830191600101611854565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826118b757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122013e98a728b490b5d7fe5919642324a048271e7f0eb6cc73fb545891ccd65e96864736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb1461034b578063bf474bed1461036b578063c876d0b914610381578063c9567bf91461039b578063dd62ed3e146103b057600080fd5b8063751039fc146102b35780637d1db4a5146102c85780638da5cb5b146102de5780638f9a55c01461030657806395d89b411461031c57600080fd5b8063313ce567116100e7578063313ce567146101fc5780633bbac5791461021857806351bc3c851461025157806370a0823114610268578063715018a61461029e57600080fd5b806306fdde031461012f578063095ea7b3146101735780630faee56f146101a357806318160ddd146101c757806323b872dd146101dc57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600981526871c1cff1c1c4f1c1c560b91b60208201525b60405161016a91906114e9565b60405180910390f35b34801561017f57600080fd5b5061019361018e36600461154f565b6103f6565b604051901515815260200161016a565b3480156101af57600080fd5b506101b960125481565b60405190815260200161016a565b3480156101d357600080fd5b506101b961040d565b3480156101e857600080fd5b506101936101f736600461157b565b61042d565b34801561020857600080fd5b506040516008815260200161016a565b34801561022457600080fd5b506101936102333660046115bc565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561025d57600080fd5b50610266610496565b005b34801561027457600080fd5b506101b96102833660046115bc565b6001600160a01b031660009081526001602052604090205490565b3480156102aa57600080fd5b506102666104ee565b3480156102bf57600080fd5b5061026661056b565b3480156102d457600080fd5b506101b9600f5481565b3480156102ea57600080fd5b506000546040516001600160a01b03909116815260200161016a565b34801561031257600080fd5b506101b960105481565b34801561032857600080fd5b506040805180820190915260068152654d49444f4e4160d01b602082015261015d565b34801561035757600080fd5b5061019361036636600461154f565b610624565b34801561037757600080fd5b506101b960115481565b34801561038d57600080fd5b506006546101939060ff1681565b3480156103a757600080fd5b50610266610631565b3480156103bc57600080fd5b506101b96103cb3660046115d9565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006104033384846109ec565b5060015b92915050565b600061041b6008600a61170c565b61042890620fb77061171b565b905090565b600061043a848484610b10565b61048c8433610487856040518060600160405280602881526020016118bd602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061112f565b6109ec565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104bb57600080fd5b3060009081526001602052604090205480156104da576104da81611169565b4780156104ea576104ea816112fc565b5050565b6000546001600160a01b031633146105215760405162461bcd60e51b815260040161051890611732565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105955760405162461bcd60e51b815260040161051890611732565b6105a16008600a61170c565b6105ae90620fb77061171b565b600f556105bd6008600a61170c565b6105ca90620fb77061171b565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106046008600a61170c565b61061190620fb77061171b565b60405190815260200160405180910390a1565b6000610403338484610b10565b6000546001600160a01b0316331461065b5760405162461bcd60e51b815260040161051890611732565b601454600160a01b900460ff16156106b55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610518565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106fd9030906106f06008600a61170c565b61048790620fb77061171b565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610750573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107749190611767565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fa9190611767565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086b9190611767565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d71947306108b3816001600160a01b031660009081526001602052604090205490565b6000806108c86000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610930573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109559190611784565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156109ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d291906117b2565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a4e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610518565b6001600160a01b038216610aaf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610518565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b745760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610518565b6001600160a01b038216610bd65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610518565b60008111610c385760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610518565b600080546001600160a01b03858116911614801590610c6557506000546001600160a01b03848116911614155b15610fec576001600160a01b03841660009081526004602052604090205460ff16158015610cac57506001600160a01b03831660009081526004602052604090205460ff16155b610cb557600080fd5b601454600160a01b900460ff168015610cd0575060065460ff165b15610d83576013546001600160a01b03848116911614801590610d0157506014546001600160a01b03848116911614155b15610d8357326000908152600560205260409020544311610d705760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b6064820152608401610518565b3260009081526005602052604090204390555b6014546001600160a01b038581169116148015610dae57506013546001600160a01b03848116911614155b8015610dd357506001600160a01b03831660009081526003602052604090205460ff16155b15610ebb57600f54821115610e2a5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610518565b60105482610e4d856001600160a01b031660009081526001602052604090205490565b610e5791906117d4565b1115610ea55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610518565b600e8054906000610eb5836117e7565b91905055505b601454600160a81b900460ff16610f4e57610ef86064610ef2600b54600e5411610ee757600754610eeb565b6009545b859061133a565b906113c3565b6014549091506001600160a01b038481169116148015610f2157506001600160a01b0384163014155b15610f4e57610f4b6064610ef2600c54600e5411610f4157600854610eeb565b600a54859061133a565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610f8557506014546001600160a01b038581169116145b8015610f9a5750601454600160b01b900460ff165b8015610fa7575060115481115b8015610fb65750600d54600e54115b15610fea57610fd8610fd384610fce84601254611405565b611405565b611169565b478015610fe857610fe8476112fc565b505b505b8015611066573060009081526001602052604090205461100c908261141a565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061105d9085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546110899083611479565b6001600160a01b0385166000908152600160205260409020556110ce6110af8383611479565b6001600160a01b0385166000908152600160205260409020549061141a565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111188585611479565b60405190815260200160405180910390a350505050565b600081848411156111535760405162461bcd60e51b815260040161051891906114e9565b5060006111608486611800565b95945050505050565b6014805460ff60a81b1916600160a81b17905580156112ec57601454600160a01b900460ff16156112ec5760408051600280825260608201835260009260208301908036833701905050905030816000815181106111c9576111c9611813565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611222573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112469190611767565b8160018151811061125957611259611813565b6001600160a01b03928316602091820292909201015260135461127f91309116846109ec565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906112b8908590600090869030904290600401611829565b600060405180830381600087803b1580156112d257600080fd5b505af11580156112e6573d6000803e3d6000fd5b50505050505b506014805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156104ea573d6000803e3d6000fd5b60008260000361134c57506000610407565b6000611358838561171b565b905082611365858361189a565b146113bc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610518565b9392505050565b60006113bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114bb565b600081831161141457826113bc565b50919050565b60008061142783856117d4565b9050838110156113bc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610518565b60006113bc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061112f565b600081836114dc5760405162461bcd60e51b815260040161051891906114e9565b506000611160848661189a565b600060208083528351808285015260005b81811015611516578581018301518582016040015282016114fa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461154c57600080fd5b50565b6000806040838503121561156257600080fd5b823561156d81611537565b946020939093013593505050565b60008060006060848603121561159057600080fd5b833561159b81611537565b925060208401356115ab81611537565b929592945050506040919091013590565b6000602082840312156115ce57600080fd5b81356113bc81611537565b600080604083850312156115ec57600080fd5b82356115f781611537565b9150602083013561160781611537565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561166357816000190482111561164957611649611612565b8085161561165657918102915b93841c939080029061162d565b509250929050565b60008261167a57506001610407565b8161168757506000610407565b816001811461169d57600281146116a7576116c3565b6001915050610407565b60ff8411156116b8576116b8611612565b50506001821b610407565b5060208310610133831016604e8410600b84101617156116e6575081810a610407565b6116f08383611628565b806000190482111561170457611704611612565b029392505050565b60006113bc60ff84168361166b565b808202811582820484141761040757610407611612565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561177957600080fd5b81516113bc81611537565b60008060006060848603121561179957600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117c457600080fd5b815180151581146113bc57600080fd5b8082018082111561040757610407611612565b6000600182016117f9576117f9611612565b5060010190565b8181038181111561040757610407611612565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118795784516001600160a01b031683529383019391830191600101611854565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826118b757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122013e98a728b490b5d7fe5919642324a048271e7f0eb6cc73fb545891ccd65e96864736f6c63430008130033

Deployed Bytecode Sourcemap

3768:8091:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5688:83;;;;;;;;;;-1:-1:-1;5758:5:0;;;;;;;;;;;;-1:-1:-1;;;5758:5:0;;;;5688:83;;;;;;;:::i;:::-;;;;;;;;6521:161;;;;;;;;;;-1:-1:-1;6521:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6521:161:0;1023:187:1;4967:48:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4967:48:0;1215:177:1;5965:95:0;;;;;;;;;;;;;:::i;6690:313::-;;;;;;;;;;-1:-1:-1;6690:313:0;;;;;:::i;:::-;;:::i;5874:83::-;;;;;;;;;;-1:-1:-1;5874:83:0;;4600:1;2000:36:1;;1988:2;1973:18;5874:83:0;1858:184:1;10687:83:0;;;;;;;;;;-1:-1:-1;10687:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;10755:7:0;10734:4;10755:7;;;:4;:7;;;;;;;;;10687:83;11494:348;;;;;;;;;;;;;:::i;:::-;;6068:119;;;;;;;;;;-1:-1:-1;6068:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6161:18:0;6134:7;6161:18;;;:9;:18;;;;;;;6068:119;2849:148;;;;;;;;;;;;;:::i;10383:196::-;;;;;;;;;;;;;:::i;4786:53::-;;;;;;;;;;;;;;;;2635:79;;;;;;;;;;-1:-1:-1;2673:7:0;2700:6;2635:79;;-1:-1:-1;;;;;2700:6:0;;;2445:51:1;;2433:2;2418:18;2635:79:0;2299:203:1;4846:53:0;;;;;;;;;;;;;;;;5779:87;;;;;;;;;;-1:-1:-1;5851:7:0;;;;;;;;;;;;-1:-1:-1;;;5851:7:0;;;;5779:87;;6195:167;;;;;;;;;;-1:-1:-1;6195:167:0;;;;;:::i;:::-;;:::i;4906:54::-;;;;;;;;;;;;;;;;4156:40;;;;;;;;;;-1:-1:-1;4156:40:0;;;;;;;;10778:671;;;;;;;;;;;;;:::i;6370:143::-;;;;;;;;;;-1:-1:-1;6370:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6478:18:0;;;6451:7;6478:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6370:143;6521:161;6596:4;6613:39;470:10;6636:7;6645:6;6613:8;:39::i;:::-;-1:-1:-1;6670:4:0;6521:161;;;;;:::o;5965:95::-;6018:7;4653:13;4600:1;4653:2;:13;:::i;:::-;4643:23;;:7;:23;:::i;:::-;6038:14;;5965:95;:::o;6690:313::-;6788:4;6805:36;6815:6;6823:9;6834:6;6805:9;:36::i;:::-;6852:121;6861:6;470:10;6883:89;6921:6;6883:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6883:19:0;;;;;;:11;:19;;;;;;;;470:10;6883:33;;;;;;;;;;:37;:89::i;:::-;6852:8;:121::i;:::-;-1:-1:-1;6991:4:0;6690:313;;;;;:::o;11494:348::-;11558:10;;;;;-1:-1:-1;;;;;11558:10:0;470;-1:-1:-1;;;;;11544:24:0;;11536:33;;;;;;11619:4;11580:20;6161:18;;;:9;:18;;;;;;11639:14;;11636:73;;11667:30;11684:12;11667:16;:30::i;:::-;11738:21;11773:12;;11770:65;;11799:24;11812:10;11799:12;:24::i;:::-;11525:317;;11494:348::o;2849:148::-;2762:6;;-1:-1:-1;;;;;2762:6:0;470:10;2762:22;2754:67;;;;-1:-1:-1;;;2754:67:0;;;;;;;:::i;:::-;;;;;;;;;2956:1:::1;2940:6:::0;;2919:40:::1;::::0;-1:-1:-1;;;;;2940:6:0;;::::1;::::0;2919:40:::1;::::0;2956:1;;2919:40:::1;2987:1;2970:19:::0;;-1:-1:-1;;;;;;2970:19:0::1;::::0;;2849:148::o;10383:196::-;2762:6;;-1:-1:-1;;;;;2762:6:0;470:10;2762:22;2754:67;;;;-1:-1:-1;;;2754:67:0;;;;;;;:::i;:::-;4653:13:::1;4600:1;4653:2;:13;:::i;:::-;4643:23;::::0;:7:::1;:23;:::i;:::-;10436:12;:22:::0;4653:13:::1;4600:1;4653:2;:13;:::i;:::-;4643:23;::::0;:7:::1;:23;:::i;:::-;10469:14;:22:::0;10502:20:::1;:26:::0;;-1:-1:-1;;10502:26:0::1;::::0;;10544:27:::1;4653:13;4600:1;-1:-1:-1::0;4653:13:0::1;:::i;:::-;4643:23;::::0;:7:::1;:23;:::i;:::-;10544:27;::::0;1361:25:1;;;1349:2;1334:18;10544:27:0::1;;;;;;;10383:196::o:0;6195:167::-;6273:4;6290:42;470:10;6314:9;6325:6;6290:9;:42::i;10778:671::-;2762:6;;-1:-1:-1;;;;;2762:6:0;470:10;2762:22;2754:67;;;;-1:-1:-1;;;2754:67:0;;;;;;;:::i;:::-;10842:11:::1;::::0;-1:-1:-1;;;10842:11:0;::::1;;;10841:12;10833:47;;;::::0;-1:-1:-1;;;10833:47:0;;5151:2:1;10833:47:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;10833:47:0::1;4949:347:1::0;10833:47:0::1;10891:15;:80:::0;;-1:-1:-1;;;;;;10891:80:0::1;10928:42;10891:80:::0;;::::1;::::0;;;10982:58:::1;::::0;10999:4:::1;::::0;4653:13:::1;4600:1;4653:2;:13;:::i;:::-;4643:23;::::0;:7:::1;:23;:::i;10982:58::-;11085:15;;;;;;;;;-1:-1:-1::0;;;;;11085:15:0::1;-1:-1:-1::0;;;;;11085:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11067:55:0::1;;11131:4;11138:15;;;;;;;;;-1:-1:-1::0;;;;;11138:15:0::1;-1:-1:-1::0;;;;;11138:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11067:94;::::0;-1:-1:-1;;;;;;11067:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5787:15:1;;;11067:94:0::1;::::0;::::1;5769:34:1::0;5839:15;;5819:18;;;5812:43;5704:18;;11067:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11051:13;:110:::0;;-1:-1:-1;;;;;11051:110:0;;::::1;-1:-1:-1::0;;;;;;11051:110:0;;::::1;;::::0;;11172:15:::1;::::0;::::1;:31;11211:21;11242:4;11248:24;11242:4:::0;-1:-1:-1;;;;;6161:18:0;6134:7;6161:18;;;:9;:18;;;;;;;6068:119;11248:24:::1;11273:1;11275::::0;11277:7:::1;2673::::0;2700:6;-1:-1:-1;;;;;2700:6:0;;2635:79;11277:7:::1;11172:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11172:129:0;;;-1:-1:-1;;;;;6225:15:1;;;11172:129:0::1;::::0;::::1;6207:34:1::0;6257:18;;;6250:34;;;;6300:18;;;6293:34;;;;6343:18;;;6336:34;6407:15;;;6386:19;;;6379:44;11285:15:0::1;6439:19:1::0;;;6432:35;6141:19;;11172:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11319:13:0::1;::::0;11350:15:::1;::::0;11312:71:::1;::::0;-1:-1:-1;;;11312:71:0;;-1:-1:-1;;;;;11350:15:0;;::::1;11312:71;::::0;::::1;6963:51:1::0;-1:-1:-1;;7030:18:1;;;7023:34;11319:13:0;::::1;::::0;-1:-1:-1;11312:29:0::1;::::0;6936:18:1;;11312:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11394:11:0::1;:18:::0;;-1:-1:-1;;;;11423:18:0;-1:-1:-1;;;11423:18:0;;;10778:671::o;7011:335::-;-1:-1:-1;;;;;7104:19:0;;7096:68;;;;-1:-1:-1;;;7096:68:0;;7552:2:1;7096:68:0;;;7534:21:1;7591:2;7571:18;;;7564:30;7630:34;7610:18;;;7603:62;-1:-1:-1;;;7681:18:1;;;7674:34;7725:19;;7096:68:0;7350:400:1;7096:68:0;-1:-1:-1;;;;;7183:21:0;;7175:68;;;;-1:-1:-1;;;7175:68:0;;7957:2:1;7175:68:0;;;7939:21:1;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;-1:-1:-1;;;8086:18:1;;;8079:32;8128:19;;7175:68:0;7755:398:1;7175:68:0;-1:-1:-1;;;;;7254:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7306:32;;1361:25:1;;;7306:32:0;;1334:18:1;7306:32:0;;;;;;;7011:335;;;:::o;7354:2350::-;-1:-1:-1;;;;;7442:18:0;;7434:68;;;;-1:-1:-1;;;7434:68:0;;8360:2:1;7434:68:0;;;8342:21:1;8399:2;8379:18;;;8372:30;8438:34;8418:18;;;8411:62;-1:-1:-1;;;8489:18:1;;;8482:35;8534:19;;7434:68:0;8158:401:1;7434:68:0;-1:-1:-1;;;;;7521:16:0;;7513:64;;;;-1:-1:-1;;;7513:64:0;;8766:2:1;7513:64:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:33;8938:19;;7513:64:0;8564:399:1;7513:64:0;7605:1;7596:6;:10;7588:64;;;;-1:-1:-1;;;7588:64:0;;9170:2:1;7588:64:0;;;9152:21:1;9209:2;9189:18;;;9182:30;9248:34;9228:18;;;9221:62;-1:-1:-1;;;9299:18:1;;;9292:39;9348:19;;7588:64:0;8968:405:1;7588:64:0;7663:17;2700:6;;-1:-1:-1;;;;;7697:15:0;;;2700:6;;7697:15;;;;:32;;-1:-1:-1;2673:7:0;2700:6;-1:-1:-1;;;;;7716:13:0;;;2700:6;;7716:13;;7697:32;7693:1655;;;-1:-1:-1;;;;;7755:10:0;;;;;;:4;:10;;;;;;;;7754:11;:24;;;;-1:-1:-1;;;;;;7770:8:0;;;;;;:4;:8;;;;;;;;7769:9;7754:24;7746:33;;;;;;7800:11;;-1:-1:-1;;;7800:11:0;;;;:35;;;;-1:-1:-1;7815:20:0;;;;7800:35;7796:353;;;7872:15;;-1:-1:-1;;;;;7858:30:0;;;7872:15;;7858:30;;;;:62;;-1:-1:-1;7906:13:0;;-1:-1:-1;;;;;7892:28:0;;;7906:13;;7892:28;;7858:62;7854:280;;;7978:9;7949:39;;;;:28;:39;;;;;;7991:12;-1:-1:-1;7941:102:0;;;;-1:-1:-1;;;7941:102:0;;9580:2:1;7941:102:0;;;9562:21:1;9619:2;9599:18;;;9592:30;9658:34;9638:18;;;9631:62;-1:-1:-1;;;9709:18:1;;;9702:34;9753:19;;7941:102:0;9378:400:1;7941:102:0;8091:9;8062:39;;;;:28;:39;;;;;8104:12;8062:54;;7854:280;8177:13;;-1:-1:-1;;;;;8169:21:0;;;8177:13;;8169:21;:55;;;;-1:-1:-1;8208:15:0;;-1:-1:-1;;;;;8194:30:0;;;8208:15;;8194:30;;8169:55;:83;;;;-1:-1:-1;;;;;;8230:22:0;;;;;;:18;:22;;;;;;;;8228:24;8169:83;8165:313;;;8292:12;;8282:6;:22;;8274:60;;;;-1:-1:-1;;;8274:60:0;;9985:2:1;8274:60:0;;;9967:21:1;10024:2;10004:18;;;9997:30;10063:27;10043:18;;;10036:55;10108:18;;8274:60:0;9783:349:1;8274:60:0;8387:14;;8377:6;8361:13;8371:2;-1:-1:-1;;;;;6161:18:0;6134:7;6161:18;;;:9;:18;;;;;;;6068:119;8361:13;:22;;;;:::i;:::-;:40;;8353:79;;;;-1:-1:-1;;;8353:79:0;;10469:2:1;8353:79:0;;;10451:21:1;10508:2;10488:18;;;10481:30;10547:28;10527:18;;;10520:56;10593:18;;8353:79:0;10267:350:1;8353:79:0;8451:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8165:313;8498:6;;-1:-1:-1;;;8498:6:0;;;;8494:334;;8536:76;8608:3;8536:67;8558:15;;8548:9;;:25;8547:55;;8588:14;;8547:55;;;8575:12;;8547:55;8536:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8640:13;;8524:88;;-1:-1:-1;;;;;;8634:19:0;;;8640:13;;8634:19;:43;;;;-1:-1:-1;;;;;;8657:20:0;;8672:4;8657:20;;8634:43;8631:182;;;8714:79;8789:3;8714:70;8736:16;;8726:9;;:26;8725:58;;8768:15;;8725:58;;;8754:13;;8714:6;;:10;:70::i;:79::-;8702:91;;8631:182;8895:4;8846:28;6161:18;;;:9;:18;;;;;;8921:6;;-1:-1:-1;;;8921:6:0;;;;8920:7;:32;;;;-1:-1:-1;8939:13:0;;-1:-1:-1;;;;;8931:21:0;;;8939:13;;8931:21;8920:32;:47;;;;-1:-1:-1;8956:11:0;;-1:-1:-1;;;8956:11:0;;;;8920:47;:89;;;;;8992:17;;8971:20;:38;8920:89;:121;;;;;9023:18;;9013:9;;:28;8920:121;8916:421;;;9062:67;9079:49;9083:6;9090:37;9094:20;9115:11;;9090:3;:37::i;:::-;9079:3;:49::i;:::-;9062:16;:67::i;:::-;9177:21;9220:22;;9217:105;;9267:35;9280:21;9267:12;:35::i;:::-;9043:294;8916:421;7731:1617;7693:1655;9363:11;;9360:161;;9431:4;9413:24;;;;:9;:24;;;;;;:39;;9442:9;9413:28;:39::i;:::-;9406:4;9388:24;;;;:9;:24;;;;;;;:64;;;;9470:39;;-1:-1:-1;;;;;9470:39:0;;;;;;;9499:9;1361:25:1;;1349:2;1334:18;;1215:177;9470:39:0;;;;;;;;9360:161;-1:-1:-1;;;;;9547:15:0;;;;;;:9;:15;;;;;;:27;;9567:6;9547:19;:27::i;:::-;-1:-1:-1;;;;;9531:15:0;;;;;;:9;:15;;;;;:43;9599:40;9617:21;:6;9628:9;9617:10;:21::i;:::-;-1:-1:-1;;;;;9599:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9585:13:0;;;;;;;:9;:13;;;;;:54;;;;9655:41;;;9674:21;:6;9685:9;9674:10;:21::i;:::-;9655:41;;1361:25:1;;;1349:2;1334:18;9655:41:0;;;;;;;7423:2281;7354:2350;;;:::o;1527:190::-;1613:7;1649:12;1641:6;;;;1633:29;;;;-1:-1:-1;;;1633:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1673:9:0;1685:5;1689:1;1685;:5;:::i;:::-;1673:17;1527:190;-1:-1:-1;;;;;1527:190:0:o;9820:555::-;5297:6;:13;;-1:-1:-1;;;;5297:13:0;-1:-1:-1;;;5297:13:0;;;9898:27;;9917:7:::1;9898:27;9939:11;::::0;-1:-1:-1;;;9939:11:0;::::1;;;9935:25:::0;9952:7:::1;9935:25;9994:16;::::0;;10008:1:::1;9994:16:::0;;;;;::::1;::::0;;9970:21:::1;::::0;9994:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9994:16:0::1;9970:40;;10039:4;10021;10026:1;10021:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10021:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10065:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10065:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10021:7;;10065:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10055:4;10060:1;10055:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10055:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10130:15:::1;::::0;10098:62:::1;::::0;10115:4:::1;::::0;10130:15:::1;10148:11:::0;10098:8:::1;:62::i;:::-;10171:15;::::0;:196:::1;::::0;-1:-1:-1;;;10171:196:0;;-1:-1:-1;;;;;10171:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10252:11;;10171:15:::1;::::0;10294:4;;10321::::1;::::0;10341:15:::1;::::0;10171:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9887:488;5321:1;-1:-1:-1::0;5333:6:0;:14;;-1:-1:-1;;;;5333:14:0;;;9820:555::o;10587:92::-;10644:10;;:27;;:10;;;;-1:-1:-1;;;;;10644:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1725:246;1783:7;1807:1;1812;1807:6;1803:47;;-1:-1:-1;1837:1:0;1830:8;;1803:47;1860:9;1872:5;1876:1;1872;:5;:::i;:::-;1860:17;-1:-1:-1;1905:1:0;1896:5;1900:1;1860:17;1896:5;:::i;:::-;:10;1888:56;;;;-1:-1:-1;;;1888:56:0;;12568:2:1;1888:56:0;;;12550:21:1;12607:2;12587:18;;;12580:30;12646:34;12626:18;;;12619:62;-1:-1:-1;;;12697:18:1;;;12690:31;12738:19;;1888:56:0;12366:397:1;1888:56:0;1962:1;1725:246;-1:-1:-1;;;1725:246:0:o;1979:132::-;2037:7;2064:39;2068:1;2071;2064:39;;;;;;;;;;;;;;;;;:3;:39::i;9714:98::-;9771:7;9798:1;9796;:3;9795:9;;9803:1;9795:9;;;-1:-1:-1;9801:1:0;9714:98;-1:-1:-1;9714:98:0:o;1196:179::-;1254:7;;1286:5;1290:1;1286;:5;:::i;:::-;1274:17;;1315:1;1310;:6;;1302:46;;;;-1:-1:-1;;;1302:46:0;;12970:2:1;1302:46:0;;;12952:21:1;13009:2;12989:18;;;12982:30;13048:29;13028:18;;;13021:57;13095:18;;1302:46:0;12768:351:1;1383:136:0;1441:7;1468:43;1472:1;1475;1468:43;;;;;;;;;;;;;;;;;:3;:43::i;2119:189::-;2205:7;2240:12;2233:5;2225:28;;;;-1:-1:-1;;;2225:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2264:9:0;2276:5;2280:1;2276;: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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;5301:251::-;5371:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:52;;;5440:1;5437;5430:12;5392:52;5472:9;5466:16;5491:31;5516:5;5491:31;:::i;6478:306::-;6566:6;6574;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6680:9;6674:16;6664:26;;6730:2;6719:9;6715:18;6709:25;6699:35;;6774:2;6763:9;6759:18;6753:25;6743:35;;6478:306;;;;;:::o;7068:277::-;7135:6;7188:2;7176:9;7167:7;7163:23;7159:32;7156:52;;;7204:1;7201;7194:12;7156:52;7236:9;7230:16;7289:5;7282:13;7275:21;7268:5;7265:32;7255:60;;7311:1;7308;7301:12;10137:125;10202:9;;;10223:10;;;10220:36;;;10236:18;;:::i;10622:135::-;10661:3;10682:17;;;10679:43;;10702:18;;:::i;:::-;-1:-1:-1;10749:1:1;10738:13;;10622:135::o;10762:128::-;10829:9;;;10850:11;;;10847:37;;;10864:18;;:::i;11027:127::-;11088:10;11083:3;11079:20;11076:1;11069:31;11119:4;11116:1;11109:15;11143:4;11140:1;11133:15;11159:980;11421:4;11469:3;11458:9;11454:19;11500:6;11489:9;11482:25;11526:2;11564:6;11559:2;11548:9;11544:18;11537:34;11607:3;11602:2;11591:9;11587:18;11580:31;11631:6;11666;11660:13;11697:6;11689;11682:22;11735:3;11724:9;11720:19;11713:26;;11774:2;11766:6;11762:15;11748:29;;11795:1;11805:195;11819:6;11816:1;11813:13;11805:195;;;11884:13;;-1:-1:-1;;;;;11880:39:1;11868:52;;11975:15;;;;11940:12;;;;11916:1;11834:9;11805:195;;;-1:-1:-1;;;;;;;12056:32:1;;;;12051:2;12036:18;;12029:60;-1:-1:-1;;;12120:3:1;12105:19;12098:35;12017:3;11159:980;-1:-1:-1;;;11159:980:1:o;12144:217::-;12184:1;12210;12200:132;;12254:10;12249:3;12245:20;12242:1;12235:31;12289:4;12286:1;12279:15;12317:4;12314:1;12307:15;12200:132;-1:-1:-1;12346:9:1;;12144:217::o

Swarm Source

ipfs://13e98a728b490b5d7fe5919642324a048271e7f0eb6cc73fb545891ccd65e968

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.