ETH Price: $1,818.72 (+0.06%)
Gas: 0.41 Gwei

Contract

0x8E8a38E1E25119EE4c07eb066f87Fc853625dfE9
 

Overview

ETH Balance

0.05764959 ETH

Eth Value

$104.85 (@ $1,818.72/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve218069522025-02-09 5:44:5949 days ago1739079899IN
0x8E8a38E1...53625dfE9
0 ETH0.000069861.5
Approve218062922025-02-09 3:32:1149 days ago1739071931IN
0x8E8a38E1...53625dfE9
0 ETH0.000093152
Approve201074972024-06-16 23:01:23286 days ago1718578883IN
0x8E8a38E1...53625dfE9
0 ETH0.000179423.8523166
Transfer198225782024-05-08 3:11:23326 days ago1715137883IN
0x8E8a38E1...53625dfE9
0 ETH0.000457976.46671925
Approve197601302024-04-29 9:39:23335 days ago1714383563IN
0x8E8a38E1...53625dfE9
0 ETH0.000442299.55746236
Approve188484882023-12-23 12:22:59463 days ago1703334179IN
0x8E8a38E1...53625dfE9
0 ETH0.0009461820.34068758
Approve187734742023-12-12 23:47:11473 days ago1702424831IN
0x8E8a38E1...53625dfE9
0 ETH0.003701280
Approve186743072023-11-29 2:31:35487 days ago1701225095IN
0x8E8a38E1...53625dfE9
0 ETH0.001616934.75936394
Approve186732652023-11-28 23:01:23487 days ago1701212483IN
0x8E8a38E1...53625dfE9
0 ETH0.0017678438.00418089
Approve186712202023-11-28 16:10:23488 days ago1701187823IN
0x8E8a38E1...53625dfE9
0 ETH0.0019061640.97785178
Approve186695102023-11-28 10:24:47488 days ago1701167087IN
0x8E8a38E1...53625dfE9
0 ETH0.0012767927.62613818
Transfer186690242023-11-28 8:46:35488 days ago1701161195IN
0x8E8a38E1...53625dfE9
0.05764959 ETH0.0005974928.37779131
Approve186689922023-11-28 8:40:11488 days ago1701160811IN
0x8E8a38E1...53625dfE9
0 ETH0.0013536429.2508313
Approve186689142023-11-28 8:24:23488 days ago1701159863IN
0x8E8a38E1...53625dfE9
0 ETH0.0011697944.36934578
Approve186689122023-11-28 8:23:59488 days ago1701159839IN
0x8E8a38E1...53625dfE9
0 ETH0.0021255345.94266794
Approve186688962023-11-28 8:20:47488 days ago1701159647IN
0x8E8a38E1...53625dfE9
0 ETH0.0014164430.45
Approve186688382023-11-28 8:09:11488 days ago1701158951IN
0x8E8a38E1...53625dfE9
0 ETH0.0014182330.44932461
Approve186688142023-11-28 8:04:23488 days ago1701158663IN
0x8E8a38E1...53625dfE9
0 ETH0.0013698629.41073099
Approve186688132023-11-28 8:04:11488 days ago1701158651IN
0x8E8a38E1...53625dfE9
0 ETH0.0014038230.14768076
Transfer186688092023-11-28 8:03:23488 days ago1701158603IN
0x8E8a38E1...53625dfE9
0 ETH0.0016658128.45351276
Approve186688052023-11-28 8:02:35488 days ago1701158555IN
0x8E8a38E1...53625dfE9
0 ETH0.0013720529.49581146
Approve186687942023-11-28 8:00:23488 days ago1701158423IN
0x8E8a38E1...53625dfE9
0 ETH0.0013983830.06183002
Approve186687882023-11-28 7:59:11488 days ago1701158351IN
0x8E8a38E1...53625dfE9
0 ETH0.0014661631.4782883
Approve186687862023-11-28 7:58:47488 days ago1701158327IN
0x8E8a38E1...53625dfE9
0 ETH0.0014456331.03751879
Transfer186687832023-11-28 7:58:11488 days ago1701158291IN
0x8E8a38E1...53625dfE9
0 ETH0.0019105128.76551985
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer186687952023-11-28 8:00:35488 days ago1701158435
0x8E8a38E1...53625dfE9
0.00843432 ETH
Transfer186687952023-11-28 8:00:35488 days ago1701158435
0x8E8a38E1...53625dfE9
0.00843432 ETH
Transfer186687952023-11-28 8:00:35488 days ago1701158435
0x8E8a38E1...53625dfE9
0.01664922 ETH
Transfer186687952023-11-28 8:00:35488 days ago1701158435
0x8E8a38E1...53625dfE9
0.01664922 ETH
Transfer186687932023-11-28 8:00:11488 days ago1701158411
0x8E8a38E1...53625dfE9
0.01327286 ETH
Transfer186687932023-11-28 8:00:11488 days ago1701158411
0x8E8a38E1...53625dfE9
0.01327286 ETH
Transfer186687932023-11-28 8:00:11488 days ago1701158411
0x8E8a38E1...53625dfE9
0.0308676 ETH
Transfer186687932023-11-28 8:00:11488 days ago1701158411
0x8E8a38E1...53625dfE9
0.0308676 ETH
Transfer186687892023-11-28 7:59:23488 days ago1701158363
0x8E8a38E1...53625dfE9
0.01993833 ETH
Transfer186687892023-11-28 7:59:23488 days ago1701158363
0x8E8a38E1...53625dfE9
0.01993833 ETH
Transfer186687882023-11-28 7:59:11488 days ago1701158351
0x8E8a38E1...53625dfE9
0.039391 ETH
Transfer186687882023-11-28 7:59:11488 days ago1701158351
0x8E8a38E1...53625dfE9
0.039391 ETH
Transfer186687762023-11-28 7:56:47488 days ago1701158207
0x8E8a38E1...53625dfE9
0.01165461 ETH
Transfer186687762023-11-28 7:56:47488 days ago1701158207
0x8E8a38E1...53625dfE9
0.01165461 ETH
Transfer186687752023-11-28 7:56:35488 days ago1701158195
0x8E8a38E1...53625dfE9
0.03455007 ETH
Transfer186687752023-11-28 7:56:35488 days ago1701158195
0x8E8a38E1...53625dfE9
0.03455007 ETH
Transfer186687752023-11-28 7:56:35488 days ago1701158195
0x8E8a38E1...53625dfE9
0.02241594 ETH
Transfer186687752023-11-28 7:56:35488 days ago1701158195
0x8E8a38E1...53625dfE9
0.02241594 ETH
Transfer186687352023-11-28 7:48:35488 days ago1701157715
0x8E8a38E1...53625dfE9
0.0518354 ETH
Transfer186687352023-11-28 7:48:35488 days ago1701157715
0x8E8a38E1...53625dfE9
0.0518354 ETH
Transfer186687352023-11-28 7:48:35488 days ago1701157715
0x8E8a38E1...53625dfE9
0.03533487 ETH
Transfer186687352023-11-28 7:48:35488 days ago1701157715
0x8E8a38E1...53625dfE9
0.03533487 ETH
Transfer186687342023-11-28 7:48:23488 days ago1701157703
0x8E8a38E1...53625dfE9
0.0946697 ETH
Transfer186687342023-11-28 7:48:23488 days ago1701157703
0x8E8a38E1...53625dfE9
0.0946697 ETH
Transfer186687182023-11-28 7:45:11488 days ago1701157511
0x8E8a38E1...53625dfE9
0.02104382 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
grokacc

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv2 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-28
*/

//https://t.me/GrokACCERC

//https://www.grokacc-erc.com/

//https://twitter.com/GrokACCERC

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

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=22;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=22;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"grok/acc";
    string private constant _symbol = unicode"GROK/ACC";
    uint256 public _maxTxAmount = 6000000 * 10**_decimals;
    uint256 public _maxWalletSize = 6000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1500000 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000 * 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]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

            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 isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

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

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

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

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

    function 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;
        firstBlock = block.number;
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

API
[{"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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"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"}]

6080604052601460075560166008555f6009555f600a556016600b556019600c556014600d555f600e556009600a6200003991906200032c565b6200004890625b8d8062000343565b600f55620000596009600a6200032c565b6200006890625b8d8062000343565b601055620000796009600a6200032c565b62000088906216e36062000343565b601155620000996009600a6200032c565b620000a8906298968062000343565b6012556014805461ffff60a81b19169055348015620000c5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191633179055620001266009600a6200032c565b6200013690633b9aca0062000343565b335f9081526001602081905260408220929092556003906200015f5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001bd3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001f66009600a6200032c565b6200020690633b9aca0062000343565b60405190815260200160405180910390a36200035d565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200027157815f19048211156200025557620002556200021d565b808516156200026357918102915b93841c939080029062000236565b509250929050565b5f82620002895750600162000326565b816200029757505f62000326565b8160018114620002b05760028114620002bb57620002db565b600191505062000326565b60ff841115620002cf57620002cf6200021d565b50506001821b62000326565b5060208310610133831016604e8410600b841016171562000300575081810a62000326565b6200030c838362000231565b805f19048211156200032257620003226200021d565b0290505b92915050565b5f6200033c60ff84168362000279565b9392505050565b80820281158282048414176200032657620003266200021d565b611a28806200036b5f395ff3fe60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb1461033f578063bf474bed1461035e578063c9567bf914610373578063d34628cc14610387578063dd62ed3e146103a6575f80fd5b8063751039fc146102ab5780637d1db4a5146102bf5780638da5cb5b146102d45780638f9a55c0146102fa57806395d89b411461030f575f80fd5b8063313ce567116100e3578063313ce567146101f057806331c2d8471461020b5780633bbac5791461022c57806370a0823114610263578063715018a614610297575f80fd5b806306fdde0314610129578063095ea7b31461016b5780630faee56f1461019a57806318160ddd146101bd57806323b872dd146101d1575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600881526767726f6b2f61636360c01b60208201525b6040516101629190611537565b60405180910390f35b348015610176575f80fd5b5061018a6101853660046115a9565b6103ea565b6040519015158152602001610162565b3480156101a5575f80fd5b506101af60125481565b604051908152602001610162565b3480156101c8575f80fd5b506101af610400565b3480156101dc575f80fd5b5061018a6101eb3660046115d3565b610420565b3480156101fb575f80fd5b5060405160098152602001610162565b348015610216575f80fd5b5061022a610225366004611625565b610487565b005b348015610237575f80fd5b5061018a6102463660046116e5565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561026e575f80fd5b506101af61027d3660046116e5565b6001600160a01b03165f9081526001602052604090205490565b3480156102a2575f80fd5b5061022a610521565b3480156102b6575f80fd5b5061022a610592565b3480156102ca575f80fd5b506101af600f5481565b3480156102df575f80fd5b505f546040516001600160a01b039091168152602001610162565b348015610305575f80fd5b506101af60105481565b34801561031a575f80fd5b5060408051808201909152600881526747524f4b2f41434360c01b6020820152610155565b34801561034a575f80fd5b5061018a6103593660046115a9565b610643565b348015610369575f80fd5b506101af60115481565b34801561037e575f80fd5b5061022a61064f565b348015610392575f80fd5b5061022a6103a1366004611625565b6109fc565b3480156103b1575f80fd5b506101af6103c0366004611700565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103f6338484610a8a565b5060015b92915050565b5f61040d6009600a61182b565b61041b90633b9aca00611839565b905090565b5f61042c848484610bad565b61047d8433610478856040518060600160405280602881526020016119cb602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111b3565b610a8a565b5060019392505050565b5f546001600160a01b031633146104b95760405162461bcd60e51b81526004016104b090611850565b60405180910390fd5b5f5b815181101561051d575f60045f8484815181106104da576104da611885565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061051581611899565b9150506104bb565b5050565b5f546001600160a01b0316331461054a5760405162461bcd60e51b81526004016104b090611850565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105bb5760405162461bcd60e51b81526004016104b090611850565b6105c76009600a61182b565b6105d590633b9aca00611839565b600f556105e46009600a61182b565b6105f290633b9aca00611839565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106226009600a61182b565b61063090633b9aca00611839565b60405190815260200160405180910390a1565b5f6103f6338484610bad565b5f546001600160a01b031633146106785760405162461bcd60e51b81526004016104b090611850565b601454600160a01b900460ff16156106d25760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b0565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561071b90309061070d6009600a61182b565b61047890633b9aca00611839565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561076b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f91906118b1565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ee573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081291906118b1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561085c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088091906118b1565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d71947306108c7816001600160a01b03165f9081526001602052604090205490565b5f806108da5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610940573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061096591906118cc565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109de91906118f7565b506014805462ff00ff60a01b19166201000160a01b17905543600655565b5f546001600160a01b03163314610a255760405162461bcd60e51b81526004016104b090611850565b5f5b815181101561051d57600160045f848481518110610a4757610a47611885565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610a8281611899565b915050610a27565b6001600160a01b038316610aec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b0565b6001600160a01b038216610b4d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b0565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c115760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b0565b6001600160a01b038216610c735760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b0565b5f8111610cd45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b0565b5f80546001600160a01b03858116911614801590610cff57505f546001600160a01b03848116911614155b15611076576001600160a01b0384165f9081526004602052604090205460ff16158015610d4457506001600160a01b0383165f9081526004602052604090205460ff16155b610d4c575f80fd5b610d786064610d72600b54600e5411610d6757600754610d6b565b6009545b85906111eb565b90611270565b6014549091506001600160a01b038581169116148015610da657506013546001600160a01b03848116911614155b8015610dca57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ed157600f54821115610e215760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104b0565b60105482610e43856001600160a01b03165f9081526001602052604090205490565b610e4d9190611916565b1115610e9b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b0565b436006546003610eab9190611916565b1115610ebc57823b15610ebc575f80fd5b600e8054905f610ecb83611899565b91905055505b6014546001600160a01b03848116911614801590610f0757506001600160a01b0383165f9081526003602052604090205460ff16155b15610f865760105482610f2e856001600160a01b03165f9081526001602052604090205490565b610f389190611916565b1115610f865760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b0565b6014546001600160a01b038481169116148015610fac57506001600160a01b0384163014155b15610fd957610fd66064610d72600c54600e5411610fcc57600854610d6b565b600a5485906111eb565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561100f57506014546001600160a01b038581169116145b80156110245750601454600160b01b900460ff165b8015611031575060115481115b80156110405750600d54600e54115b156110745761106261105d84611058846012546112b1565b6112b1565b6112c5565b4780156110725761107247611435565b505b505b80156110ee57305f90815260016020526040902054611095908261146c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110e59085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461111090836114ca565b6001600160a01b0385165f9081526001602052604090205561115361113583836114ca565b6001600160a01b0385165f908152600160205260409020549061146c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61119c85856114ca565b60405190815260200160405180910390a350505050565b5f81848411156111d65760405162461bcd60e51b81526004016104b09190611537565b505f6111e28486611929565b95945050505050565b5f825f036111fa57505f6103fa565b5f6112058385611839565b905082611212858361193c565b146112695760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104b0565b9392505050565b5f61126983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061150b565b5f8183116112bf5782611269565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061130b5761130b611885565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611362573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138691906118b1565b8160018151811061139957611399611885565b6001600160a01b0392831660209182029290920101526013546113bf9130911684610a8a565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113f79085905f9086903090429060040161195b565b5f604051808303815f87803b15801561140e575f80fd5b505af1158015611420573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561051d573d5f803e3d5ffd5b5f806114788385611916565b9050838110156112695760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104b0565b5f61126983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111b3565b5f818361152b5760405162461bcd60e51b81526004016104b09190611537565b505f6111e2848661193c565b5f6020808352835180828501525f5b8181101561156257858101830151858201604001528201611546565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611596575f80fd5b50565b80356115a481611582565b919050565b5f80604083850312156115ba575f80fd5b82356115c581611582565b946020939093013593505050565b5f805f606084860312156115e5575f80fd5b83356115f081611582565b9250602084013561160081611582565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611636575f80fd5b823567ffffffffffffffff8082111561164d575f80fd5b818501915085601f830112611660575f80fd5b81358181111561167257611672611611565b8060051b604051601f19603f8301168101818110858211171561169757611697611611565b6040529182528482019250838101850191888311156116b4575f80fd5b938501935b828510156116d9576116ca85611599565b845293850193928501926116b9565b98975050505050505050565b5f602082840312156116f5575f80fd5b813561126981611582565b5f8060408385031215611711575f80fd5b823561171c81611582565b9150602083013561172c81611582565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561178557815f190482111561176b5761176b611737565b8085161561177857918102915b93841c9390800290611750565b509250929050565b5f8261179b575060016103fa565b816117a757505f6103fa565b81600181146117bd57600281146117c7576117e3565b60019150506103fa565b60ff8411156117d8576117d8611737565b50506001821b6103fa565b5060208310610133831016604e8410600b8410161715611806575081810a6103fa565b611810838361174b565b805f190482111561182357611823611737565b029392505050565b5f61126960ff84168361178d565b80820281158282048414176103fa576103fa611737565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118aa576118aa611737565b5060010190565b5f602082840312156118c1575f80fd5b815161126981611582565b5f805f606084860312156118de575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611907575f80fd5b81518015158114611269575f80fd5b808201808211156103fa576103fa611737565b818103818111156103fa576103fa611737565b5f8261195657634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119a95784516001600160a01b031683529383019391830191600101611984565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fdd50041721681740c04a959d3eea760bdbe7eb70edb2004b7c42446d811693764736f6c63430008140033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb1461033f578063bf474bed1461035e578063c9567bf914610373578063d34628cc14610387578063dd62ed3e146103a6575f80fd5b8063751039fc146102ab5780637d1db4a5146102bf5780638da5cb5b146102d45780638f9a55c0146102fa57806395d89b411461030f575f80fd5b8063313ce567116100e3578063313ce567146101f057806331c2d8471461020b5780633bbac5791461022c57806370a0823114610263578063715018a614610297575f80fd5b806306fdde0314610129578063095ea7b31461016b5780630faee56f1461019a57806318160ddd146101bd57806323b872dd146101d1575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600881526767726f6b2f61636360c01b60208201525b6040516101629190611537565b60405180910390f35b348015610176575f80fd5b5061018a6101853660046115a9565b6103ea565b6040519015158152602001610162565b3480156101a5575f80fd5b506101af60125481565b604051908152602001610162565b3480156101c8575f80fd5b506101af610400565b3480156101dc575f80fd5b5061018a6101eb3660046115d3565b610420565b3480156101fb575f80fd5b5060405160098152602001610162565b348015610216575f80fd5b5061022a610225366004611625565b610487565b005b348015610237575f80fd5b5061018a6102463660046116e5565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561026e575f80fd5b506101af61027d3660046116e5565b6001600160a01b03165f9081526001602052604090205490565b3480156102a2575f80fd5b5061022a610521565b3480156102b6575f80fd5b5061022a610592565b3480156102ca575f80fd5b506101af600f5481565b3480156102df575f80fd5b505f546040516001600160a01b039091168152602001610162565b348015610305575f80fd5b506101af60105481565b34801561031a575f80fd5b5060408051808201909152600881526747524f4b2f41434360c01b6020820152610155565b34801561034a575f80fd5b5061018a6103593660046115a9565b610643565b348015610369575f80fd5b506101af60115481565b34801561037e575f80fd5b5061022a61064f565b348015610392575f80fd5b5061022a6103a1366004611625565b6109fc565b3480156103b1575f80fd5b506101af6103c0366004611700565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103f6338484610a8a565b5060015b92915050565b5f61040d6009600a61182b565b61041b90633b9aca00611839565b905090565b5f61042c848484610bad565b61047d8433610478856040518060600160405280602881526020016119cb602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111b3565b610a8a565b5060019392505050565b5f546001600160a01b031633146104b95760405162461bcd60e51b81526004016104b090611850565b60405180910390fd5b5f5b815181101561051d575f60045f8484815181106104da576104da611885565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061051581611899565b9150506104bb565b5050565b5f546001600160a01b0316331461054a5760405162461bcd60e51b81526004016104b090611850565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105bb5760405162461bcd60e51b81526004016104b090611850565b6105c76009600a61182b565b6105d590633b9aca00611839565b600f556105e46009600a61182b565b6105f290633b9aca00611839565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106226009600a61182b565b61063090633b9aca00611839565b60405190815260200160405180910390a1565b5f6103f6338484610bad565b5f546001600160a01b031633146106785760405162461bcd60e51b81526004016104b090611850565b601454600160a01b900460ff16156106d25760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b0565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561071b90309061070d6009600a61182b565b61047890633b9aca00611839565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561076b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f91906118b1565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ee573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081291906118b1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561085c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088091906118b1565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d71947306108c7816001600160a01b03165f9081526001602052604090205490565b5f806108da5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610940573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061096591906118cc565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109de91906118f7565b506014805462ff00ff60a01b19166201000160a01b17905543600655565b5f546001600160a01b03163314610a255760405162461bcd60e51b81526004016104b090611850565b5f5b815181101561051d57600160045f848481518110610a4757610a47611885565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610a8281611899565b915050610a27565b6001600160a01b038316610aec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b0565b6001600160a01b038216610b4d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b0565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c115760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b0565b6001600160a01b038216610c735760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b0565b5f8111610cd45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b0565b5f80546001600160a01b03858116911614801590610cff57505f546001600160a01b03848116911614155b15611076576001600160a01b0384165f9081526004602052604090205460ff16158015610d4457506001600160a01b0383165f9081526004602052604090205460ff16155b610d4c575f80fd5b610d786064610d72600b54600e5411610d6757600754610d6b565b6009545b85906111eb565b90611270565b6014549091506001600160a01b038581169116148015610da657506013546001600160a01b03848116911614155b8015610dca57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ed157600f54821115610e215760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104b0565b60105482610e43856001600160a01b03165f9081526001602052604090205490565b610e4d9190611916565b1115610e9b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b0565b436006546003610eab9190611916565b1115610ebc57823b15610ebc575f80fd5b600e8054905f610ecb83611899565b91905055505b6014546001600160a01b03848116911614801590610f0757506001600160a01b0383165f9081526003602052604090205460ff16155b15610f865760105482610f2e856001600160a01b03165f9081526001602052604090205490565b610f389190611916565b1115610f865760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b0565b6014546001600160a01b038481169116148015610fac57506001600160a01b0384163014155b15610fd957610fd66064610d72600c54600e5411610fcc57600854610d6b565b600a5485906111eb565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561100f57506014546001600160a01b038581169116145b80156110245750601454600160b01b900460ff165b8015611031575060115481115b80156110405750600d54600e54115b156110745761106261105d84611058846012546112b1565b6112b1565b6112c5565b4780156110725761107247611435565b505b505b80156110ee57305f90815260016020526040902054611095908261146c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110e59085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461111090836114ca565b6001600160a01b0385165f9081526001602052604090205561115361113583836114ca565b6001600160a01b0385165f908152600160205260409020549061146c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61119c85856114ca565b60405190815260200160405180910390a350505050565b5f81848411156111d65760405162461bcd60e51b81526004016104b09190611537565b505f6111e28486611929565b95945050505050565b5f825f036111fa57505f6103fa565b5f6112058385611839565b905082611212858361193c565b146112695760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104b0565b9392505050565b5f61126983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061150b565b5f8183116112bf5782611269565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061130b5761130b611885565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611362573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138691906118b1565b8160018151811061139957611399611885565b6001600160a01b0392831660209182029290920101526013546113bf9130911684610a8a565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113f79085905f9086903090429060040161195b565b5f604051808303815f87803b15801561140e575f80fd5b505af1158015611420573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561051d573d5f803e3d5ffd5b5f806114788385611916565b9050838110156112695760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104b0565b5f61126983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111b3565b5f818361152b5760405162461bcd60e51b81526004016104b09190611537565b505f6111e2848661193c565b5f6020808352835180828501525f5b8181101561156257858101830151858201604001528201611546565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611596575f80fd5b50565b80356115a481611582565b919050565b5f80604083850312156115ba575f80fd5b82356115c581611582565b946020939093013593505050565b5f805f606084860312156115e5575f80fd5b83356115f081611582565b9250602084013561160081611582565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611636575f80fd5b823567ffffffffffffffff8082111561164d575f80fd5b818501915085601f830112611660575f80fd5b81358181111561167257611672611611565b8060051b604051601f19603f8301168101818110858211171561169757611697611611565b6040529182528482019250838101850191888311156116b4575f80fd5b938501935b828510156116d9576116ca85611599565b845293850193928501926116b9565b98975050505050505050565b5f602082840312156116f5575f80fd5b813561126981611582565b5f8060408385031215611711575f80fd5b823561171c81611582565b9150602083013561172c81611582565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561178557815f190482111561176b5761176b611737565b8085161561177857918102915b93841c9390800290611750565b509250929050565b5f8261179b575060016103fa565b816117a757505f6103fa565b81600181146117bd57600281146117c7576117e3565b60019150506103fa565b60ff8411156117d8576117d8611737565b50506001821b6103fa565b5060208310610133831016604e8410600b8410161715611806575081810a6103fa565b611810838361174b565b805f190482111561182357611823611737565b029392505050565b5f61126960ff84168361178d565b80820281158282048414176103fa576103fa611737565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118aa576118aa611737565b5060010190565b5f602082840312156118c1575f80fd5b815161126981611582565b5f805f606084860312156118de575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611907575f80fd5b81518015158114611269575f80fd5b808201808211156103fa576103fa611737565b818103818111156103fa576103fa611737565b5f8261195657634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119a95784516001600160a01b031683529383019391830191600101611984565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fdd50041721681740c04a959d3eea760bdbe7eb70edb2004b7c42446d811693764736f6c63430008140033

Deployed Bytecode Sourcemap

3573:7996:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5416:83;;;;;;;;;;-1:-1:-1;5486:5:0;;;;;;;;;;;;-1:-1:-1;;;5486:5:0;;;;5416:83;;;;;;;:::i;:::-;;;;;;;;6249:161;;;;;;;;;;-1:-1:-1;6249:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6249:161:0;1162:187:1;4689:52:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4689:52:0;1354:177:1;5693:95:0;;;;;;;;;;;;;:::i;6418:313::-;;;;;;;;;;-1:-1:-1;6418:313:0;;;;;:::i;:::-;;:::i;5602:83::-;;;;;;;;;;-1:-1:-1;5602:83:0;;4313:1;2139:36:1;;2127:2;2112:18;5602:83:0;1997:184:1;10559:162:0;;;;;;;;;;-1:-1:-1;10559:162:0;;;;;:::i;:::-;;:::i;:::-;;10729:83;;;;;;;;;;-1:-1:-1;10729:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;10797:7:0;10776:4;10797:7;;;:4;:7;;;;;;;;;10729:83;5796:119;;;;;;;;;;-1:-1:-1;5796:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5889:18:0;5862:7;5889:18;;;:9;:18;;;;;;;5796:119;2654:148;;;;;;;;;;;;;:::i;10120:159::-;;;;;;;;;;;;;:::i;4503:53::-;;;;;;;;;;;;;;;;2440:79;;;;;;;;;;-1:-1:-1;2478:7:0;2505:6;2440:79;;-1:-1:-1;;;;;2505:6:0;;;3842:51:1;;3830:2;3815:18;2440:79:0;3696:203:1;4563:55:0;;;;;;;;;;;;;;;;5507:87;;;;;;;;;;-1:-1:-1;5579:7:0;;;;;;;;;;;;-1:-1:-1;;;5579:7:0;;;;5507:87;;5923:167;;;;;;;;;;-1:-1:-1;5923:167:0;;;;;:::i;:::-;;:::i;4625:57::-;;;;;;;;;;;;;;;;10820:707;;;;;;;;;;;;;:::i;10387:164::-;;;;;;;;;;-1:-1:-1;10387:164:0;;;;;:::i;:::-;;:::i;6098:143::-;;;;;;;;;;-1:-1:-1;6098:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6206:18:0;;;6179:7;6206:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6098:143;6249:161;6324:4;6341:39;274:10;6364:7;6373:6;6341:8;:39::i;:::-;-1:-1:-1;6398:4:0;6249:161;;;;;:::o;5693:95::-;5746:7;4369:13;4313:1;4369:2;:13;:::i;:::-;4356:26;;:10;:26;:::i;:::-;5766:14;;5693:95;:::o;6418:313::-;6516:4;6533:36;6543:6;6551:9;6562:6;6533:9;:36::i;:::-;6580:121;6589:6;274:10;6611:89;6649:6;6611:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6611:19:0;;;;;;:11;:19;;;;;;;;274:10;6611:33;;;;;;;;;;:37;:89::i;:::-;6580:8;:121::i;:::-;-1:-1:-1;6719:4:0;6418:313;;;;;:::o;10559:162::-;2567:6;;-1:-1:-1;;;;;2567:6:0;274:10;2567:22;2559:67;;;;-1:-1:-1;;;2559:67:0;;;;;;;:::i;:::-;;;;;;;;;10632:6:::1;10627:87;10648:6;:13;10644:1;:17;10627:87;;;10699:5;10681:4;:15;10686:6;10693:1;10686:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10681:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10681:15:0;:23;;-1:-1:-1;;10681:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10663:3;::::1;::::0;::::1;:::i;:::-;;;;10627:87;;;;10559:162:::0;:::o;2654:148::-;2567:6;;-1:-1:-1;;;;;2567:6:0;274:10;2567:22;2559:67;;;;-1:-1:-1;;;2559:67:0;;;;;;;:::i;:::-;2761:1:::1;2745:6:::0;;2724:40:::1;::::0;-1:-1:-1;;;;;2745:6:0;;::::1;::::0;2724:40:::1;::::0;2761:1;;2724:40:::1;2792:1;2775:19:::0;;-1:-1:-1;;;;;;2775:19:0::1;::::0;;2654:148::o;10120:159::-;2567:6;;-1:-1:-1;;;;;2567:6:0;274:10;2567:22;2559:67;;;;-1:-1:-1;;;2559:67:0;;;;;;;:::i;:::-;4369:13:::1;4313:1;4369:2;:13;:::i;:::-;4356:26;::::0;:10:::1;:26;:::i;:::-;10173:12;:22:::0;4369:13:::1;4313:1;4369:2;:13;:::i;:::-;4356:26;::::0;:10:::1;:26;:::i;:::-;10206:14;:22:::0;10244:27:::1;4369:13;4313:1;4369:2;:13;:::i;:::-;4356:26;::::0;:10:::1;:26;:::i;:::-;10244:27;::::0;1500:25:1;;;1488:2;1473:18;10244:27:0::1;;;;;;;10120:159::o:0;5923:167::-;6001:4;6018:42;274:10;6042:9;6053:6;6018:9;:42::i;10820:707::-;2567:6;;-1:-1:-1;;;;;2567:6:0;274:10;2567:22;2559:67;;;;-1:-1:-1;;;2559:67:0;;;;;;;:::i;:::-;10884:11:::1;::::0;-1:-1:-1;;;10884:11:0;::::1;;;10883:12;10875:47;;;::::0;-1:-1:-1;;;10875:47:0;;6820:2:1;10875:47:0::1;::::0;::::1;6802:21:1::0;6859:2;6839:18;;;6832:30;6898:25;6878:18;;;6871:53;6941:18;;10875:47:0::1;6618:347:1::0;10875:47:0::1;10933:15;:80:::0;;-1:-1:-1;;;;;;10933:80:0::1;10970:42;10933:80:::0;;::::1;::::0;;;11024:58:::1;::::0;11041:4:::1;::::0;4369:13:::1;4313:1;4369:2;:13;:::i;:::-;4356:26;::::0;:10:::1;:26;:::i;11024:58::-;11127:15;;;;;;;;;-1:-1:-1::0;;;;;11127:15:0::1;-1:-1:-1::0;;;;;11127:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11109:55:0::1;;11173:4;11180:15;;;;;;;;;-1:-1:-1::0;;;;;11180:15:0::1;-1:-1:-1::0;;;;;11180:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11109:94;::::0;-1:-1:-1;;;;;;11109:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7456:15:1;;;11109:94:0::1;::::0;::::1;7438:34:1::0;7508:15;;7488:18;;;7481:43;7373:18;;11109:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11093:13;:110:::0;;-1:-1:-1;;;;;11093:110:0;;::::1;-1:-1:-1::0;;;;;;11093:110:0;;::::1;;::::0;;11214:15:::1;::::0;::::1;:31;11253:21;11284:4;11290:24;11284:4:::0;-1:-1:-1;;;;;5889:18:0;5862:7;5889:18;;;:9;:18;;;;;;;5796:119;11290:24:::1;11315:1;11317::::0;11319:7:::1;2478::::0;2505:6;-1:-1:-1;;;;;2505:6:0;;2440:79;11319:7:::1;11214:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11214:129:0;;;-1:-1:-1;;;;;7894:15:1;;;11214:129:0::1;::::0;::::1;7876:34:1::0;7926:18;;;7919:34;;;;7969:18;;;7962:34;;;;8012:18;;;8005:34;8076:15;;;8055:19;;;8048:44;11327:15:0::1;8108:19:1::0;;;8101:35;7810:19;;11214:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11361:13:0::1;::::0;11392:15:::1;::::0;11354:71:::1;::::0;-1:-1:-1;;;11354:71:0;;-1:-1:-1;;;;;11392:15:0;;::::1;11354:71;::::0;::::1;8632:51:1::0;-1:-1:-1;;8699:18:1;;;8692:34;11361:13:0;::::1;::::0;-1:-1:-1;11354:29:0::1;::::0;8605:18:1;;11354:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11436:11:0::1;:18:::0;;-1:-1:-1;;;;11465:18:0;-1:-1:-1;;;11465:18:0;;;11507:12:::1;11494:10;:25:::0;10820:707::o;10387:164::-;2567:6;;-1:-1:-1;;;;;2567:6:0;274:10;2567:22;2559:67;;;;-1:-1:-1;;;2559:67:0;;;;;;;:::i;:::-;10461:6:::1;10456:88;10477:5;:12;10473:1;:16;10456:88;;;10528:4;10511;:14;10516:5;10522:1;10516:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10511:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10511:14:0;:21;;-1:-1:-1;;10511:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10491:3;::::1;::::0;::::1;:::i;:::-;;;;10456:88;;6739:335:::0;-1:-1:-1;;;;;6832:19:0;;6824:68;;;;-1:-1:-1;;;6824:68:0;;9221:2:1;6824:68:0;;;9203:21:1;9260:2;9240:18;;;9233:30;9299:34;9279:18;;;9272:62;-1:-1:-1;;;9350:18:1;;;9343:34;9394:19;;6824:68:0;9019:400:1;6824:68:0;-1:-1:-1;;;;;6911:21:0;;6903:68;;;;-1:-1:-1;;;6903:68:0;;9626:2:1;6903:68:0;;;9608:21:1;9665:2;9645:18;;;9638:30;9704:34;9684:18;;;9677:62;-1:-1:-1;;;9755:18:1;;;9748:32;9797:19;;6903:68:0;9424:398:1;6903:68:0;-1:-1:-1;;;;;6982:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7034:32;;1500:25:1;;;7034:32:0;;1473:18:1;7034:32:0;;;;;;;6739:335;;;:::o;7082:2228::-;-1:-1:-1;;;;;7170:18:0;;7162:68;;;;-1:-1:-1;;;7162:68:0;;10029:2:1;7162:68:0;;;10011:21:1;10068:2;10048:18;;;10041:30;10107:34;10087:18;;;10080:62;-1:-1:-1;;;10158:18:1;;;10151:35;10203:19;;7162:68:0;9827:401:1;7162:68:0;-1:-1:-1;;;;;7249:16:0;;7241:64;;;;-1:-1:-1;;;7241:64:0;;10435:2:1;7241:64:0;;;10417:21:1;10474:2;10454:18;;;10447:30;10513:34;10493:18;;;10486:62;-1:-1:-1;;;10564:18:1;;;10557:33;10607:19;;7241:64:0;10233:399:1;7241:64:0;7333:1;7324:6;:10;7316:64;;;;-1:-1:-1;;;7316:64:0;;10839:2:1;7316:64:0;;;10821:21:1;10878:2;10858:18;;;10851:30;10917:34;10897:18;;;10890:62;-1:-1:-1;;;10968:18:1;;;10961:39;11017:19;;7316:64:0;10637:405:1;7316:64:0;7391:17;2505:6;;-1:-1:-1;;;;;7425:15:0;;;2505:6;;7425:15;;;;:32;;-1:-1:-1;2478:7:0;2505:6;-1:-1:-1;;;;;7444:13:0;;;2505:6;;7444:13;;7425:32;7421:1533;;;-1:-1:-1;;;;;7483:10:0;;;;;;:4;:10;;;;;;;;7482:11;:24;;;;-1:-1:-1;;;;;;7498:8:0;;;;;;:4;:8;;;;;;;;7497:9;7482:24;7474:33;;;;;;7534:76;7606:3;7534:67;7556:15;;7546:9;;:25;7545:55;;7586:14;;7545:55;;;7573:12;;7545:55;7534:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7639:13;;7522:88;;-1:-1:-1;;;;;;7631:21:0;;;7639:13;;7631:21;:55;;;;-1:-1:-1;7670:15:0;;-1:-1:-1;;;;;7656:30:0;;;7670:15;;7656:30;;7631:55;:83;;;;-1:-1:-1;;;;;;7692:22:0;;;;;;:18;:22;;;;;;;;7690:24;7631:83;7627:436;;;7754:12;;7744:6;:22;;7736:60;;;;-1:-1:-1;;;7736:60:0;;11249:2:1;7736:60:0;;;11231:21:1;11288:2;11268:18;;;11261:30;11327:27;11307:18;;;11300:55;11372:18;;7736:60:0;11047:349:1;7736:60:0;7849:14;;7839:6;7823:13;7833:2;-1:-1:-1;;;;;5889:18:0;5862:7;5889:18;;;:9;:18;;;;;;;5796:119;7823:13;:22;;;;:::i;:::-;:40;;7815:79;;;;-1:-1:-1;;;7815:79:0;;11733:2:1;7815:79:0;;;11715:21:1;11772:2;11752:18;;;11745:30;11811:28;11791:18;;;11784:56;11857:18;;7815:79:0;11531:350:1;7815:79:0;7937:12;7919:10;;7932:1;7919:14;;;;:::i;:::-;:30;7915:103;;;9557:20;;9605:8;7974:24;;;;;;8036:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7627:436;8089:13;;-1:-1:-1;;;;;8083:19:0;;;8089:13;;8083:19;;;;:47;;-1:-1:-1;;;;;;8108:22:0;;;;;;:18;:22;;;;;;;;8106:24;8083:47;8079:167;;;8185:14;;8175:6;8159:13;8169:2;-1:-1:-1;;;;;5889:18:0;5862:7;5889:18;;;:9;:18;;;;;;;5796:119;8159:13;:22;;;;:::i;:::-;:40;;8151:79;;;;-1:-1:-1;;;8151:79:0;;11733:2:1;8151:79:0;;;11715:21:1;11772:2;11752:18;;;11745:30;11811:28;11791:18;;;11784:56;11857:18;;8151:79:0;11531:350:1;8151:79:0;8271:13;;-1:-1:-1;;;;;8265:19:0;;;8271:13;;8265:19;:43;;;;-1:-1:-1;;;;;;8288:20:0;;8303:4;8288:20;;8265:43;8262:174;;;8341:79;8416:3;8341:70;8363:16;;8353:9;;:26;8352:58;;8395:15;;8352:58;;;8381:13;;8341:6;;:10;:70::i;:79::-;8329:91;;8262:174;8501:4;8452:28;5889:18;;;:9;:18;;;;;;8527:6;;-1:-1:-1;;;8527:6:0;;;;8526:7;:32;;;;-1:-1:-1;8545:13:0;;-1:-1:-1;;;;;8537:21:0;;;8545:13;;8537:21;8526:32;:47;;;;-1:-1:-1;8562:11:0;;-1:-1:-1;;;8562:11:0;;;;8526:47;:89;;;;;8598:17;;8577:20;:38;8526:89;:121;;;;;8629:18;;8619:9;;:28;8526:121;8522:421;;;8668:67;8685:49;8689:6;8696:37;8700:20;8721:11;;8696:3;:37::i;:::-;8685:3;:49::i;:::-;8668:16;:67::i;:::-;8783:21;8826:22;;8823:105;;8873:35;8886:21;8873:12;:35::i;:::-;8649:294;8522:421;7459:1495;7421:1533;8969:11;;8966:161;;9037:4;9019:24;;;;:9;:24;;;;;;:39;;9048:9;9019:28;:39::i;:::-;9012:4;8994:24;;;;:9;:24;;;;;;;:64;;;;9076:39;;-1:-1:-1;;;;;9076:39:0;;;;;;;9105:9;1500:25:1;;1488:2;1473:18;;1354:177;9076:39:0;;;;;;;;8966:161;-1:-1:-1;;;;;9153:15:0;;;;;;:9;:15;;;;;;:27;;9173:6;9153:19;:27::i;:::-;-1:-1:-1;;;;;9137:15:0;;;;;;:9;:15;;;;;:43;9205:40;9223:21;:6;9234:9;9223:10;:21::i;:::-;-1:-1:-1;;;;;9205:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9191:13:0;;;;;;;:9;:13;;;;;:54;;;;9261:41;;;9280:21;:6;9291:9;9280:10;:21::i;:::-;9261:41;;1500:25:1;;;1488:2;1473:18;9261:41:0;;;;;;;7151:2159;7082:2228;;;:::o;1332:190::-;1418:7;1454:12;1446:6;;;;1438:29;;;;-1:-1:-1;;;1438:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1478:9:0;1490:5;1494:1;1490;:5;:::i;:::-;1478:17;1332:190;-1:-1:-1;;;;;1332:190:0:o;1530:246::-;1588:7;1612:1;1617;1612:6;1608:47;;-1:-1:-1;1642:1:0;1635:8;;1608:47;1665:9;1677:5;1681:1;1677;:5;:::i;:::-;1665:17;-1:-1:-1;1710:1:0;1701:5;1705:1;1665:17;1701:5;:::i;:::-;:10;1693:56;;;;-1:-1:-1;;;1693:56:0;;12443:2:1;1693:56:0;;;12425:21:1;12482:2;12462:18;;;12455:30;12521:34;12501:18;;;12494:62;-1:-1:-1;;;12572:18:1;;;12565:31;12613:19;;1693:56:0;12241:397:1;1693:56:0;1767:1;1530:246;-1:-1:-1;;;1530:246:0:o;1784:132::-;1842:7;1869:39;1873:1;1876;1869:39;;;;;;;;;;;;;;;;;:3;:39::i;9320:98::-;9377:7;9404:1;9402;:3;9401:9;;9409:1;9401:9;;;-1:-1:-1;9407:1:0;9320:98;-1:-1:-1;9320:98:0:o;9629:483::-;5023:6;:13;;-1:-1:-1;;;;5023:13:0;-1:-1:-1;;;5023:13:0;;;9731:16:::1;::::0;;9745:1:::1;9731:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9731:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9731:16:0::1;9707:40;;9776:4;9758;9763:1;9758:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9758:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9802:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9802:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9758:7;;9802:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9792:4;9797:1;9792:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9792:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9867:15:::1;::::0;9835:62:::1;::::0;9852:4:::1;::::0;9867:15:::1;9885:11:::0;9835:8:::1;:62::i;:::-;9908:15;::::0;:196:::1;::::0;-1:-1:-1;;;9908:196:0;;-1:-1:-1;;;;;9908:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9989:11;;9908:15:::1;::::0;10031:4;;10058::::1;::::0;10078:15:::1;::::0;9908:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5059:6:0;:14;;-1:-1:-1;;;;5059:14:0;;;-1:-1:-1;;;;9629:483:0:o;10287:92::-;10344:10;;:27;;-1:-1:-1;;;;;10344:10:0;;;;:27;;;;;10364:6;;10344:10;:27;:10;:27;10364:6;10344:10;:27;;;;;;;;;;;;;;;;;;;1001:179;1059:7;;1091:5;1095:1;1091;:5;:::i;:::-;1079:17;;1120:1;1115;:6;;1107:46;;;;-1:-1:-1;;;1107:46:0;;13830:2:1;1107:46:0;;;13812:21:1;13869:2;13849:18;;;13842:30;13908:29;13888:18;;;13881:57;13955:18;;1107:46:0;13628:351:1;1188:136:0;1246:7;1273:43;1277:1;1280;1273:43;;;;;;;;;;;;;;;;;:3;:43::i;1924:189::-;2010:7;2045:12;2038:5;2030:28;;;;-1:-1:-1;;;2030:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2069:9:0;2081:5;2085:1;2081;: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:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:127::-;4358:10;4353:3;4349:20;4346:1;4339:31;4389:4;4386:1;4379:15;4413:4;4410:1;4403:15;4429:422;4518:1;4561:5;4518:1;4575:270;4596:7;4586:8;4583:21;4575:270;;;4655:4;4651:1;4647:6;4643:17;4637:4;4634:27;4631:53;;;4664:18;;:::i;:::-;4714:7;4704:8;4700:22;4697:55;;;4734:16;;;;4697:55;4813:22;;;;4773:15;;;;4575:270;;;4579:3;4429:422;;;;;:::o;4856:806::-;4905:5;4935:8;4925:80;;-1:-1:-1;4976:1:1;4990:5;;4925:80;5024:4;5014:76;;-1:-1:-1;5061:1:1;5075:5;;5014:76;5106:4;5124:1;5119:59;;;;5192:1;5187:130;;;;5099:218;;5119:59;5149:1;5140:10;;5163:5;;;5187:130;5224:3;5214:8;5211:17;5208:43;;;5231:18;;:::i;:::-;-1:-1:-1;;5287:1:1;5273:16;;5302:5;;5099:218;;5401:2;5391:8;5388:16;5382:3;5376:4;5373:13;5369:36;5363:2;5353:8;5350:16;5345:2;5339:4;5336:12;5332:35;5329:77;5326:159;;;-1:-1:-1;5438:19:1;;;5470:5;;5326:159;5517:34;5542:8;5536:4;5517:34;:::i;:::-;5587:6;5583:1;5579:6;5575:19;5566:7;5563:32;5560:58;;;5598:18;;:::i;:::-;5636:20;;4856:806;-1:-1:-1;;;4856:806:1:o;5667:140::-;5725:5;5754:47;5795:4;5785:8;5781:19;5775:4;5754:47;:::i;5812:168::-;5885:9;;;5916;;5933:15;;;5927:22;;5913:37;5903:71;;5954:18;;:::i;5985:356::-;6187:2;6169:21;;;6206:18;;;6199:30;6265:34;6260:2;6245:18;;6238:62;6332:2;6317:18;;5985:356::o;6346:127::-;6407:10;6402:3;6398:20;6395:1;6388:31;6438:4;6435:1;6428:15;6462:4;6459:1;6452:15;6478:135;6517:3;6538:17;;;6535:43;;6558:18;;:::i;:::-;-1:-1:-1;6605:1:1;6594:13;;6478:135::o;6970:251::-;7040:6;7093:2;7081:9;7072:7;7068:23;7064:32;7061:52;;;7109:1;7106;7099:12;7061:52;7141:9;7135:16;7160:31;7185:5;7160:31;:::i;8147:306::-;8235:6;8243;8251;8304:2;8292:9;8283:7;8279:23;8275:32;8272:52;;;8320:1;8317;8310:12;8272:52;8349:9;8343:16;8333:26;;8399:2;8388:9;8384:18;8378:25;8368:35;;8443:2;8432:9;8428:18;8422:25;8412:35;;8147:306;;;;;:::o;8737:277::-;8804:6;8857:2;8845:9;8836:7;8832:23;8828:32;8825:52;;;8873:1;8870;8863:12;8825:52;8905:9;8899:16;8958:5;8951:13;8944:21;8937:5;8934:32;8924:60;;8980:1;8977;8970:12;11401:125;11466:9;;;11487:10;;;11484:36;;;11500:18;;:::i;11886:128::-;11953:9;;;11974:11;;;11971:37;;;11988:18;;:::i;12019:217::-;12059:1;12085;12075:132;;12129:10;12124:3;12120:20;12117:1;12110:31;12164:4;12161:1;12154:15;12192:4;12189:1;12182:15;12075:132;-1:-1:-1;12221:9:1;;12019:217::o;12643:980::-;12905:4;12953:3;12942:9;12938:19;12984:6;12973:9;12966:25;13010:2;13048:6;13043:2;13032:9;13028:18;13021:34;13091:3;13086:2;13075:9;13071:18;13064:31;13115:6;13150;13144:13;13181:6;13173;13166:22;13219:3;13208:9;13204:19;13197:26;;13258:2;13250:6;13246:15;13232:29;;13279:1;13289:195;13303:6;13300:1;13297:13;13289:195;;;13368:13;;-1:-1:-1;;;;;13364:39:1;13352:52;;13459:15;;;;13424:12;;;;13400:1;13318:9;13289:195;;;-1:-1:-1;;;;;;;13540:32:1;;;;13535:2;13520:18;;13513:60;-1:-1:-1;;;13604:3:1;13589:19;13582:35;13501:3;12643:980;-1:-1:-1;;;12643:980:1:o

Swarm Source

ipfs://fdd50041721681740c04a959d3eea760bdbe7eb70edb2004b7c42446d8116937

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.