ETH Price: $3,484.13 (+2.22%)

Contract

0x66E12c950F63AD4d5B5506c3B497c7bAda584f1B
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve155177632022-09-12 0:03:03835 days ago1662940983IN
0x66E12c95...Ada584f1B
0 ETH0.0004975410.68132265
Approve155001632022-09-09 2:16:18838 days ago1662689778IN
0x66E12c95...Ada584f1B
0 ETH0.0006636327.31346568
Approve154777192022-09-05 11:52:19841 days ago1662378739IN
0x66E12c95...Ada584f1B
0 ETH0.000232064.98191825
Approve154738722022-09-04 21:03:43842 days ago1662325423IN
0x66E12c95...Ada584f1B
0 ETH0.0004673610.03342528
Approve154723932022-09-04 15:27:19842 days ago1662305239IN
0x66E12c95...Ada584f1B
0 ETH0.0010477922.49403566
Approve154722422022-09-04 14:54:21842 days ago1662303261IN
0x66E12c95...Ada584f1B
0 ETH0.000541211.61847671
Approve154721992022-09-04 14:43:15842 days ago1662302595IN
0x66E12c95...Ada584f1B
0 ETH0.0007598816.31325222
Approve154721802022-09-04 14:38:13842 days ago1662302293IN
0x66E12c95...Ada584f1B
0 ETH0.0007835416.82108874
Approve154721522022-09-04 14:29:46842 days ago1662301786IN
0x66E12c95...Ada584f1B
0 ETH0.0006436713.81849296
Approve154721332022-09-04 14:26:20842 days ago1662301580IN
0x66E12c95...Ada584f1B
0 ETH0.0006280613.4833519
Approve154721262022-09-04 14:24:54842 days ago1662301494IN
0x66E12c95...Ada584f1B
0 ETH0.0007234415.53087598
Approve154721252022-09-04 14:24:53842 days ago1662301493IN
0x66E12c95...Ada584f1B
0 ETH0.0007359915.80034766
Approve154721022022-09-04 14:18:06842 days ago1662301086IN
0x66E12c95...Ada584f1B
0 ETH0.0008449318.13903684
Approve154720992022-09-04 14:17:09842 days ago1662301029IN
0x66E12c95...Ada584f1B
0 ETH0.0010938937.1052515
Approve154720892022-09-04 14:15:04842 days ago1662300904IN
0x66E12c95...Ada584f1B
0 ETH0.0005427922.33986309
Approve154720892022-09-04 14:15:04842 days ago1662300904IN
0x66E12c95...Ada584f1B
0 ETH0.0010406122.33986309
Approve154720872022-09-04 14:13:47842 days ago1662300827IN
0x66E12c95...Ada584f1B
0 ETH0.0010355622.23153269
Approve154720802022-09-04 14:11:22842 days ago1662300682IN
0x66E12c95...Ada584f1B
0 ETH0.0009711520.84875565
Approve154720732022-09-04 14:09:28842 days ago1662300568IN
0x66E12c95...Ada584f1B
0 ETH0.0010563722.67819029
Approve154720732022-09-04 14:09:28842 days ago1662300568IN
0x66E12c95...Ada584f1B
0 ETH0.0010796623.17819029
Approve154720622022-09-04 14:07:23842 days ago1662300443IN
0x66E12c95...Ada584f1B
0 ETH0.0017410537.37693535
Approve154720622022-09-04 14:07:23842 days ago1662300443IN
0x66E12c95...Ada584f1B
0 ETH0.0017643437.87693535
Approve154720592022-09-04 14:06:36842 days ago1662300396IN
0x66E12c95...Ada584f1B
0 ETH0.0020252343.47765814
Approve154720562022-09-04 14:05:37842 days ago1662300337IN
0x66E12c95...Ada584f1B
0 ETH0.0020388943.77088158
Approve154720552022-09-04 14:05:17842 days ago1662300317IN
0x66E12c95...Ada584f1B
0 ETH0.0019376441.59722013
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
155177652022-09-12 0:03:47835 days ago1662941027
0x66E12c95...Ada584f1B
0.0010318 ETH
155177652022-09-12 0:03:47835 days ago1662941027
0x66E12c95...Ada584f1B
0.0010318 ETH
154791202022-09-05 17:31:16841 days ago1662399076
0x66E12c95...Ada584f1B
0.00011776 ETH
154791202022-09-05 17:31:16841 days ago1662399076
0x66E12c95...Ada584f1B
0.00011776 ETH
154777242022-09-05 11:53:04841 days ago1662378784
0x66E12c95...Ada584f1B
0.00032618 ETH
154777242022-09-05 11:53:04841 days ago1662378784
0x66E12c95...Ada584f1B
0.00032618 ETH
154740762022-09-04 21:52:51842 days ago1662328371
0x66E12c95...Ada584f1B
0.00052717 ETH
154740762022-09-04 21:52:51842 days ago1662328371
0x66E12c95...Ada584f1B
0.00052717 ETH
154732022022-09-04 18:27:45842 days ago1662316065
0x66E12c95...Ada584f1B
0.00081405 ETH
154732022022-09-04 18:27:45842 days ago1662316065
0x66E12c95...Ada584f1B
0.00081405 ETH
154726682022-09-04 16:31:46842 days ago1662309106
0x66E12c95...Ada584f1B
0.00078421 ETH
154726682022-09-04 16:31:46842 days ago1662309106
0x66E12c95...Ada584f1B
0.00078421 ETH
154724872022-09-04 15:49:58842 days ago1662306598
0x66E12c95...Ada584f1B
0.00185375 ETH
154724872022-09-04 15:49:58842 days ago1662306598
0x66E12c95...Ada584f1B
0.00185375 ETH
154724392022-09-04 15:39:04842 days ago1662305944
0x66E12c95...Ada584f1B
0.00072785 ETH
154724392022-09-04 15:39:04842 days ago1662305944
0x66E12c95...Ada584f1B
0.00072785 ETH
154723942022-09-04 15:27:27842 days ago1662305247
0x66E12c95...Ada584f1B
0.00197913 ETH
154723942022-09-04 15:27:27842 days ago1662305247
0x66E12c95...Ada584f1B
0.00197913 ETH
154723622022-09-04 15:19:25842 days ago1662304765
0x66E12c95...Ada584f1B
0.00094638 ETH
154723622022-09-04 15:19:25842 days ago1662304765
0x66E12c95...Ada584f1B
0.00094638 ETH
154722462022-09-04 14:55:26842 days ago1662303326
0x66E12c95...Ada584f1B
0.00234994 ETH
154722462022-09-04 14:55:26842 days ago1662303326
0x66E12c95...Ada584f1B
0.00234994 ETH
154722452022-09-04 14:55:06842 days ago1662303306
0x66E12c95...Ada584f1B
0.00032449 ETH
154722452022-09-04 14:55:06842 days ago1662303306
0x66E12c95...Ada584f1B
0.00032449 ETH
154722022022-09-04 14:43:47842 days ago1662302627
0x66E12c95...Ada584f1B
0.00046698 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VitalikVidiVici

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-04
*/

/*
VVV

Vitalik Vidi Vici

Vitalik came; Vitalik saw; Vitalik conquered
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.15;

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;
    address private _previousOwner;
    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 VitalikVidiVici is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet;
    string private constant _name = "Vitalik Vidi Vici";
    string private constant _symbol = "VVV";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    uint256 private _maxWalletSize = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(0x1502a31697cEA672dDeaA493336B73063243fE2f);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = 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 tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

        _feeAddr1 = 0;
        _feeAddr2 = 3;

        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {

                _feeAddr1 = 0;
                _feeAddr2 = 3;

            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        _tokenTransfer(from,to,amount);
    }

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

    function changeMaxTxAmount(uint256 percentage) external onlyOwner{
        require(percentage>0);
        _maxTxAmount = _tTotal.mul(percentage).div(100);
    }

    function changeMaxWalletSize(uint256 percentage) external onlyOwner{
        require(percentage>0);
        _maxWalletSize = _tTotal.mul(percentage).div(100);
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }  

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = _tTotal.mul(20).div(1000);
        _maxWalletSize = _tTotal.mul(20).div(1000);
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":[{"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":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"}]

60806040526200001a670de0b6b3a7640000600019620001d3565b6200002890600019620001f6565b600855600e805462ffffff60a81b19169055670de0b6b3a7640000600f8190556010553480156200005857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031916731502a31697cea672ddeaa493336b73063243fe2f17905560085460026000620000cf3390565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060016005600062000109620001c460201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600c54909116835291208054909216179055620001683390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620001b691815260200190565b60405180910390a36200021c565b6000546001600160a01b031690565b600082620001f157634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156200021757634e487b7160e01b600052601160045260246000fd5b500390565b611bc5806200022c6000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a0578063b87f137a11610064578063b87f137a14610341578063c3c8cd8014610361578063c9567bf914610376578063d34628cc1461038b578063dd62ed3e146103ab57600080fd5b8063715018a6146102a3578063751039fc146102b85780638da5cb5b146102cd57806395d89b41146102f5578063a9059cbb1461032157600080fd5b8063313ce567116100e7578063313ce567146102125780635932ead11461022e578063677daa571461024e5780636fc3eaec1461026e57806370a082311461028357600080fd5b806306fdde031461012f578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101d0578063273123b7146101f057600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526011815270566974616c696b2056696469205669636960781b60208201525b6040516101729190611748565b60405180910390f35b34801561018757600080fd5b5061019b6101963660046117c2565b6103f1565b6040519015158152602001610172565b3480156101b757600080fd5b50670de0b6b3a76400005b604051908152602001610172565b3480156101dc57600080fd5b5061019b6101eb3660046117ee565b610408565b3480156101fc57600080fd5b5061021061020b36600461182f565b610471565b005b34801561021e57600080fd5b5060405160098152602001610172565b34801561023a57600080fd5b5061021061024936600461185a565b6104c5565b34801561025a57600080fd5b50610210610269366004611877565b61050d565b34801561027a57600080fd5b50610210610567565b34801561028f57600080fd5b506101c261029e36600461182f565b610594565b3480156102af57600080fd5b506102106105b6565b3480156102c457600080fd5b5061021061062a565b3480156102d957600080fd5b506000546040516001600160a01b039091168152602001610172565b34801561030157600080fd5b506040805180820190915260038152622b2b2b60e91b6020820152610165565b34801561032d57600080fd5b5061019b61033c3660046117c2565b610667565b34801561034d57600080fd5b5061021061035c366004611877565b610674565b34801561036d57600080fd5b506102106106c8565b34801561038257600080fd5b506102106106fe565b34801561039757600080fd5b506102106103a63660046118a6565b610ab4565b3480156103b757600080fd5b506101c26103c636600461196b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103fe338484610b46565b5060015b92915050565b6000610415848484610c6a565b610467843361046285604051806060016040528060288152602001611b68602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611074565b610b46565b5060019392505050565b6000546001600160a01b031633146104a45760405162461bcd60e51b815260040161049b906119a4565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104ef5760405162461bcd60e51b815260040161049b906119a4565b600e8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b031633146105375760405162461bcd60e51b815260040161049b906119a4565b6000811161054457600080fd5b610561606461055b670de0b6b3a7640000846110ae565b90611137565b600f5550565b600c546001600160a01b0316336001600160a01b03161461058757600080fd5b4761059181611179565b50565b6001600160a01b038116600090815260026020526040812054610402906111b3565b6000546001600160a01b031633146105e05760405162461bcd60e51b815260040161049b906119a4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106545760405162461bcd60e51b815260040161049b906119a4565b670de0b6b3a7640000600f819055601055565b60006103fe338484610c6a565b6000546001600160a01b0316331461069e5760405162461bcd60e51b815260040161049b906119a4565b600081116106ab57600080fd5b6106c2606461055b670de0b6b3a7640000846110ae565b60105550565b600c546001600160a01b0316336001600160a01b0316146106e857600080fd5b60006106f330610594565b905061059181611230565b6000546001600160a01b031633146107285760405162461bcd60e51b815260040161049b906119a4565b600e54600160a01b900460ff16156107825760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161049b565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107be3082670de0b6b3a7640000610b46565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082091906119d9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089191906119d9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090291906119d9565b600e80546001600160a01b0319166001600160a01b03928316179055600d541663f305d719473061093281610594565b6000806109476000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109af573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109d491906119f6565b5050600e805461ffff60b01b191661010160b01b17905550610a056103e861055b670de0b6b3a764000060146110ae565b600f55610a216103e861055b670de0b6b3a764000060146110ae565b601055600e8054600160a01b60ff60a01b19821617909155600d5460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015610a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab09190611a24565b5050565b6000546001600160a01b03163314610ade5760405162461bcd60e51b815260040161049b906119a4565b60005b8151811015610ab057600160066000848481518110610b0257610b02611a41565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b3e81611a6d565b915050610ae1565b6001600160a01b038316610ba85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161049b565b6001600160a01b038216610c095760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161049b565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161049b565b6001600160a01b038216610d305760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161049b565b60008111610d925760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161049b565b6000600a556003600b55610dae6000546001600160a01b031690565b6001600160a01b0316836001600160a01b031614158015610ddd57506000546001600160a01b03838116911614155b15611064576001600160a01b03831660009081526006602052604090205460ff16158015610e2457506001600160a01b03821660009081526006602052604090205460ff16155b610e2d57600080fd5b600e546001600160a01b038481169116148015610e585750600d546001600160a01b03838116911614155b8015610e7d57506001600160a01b03821660009081526005602052604090205460ff16155b8015610e925750600e54600160b81b900460ff165b15610f9757600f54811115610ee95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161049b565b60105481610ef684610594565b610f009190611a86565b1115610f4e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161049b565b6001600160a01b0382166000908152600760205260409020544211610f7257600080fd5b610f7d42601e611a86565b6001600160a01b0383166000908152600760205260409020555b600e546001600160a01b038381169116148015610fc25750600d546001600160a01b03848116911614155b8015610fe757506001600160a01b03831660009081526005602052604090205460ff16155b15610ff7576000600a556003600b555b600061100230610594565b600e54909150600160a81b900460ff1615801561102d5750600e546001600160a01b03858116911614155b80156110425750600e54600160b01b900460ff165b156110625761105081611230565b4780156110605761106047611179565b505b505b61106f8383836113aa565b505050565b600081848411156110985760405162461bcd60e51b815260040161049b9190611748565b5060006110a58486611a9e565b95945050505050565b6000826000036110c057506000610402565b60006110cc8385611ab5565b9050826110d98583611ad4565b146111305760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161049b565b9392505050565b600061113083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113b5565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ab0573d6000803e3d6000fd5b600060085482111561121a5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161049b565b60006112246113e3565b90506111308382611137565b600e805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061127857611278611a41565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f591906119d9565b8160018151811061130857611308611a41565b6001600160a01b039283166020918202929092010152600d5461132e9130911684610b46565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611367908590600090869030904290600401611af6565b600060405180830381600087803b15801561138157600080fd5b505af1158015611395573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b61106f838383611406565b600081836113d65760405162461bcd60e51b815260040161049b9190611748565b5060006110a58486611ad4565b60008060006113f06114fd565b90925090506113ff8282611137565b9250505090565b6000806000806000806114188761153d565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061144a908761159a565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461147990866115dc565b6001600160a01b03891660009081526002602052604090205561149b8161163b565b6114a58483611685565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114ea91815260200190565b60405180910390a3505050505050505050565b6008546000908190670de0b6b3a76400006115188282611137565b82101561153457505060085492670de0b6b3a764000092509050565b90939092509050565b600080600080600080600080600061155a8a600a54600b546116a9565b925092509250600061156a6113e3565b9050600080600061157d8e8787876116f8565b919e509c509a509598509396509194505050505091939550919395565b600061113083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611074565b6000806115e98385611a86565b9050838110156111305760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161049b565b60006116456113e3565b9050600061165383836110ae565b3060009081526002602052604090205490915061167090826115dc565b30600090815260026020526040902055505050565b600854611692908361159a565b6008556009546116a290826115dc565b6009555050565b60008080806116bd606461055b89896110ae565b905060006116d0606461055b8a896110ae565b905060006116e8826116e28b8661159a565b9061159a565b9992985090965090945050505050565b600080808061170788866110ae565b9050600061171588876110ae565b9050600061172388886110ae565b90506000611735826116e2868661159a565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561177557858101830151858201604001528201611759565b81811115611787576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461059157600080fd5b80356117bd8161179d565b919050565b600080604083850312156117d557600080fd5b82356117e08161179d565b946020939093013593505050565b60008060006060848603121561180357600080fd5b833561180e8161179d565b9250602084013561181e8161179d565b929592945050506040919091013590565b60006020828403121561184157600080fd5b81356111308161179d565b801515811461059157600080fd5b60006020828403121561186c57600080fd5b81356111308161184c565b60006020828403121561188957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156118b957600080fd5b823567ffffffffffffffff808211156118d157600080fd5b818501915085601f8301126118e557600080fd5b8135818111156118f7576118f7611890565b8060051b604051601f19603f8301168101818110858211171561191c5761191c611890565b60405291825284820192508381018501918883111561193a57600080fd5b938501935b8285101561195f57611950856117b2565b8452938501939285019261193f565b98975050505050505050565b6000806040838503121561197e57600080fd5b82356119898161179d565b915060208301356119998161179d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119eb57600080fd5b81516111308161179d565b600080600060608486031215611a0b57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a3657600080fd5b81516111308161184c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611a7f57611a7f611a57565b5060010190565b60008219821115611a9957611a99611a57565b500190565b600082821015611ab057611ab0611a57565b500390565b6000816000190483118215151615611acf57611acf611a57565b500290565b600082611af157634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b465784516001600160a01b031683529383019391830191600101611b21565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c96cb99633ce1929a943318c6b8c123e7d41c8d8a825e3ffba456759caec5f2964736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063715018a6116100a0578063b87f137a11610064578063b87f137a14610341578063c3c8cd8014610361578063c9567bf914610376578063d34628cc1461038b578063dd62ed3e146103ab57600080fd5b8063715018a6146102a3578063751039fc146102b85780638da5cb5b146102cd57806395d89b41146102f5578063a9059cbb1461032157600080fd5b8063313ce567116100e7578063313ce567146102125780635932ead11461022e578063677daa571461024e5780636fc3eaec1461026e57806370a082311461028357600080fd5b806306fdde031461012f578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101d0578063273123b7146101f057600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526011815270566974616c696b2056696469205669636960781b60208201525b6040516101729190611748565b60405180910390f35b34801561018757600080fd5b5061019b6101963660046117c2565b6103f1565b6040519015158152602001610172565b3480156101b757600080fd5b50670de0b6b3a76400005b604051908152602001610172565b3480156101dc57600080fd5b5061019b6101eb3660046117ee565b610408565b3480156101fc57600080fd5b5061021061020b36600461182f565b610471565b005b34801561021e57600080fd5b5060405160098152602001610172565b34801561023a57600080fd5b5061021061024936600461185a565b6104c5565b34801561025a57600080fd5b50610210610269366004611877565b61050d565b34801561027a57600080fd5b50610210610567565b34801561028f57600080fd5b506101c261029e36600461182f565b610594565b3480156102af57600080fd5b506102106105b6565b3480156102c457600080fd5b5061021061062a565b3480156102d957600080fd5b506000546040516001600160a01b039091168152602001610172565b34801561030157600080fd5b506040805180820190915260038152622b2b2b60e91b6020820152610165565b34801561032d57600080fd5b5061019b61033c3660046117c2565b610667565b34801561034d57600080fd5b5061021061035c366004611877565b610674565b34801561036d57600080fd5b506102106106c8565b34801561038257600080fd5b506102106106fe565b34801561039757600080fd5b506102106103a63660046118a6565b610ab4565b3480156103b757600080fd5b506101c26103c636600461196b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103fe338484610b46565b5060015b92915050565b6000610415848484610c6a565b610467843361046285604051806060016040528060288152602001611b68602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611074565b610b46565b5060019392505050565b6000546001600160a01b031633146104a45760405162461bcd60e51b815260040161049b906119a4565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104ef5760405162461bcd60e51b815260040161049b906119a4565b600e8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b031633146105375760405162461bcd60e51b815260040161049b906119a4565b6000811161054457600080fd5b610561606461055b670de0b6b3a7640000846110ae565b90611137565b600f5550565b600c546001600160a01b0316336001600160a01b03161461058757600080fd5b4761059181611179565b50565b6001600160a01b038116600090815260026020526040812054610402906111b3565b6000546001600160a01b031633146105e05760405162461bcd60e51b815260040161049b906119a4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106545760405162461bcd60e51b815260040161049b906119a4565b670de0b6b3a7640000600f819055601055565b60006103fe338484610c6a565b6000546001600160a01b0316331461069e5760405162461bcd60e51b815260040161049b906119a4565b600081116106ab57600080fd5b6106c2606461055b670de0b6b3a7640000846110ae565b60105550565b600c546001600160a01b0316336001600160a01b0316146106e857600080fd5b60006106f330610594565b905061059181611230565b6000546001600160a01b031633146107285760405162461bcd60e51b815260040161049b906119a4565b600e54600160a01b900460ff16156107825760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161049b565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107be3082670de0b6b3a7640000610b46565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082091906119d9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089191906119d9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090291906119d9565b600e80546001600160a01b0319166001600160a01b03928316179055600d541663f305d719473061093281610594565b6000806109476000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109af573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109d491906119f6565b5050600e805461ffff60b01b191661010160b01b17905550610a056103e861055b670de0b6b3a764000060146110ae565b600f55610a216103e861055b670de0b6b3a764000060146110ae565b601055600e8054600160a01b60ff60a01b19821617909155600d5460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015610a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab09190611a24565b5050565b6000546001600160a01b03163314610ade5760405162461bcd60e51b815260040161049b906119a4565b60005b8151811015610ab057600160066000848481518110610b0257610b02611a41565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b3e81611a6d565b915050610ae1565b6001600160a01b038316610ba85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161049b565b6001600160a01b038216610c095760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161049b565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161049b565b6001600160a01b038216610d305760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161049b565b60008111610d925760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161049b565b6000600a556003600b55610dae6000546001600160a01b031690565b6001600160a01b0316836001600160a01b031614158015610ddd57506000546001600160a01b03838116911614155b15611064576001600160a01b03831660009081526006602052604090205460ff16158015610e2457506001600160a01b03821660009081526006602052604090205460ff16155b610e2d57600080fd5b600e546001600160a01b038481169116148015610e585750600d546001600160a01b03838116911614155b8015610e7d57506001600160a01b03821660009081526005602052604090205460ff16155b8015610e925750600e54600160b81b900460ff165b15610f9757600f54811115610ee95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161049b565b60105481610ef684610594565b610f009190611a86565b1115610f4e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161049b565b6001600160a01b0382166000908152600760205260409020544211610f7257600080fd5b610f7d42601e611a86565b6001600160a01b0383166000908152600760205260409020555b600e546001600160a01b038381169116148015610fc25750600d546001600160a01b03848116911614155b8015610fe757506001600160a01b03831660009081526005602052604090205460ff16155b15610ff7576000600a556003600b555b600061100230610594565b600e54909150600160a81b900460ff1615801561102d5750600e546001600160a01b03858116911614155b80156110425750600e54600160b01b900460ff165b156110625761105081611230565b4780156110605761106047611179565b505b505b61106f8383836113aa565b505050565b600081848411156110985760405162461bcd60e51b815260040161049b9190611748565b5060006110a58486611a9e565b95945050505050565b6000826000036110c057506000610402565b60006110cc8385611ab5565b9050826110d98583611ad4565b146111305760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161049b565b9392505050565b600061113083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113b5565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ab0573d6000803e3d6000fd5b600060085482111561121a5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161049b565b60006112246113e3565b90506111308382611137565b600e805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061127857611278611a41565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f591906119d9565b8160018151811061130857611308611a41565b6001600160a01b039283166020918202929092010152600d5461132e9130911684610b46565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611367908590600090869030904290600401611af6565b600060405180830381600087803b15801561138157600080fd5b505af1158015611395573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b61106f838383611406565b600081836113d65760405162461bcd60e51b815260040161049b9190611748565b5060006110a58486611ad4565b60008060006113f06114fd565b90925090506113ff8282611137565b9250505090565b6000806000806000806114188761153d565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061144a908761159a565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461147990866115dc565b6001600160a01b03891660009081526002602052604090205561149b8161163b565b6114a58483611685565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114ea91815260200190565b60405180910390a3505050505050505050565b6008546000908190670de0b6b3a76400006115188282611137565b82101561153457505060085492670de0b6b3a764000092509050565b90939092509050565b600080600080600080600080600061155a8a600a54600b546116a9565b925092509250600061156a6113e3565b9050600080600061157d8e8787876116f8565b919e509c509a509598509396509194505050505091939550919395565b600061113083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611074565b6000806115e98385611a86565b9050838110156111305760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161049b565b60006116456113e3565b9050600061165383836110ae565b3060009081526002602052604090205490915061167090826115dc565b30600090815260026020526040902055505050565b600854611692908361159a565b6008556009546116a290826115dc565b6009555050565b60008080806116bd606461055b89896110ae565b905060006116d0606461055b8a896110ae565b905060006116e8826116e28b8661159a565b9061159a565b9992985090965090945050505050565b600080808061170788866110ae565b9050600061171588876110ae565b9050600061172388886110ae565b90506000611735826116e2868661159a565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561177557858101830151858201604001528201611759565b81811115611787576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461059157600080fd5b80356117bd8161179d565b919050565b600080604083850312156117d557600080fd5b82356117e08161179d565b946020939093013593505050565b60008060006060848603121561180357600080fd5b833561180e8161179d565b9250602084013561181e8161179d565b929592945050506040919091013590565b60006020828403121561184157600080fd5b81356111308161179d565b801515811461059157600080fd5b60006020828403121561186c57600080fd5b81356111308161184c565b60006020828403121561188957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156118b957600080fd5b823567ffffffffffffffff808211156118d157600080fd5b818501915085601f8301126118e557600080fd5b8135818111156118f7576118f7611890565b8060051b604051601f19603f8301168101818110858211171561191c5761191c611890565b60405291825284820192508381018501918883111561193a57600080fd5b938501935b8285101561195f57611950856117b2565b8452938501939285019261193f565b98975050505050505050565b6000806040838503121561197e57600080fd5b82356119898161179d565b915060208301356119998161179d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119eb57600080fd5b81516111308161179d565b600080600060608486031215611a0b57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a3657600080fd5b81516111308161184c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611a7f57611a7f611a57565b5060010190565b60008219821115611a9957611a99611a57565b500190565b600082821015611ab057611ab0611a57565b500390565b6000816000190483118215151615611acf57611acf611a57565b500290565b600082611af157634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b465784516001600160a01b031683529383019391830191600101611b21565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c96cb99633ce1929a943318c6b8c123e7d41c8d8a825e3ffba456759caec5f2964736f6c634300080f0033

Deployed Bytecode Sourcemap

3602:10733:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5323:83;;;;;;;;;;-1:-1:-1;5393:5:0;;;;;;;;;;;;-1:-1:-1;;;5393:5:0;;;;5323:83;;;;;;;:::i;:::-;;;;;;;;6175:161;;;;;;;;;;-1:-1:-1;6175:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;6175:161:0;1211:187:1;5600:95:0;;;;;;;;;;-1:-1:-1;4110:18:0;5600:95;;;1549:25:1;;;1537:2;1522:18;5600:95:0;1403:177:1;6344:313:0;;;;;;;;;;-1:-1:-1;6344:313:0;;;;;:::i;:::-;;:::i;11064:88::-;;;;;;;;;;-1:-1:-1;11064:88:0;;;;;:::i;:::-;;:::i;:::-;;5509:83;;;;;;;;;;-1:-1:-1;5509:83:0;;4478:1;2440:36:1;;2428:2;2413:18;5509:83:0;2298:184:1;6665:103:0;;;;;;;;;;-1:-1:-1;6665:103:0;;;;;:::i;:::-;;:::i;9541:163::-;;;;;;;;;;-1:-1:-1;9541:163:0;;;;;:::i;:::-;;:::i;12440:193::-;;;;;;;;;;;;;:::i;5703:138::-;;;;;;;;;;-1:-1:-1;5703:138:0;;;;;:::i;:::-;;:::i;2681:148::-;;;;;;;;;;;;;:::i;9415:118::-;;;;;;;;;;;;;:::i;2467:79::-;;;;;;;;;;-1:-1:-1;2505:7:0;2532:6;2467:79;;-1:-1:-1;;;;;2532:6:0;;;3187:51:1;;3175:2;3160:18;2467:79:0;3041:203:1;5414:87:0;;;;;;;;;;-1:-1:-1;5486:7:0;;;;;;;;;;;;-1:-1:-1;;;5486:7:0;;;;5414:87;;5849:167;;;;;;;;;;-1:-1:-1;5849:167:0;;;;;:::i;:::-;;:::i;9712:::-;;;;;;;;;;-1:-1:-1;9712:167:0;;;;;:::i;:::-;;:::i;12234:194::-;;;;;;;;;;;;;:::i;10001:875::-;;;;;;;;;;;;;:::i;10888:164::-;;;;;;;;;;-1:-1:-1;10888:164:0;;;;;:::i;:::-;;:::i;6024:143::-;;;;;;;;;;-1:-1:-1;6024:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6132:18:0;;;6105:7;6132:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6024:143;6175:161;6250:4;6267:39;267:10;6290:7;6299:6;6267:8;:39::i;:::-;-1:-1:-1;6324:4:0;6175:161;;;;;:::o;6344:313::-;6442:4;6459:36;6469:6;6477:9;6488:6;6459:9;:36::i;:::-;6506:121;6515:6;267:10;6537:89;6575:6;6537:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6537:19:0;;;;;;:11;:19;;;;;;;;267:10;6537:33;;;;;;;;;;:37;:89::i;:::-;6506:8;:121::i;:::-;-1:-1:-1;6645:4:0;6344:313;;;;;:::o;11064:88::-;2594:6;;-1:-1:-1;;;;;2594:6:0;267:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;11124:12:0::1;11139:5;11124:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;11124:20:0::1;::::0;;11064:88::o;6665:103::-;2594:6;;-1:-1:-1;;;;;2594:6:0;267:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;6737:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6737:23:0::1;-1:-1:-1::0;;;;6737:23:0;;::::1;::::0;;;::::1;::::0;;6665:103::o;9541:163::-;2594:6;;-1:-1:-1;;;;;2594:6:0;267:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;9636:1:::1;9625:10;:12;9617:21;;;::::0;::::1;;9664:32;9692:3;9664:23;4110:18;9676:10:::0;9664:11:::1;:23::i;:::-;:27:::0;::::1;:32::i;:::-;9649:12;:47:::0;-1:-1:-1;9541:163:0:o;12440:193::-;12506:14;;-1:-1:-1;;;;;12506:14:0;267:10;-1:-1:-1;;;;;12490:30:0;;12482:39;;;;;;12561:21;12593:32;12561:21;12593:12;:32::i;:::-;12471:162;12440:193::o;5703:138::-;-1:-1:-1;;;;;5816:16:0;;5769:7;5816:16;;;:7;:16;;;;;;5796:37;;:19;:37::i;2681:148::-;2594:6;;-1:-1:-1;;;;;2594:6:0;267:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;2788:1:::1;2772:6:::0;;2751:40:::1;::::0;-1:-1:-1;;;;;2772:6:0;;::::1;::::0;2751:40:::1;::::0;2788:1;;2751:40:::1;2819:1;2802:19:::0;;-1:-1:-1;;;;;;2802:19:0::1;::::0;;2681:148::o;9415:118::-;2594:6;;-1:-1:-1;;;;;2594:6:0;267:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;4110:18:::1;9468:12;:22:::0;;;9501:14:::1;:24:::0;9415:118::o;5849:167::-;5927:4;5944:42;267:10;5968:9;5979:6;5944:9;:42::i;9712:167::-;2594:6;;-1:-1:-1;;;;;2594:6:0;267:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;9809:1:::1;9798:10;:12;9790:21;;;::::0;::::1;;9839:32;9867:3;9839:23;4110:18;9851:10:::0;9839:11:::1;:23::i;:32::-;9822:14;:49:::0;-1:-1:-1;9712:167:0:o;12234:194::-;12300:14;;-1:-1:-1;;;;;12300:14:0;267:10;-1:-1:-1;;;;;12284:30:0;;12276:39;;;;;;12326:23;12352:24;12370:4;12352:9;:24::i;:::-;12326:50;;12387:33;12404:15;12387:16;:33::i;10001:875::-;2594:6;;-1:-1:-1;;;;;2594:6:0;267:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;10065:11:::1;::::0;-1:-1:-1;;;10065:11:0;::::1;;;10064:12;10056:47;;;::::0;-1:-1:-1;;;10056:47:0;;5463:2:1;10056:47:0::1;::::0;::::1;5445:21:1::0;5502:2;5482:18;;;5475:30;5541:25;5521:18;;;5514:53;5584:18;;10056:47:0::1;5261:347:1::0;10056:47:0::1;10225:15;:34:::0;;-1:-1:-1;;;;;;10225:34:0::1;10171:42;10225:34:::0;;::::1;::::0;;;10270:58:::1;10287:4;10171:42:::0;4110:18:::1;10270:8;:58::i;:::-;10373:16;-1:-1:-1::0;;;;;10373:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10355:56:0::1;;10420:4;10427:16;-1:-1:-1::0;;;;;10427:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10355:96;::::0;-1:-1:-1;;;;;;10355:96:0::1;::::0;;;;;;-1:-1:-1;;;;;6099:15:1;;;10355:96:0::1;::::0;::::1;6081:34:1::0;6151:15;;6131:18;;;6124:43;6016:18;;10355:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10339:13;:112:::0;;-1:-1:-1;;;;;;10339:112:0::1;-1:-1:-1::0;;;;;10339:112:0;;::::1;;::::0;;10462:15:::1;::::0;::::1;:31;10501:21;10532:4;10538:24;10532:4:::0;10538:9:::1;:24::i;:::-;10563:1;10565::::0;10567:7:::1;2505::::0;2532:6;-1:-1:-1;;;;;2532:6:0;;2467:79;10567:7:::1;10462:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10462:129:0;;;-1:-1:-1;;;;;6537:15:1;;;10462:129:0::1;::::0;::::1;6519:34:1::0;6569:18;;;6562:34;;;;6612:18;;;6605:34;;;;6655:18;;;6648:34;6719:15;;;6698:19;;;6691:44;10575:15:0::1;6751:19:1::0;;;6744:35;6453:19;;10462:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10602:11:0::1;:18:::0;;-1:-1:-1;;;;10631:22:0;-1:-1:-1;;;10631:22:0;;;-1:-1:-1;10679:25:0::1;10699:4;10679:15;4110:18;10691:2;10679:11;:15::i;:25::-;10664:12;:40:::0;10732:25:::1;10752:4;10732:15;4110:18;10744:2;10732:11;:15::i;:25::-;10715:14;:42:::0;10768:11:::1;:18:::0;;-1:-1:-1;;;;;;;10768:18:0;::::1;;::::0;;;10835:15:::1;::::0;10797:71:::1;::::0;-1:-1:-1;;;10797:71:0;;-1:-1:-1;;;;;10835:15:0;;::::1;10797:71;::::0;::::1;7275:51:1::0;-1:-1:-1;;7342:18:1;;;7335:34;10804:13:0;;;10797:29:::1;::::0;7248:18:1;;10797:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10045:831;10001:875::o:0;10888:164::-;2594:6;;-1:-1:-1;;;;;2594:6:0;267:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;10962:6:::1;10957:88;10978:5;:12;10974:1;:16;10957:88;;;11029:4;11012;:14;11017:5;11023:1;11017:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11012:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11012:14:0;:21;;-1:-1:-1;;11012:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10992:3;::::1;::::0;::::1;:::i;:::-;;;;10957:88;;7038:335:::0;-1:-1:-1;;;;;7131:19:0;;7123:68;;;;-1:-1:-1;;;7123:68:0;;8236:2:1;7123:68:0;;;8218:21:1;8275:2;8255:18;;;8248:30;8314:34;8294:18;;;8287:62;-1:-1:-1;;;8365:18:1;;;8358:34;8409:19;;7123:68:0;8034:400:1;7123:68:0;-1:-1:-1;;;;;7210:21:0;;7202:68;;;;-1:-1:-1;;;7202:68:0;;8641:2:1;7202:68:0;;;8623:21:1;8680:2;8660:18;;;8653:30;8719:34;8699:18;;;8692:62;-1:-1:-1;;;8770:18:1;;;8763:32;8812:19;;7202:68:0;8439:398:1;7202:68:0;-1:-1:-1;;;;;7281:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7333:32;;1549:25:1;;;7333:32:0;;1522:18:1;7333:32:0;;;;;;;7038:335;;;:::o;7381:1535::-;-1:-1:-1;;;;;7469:18:0;;7461:68;;;;-1:-1:-1;;;7461:68:0;;9044:2:1;7461:68:0;;;9026:21:1;9083:2;9063:18;;;9056:30;9122:34;9102:18;;;9095:62;-1:-1:-1;;;9173:18:1;;;9166:35;9218:19;;7461:68:0;8842:401:1;7461:68:0;-1:-1:-1;;;;;7548:16:0;;7540:64;;;;-1:-1:-1;;;7540:64:0;;9450:2:1;7540:64:0;;;9432:21:1;9489:2;9469:18;;;9462:30;9528:34;9508:18;;;9501:62;-1:-1:-1;;;9579:18:1;;;9572:33;9622:19;;7540:64:0;9248:399:1;7540:64:0;7632:1;7623:6;:10;7615:64;;;;-1:-1:-1;;;7615:64:0;;9854:2:1;7615:64:0;;;9836:21:1;9893:2;9873:18;;;9866:30;9932:34;9912:18;;;9905:62;-1:-1:-1;;;9983:18:1;;;9976:39;10032:19;;7615:64:0;9652:405:1;7615:64:0;7704:1;7692:9;:13;7728:1;7716:9;:13;7754:7;2505;2532:6;-1:-1:-1;;;;;2532:6:0;;2467:79;7754:7;-1:-1:-1;;;;;7746:15:0;:4;-1:-1:-1;;;;;7746:15:0;;;:32;;;;-1:-1:-1;2505:7:0;2532:6;-1:-1:-1;;;;;7765:13:0;;;2532:6;;7765:13;;7746:32;7742:1126;;;-1:-1:-1;;;;;7804:10:0;;;;;;:4;:10;;;;;;;;7803:11;:24;;;;-1:-1:-1;;;;;;7819:8:0;;;;;;:4;:8;;;;;;;;7818:9;7803:24;7795:33;;;;;;7855:13;;-1:-1:-1;;;;;7847:21:0;;;7855:13;;7847:21;:55;;;;-1:-1:-1;7886:15:0;;-1:-1:-1;;;;;7872:30:0;;;7886:15;;7872:30;;7847:55;:83;;;;-1:-1:-1;;;;;;7908:22:0;;;;;;:18;:22;;;;;;;;7906:24;7847:83;:102;;;;-1:-1:-1;7934:15:0;;-1:-1:-1;;;7934:15:0;;;;7847:102;7843:423;;;7988:12;;7978:6;:22;;7970:60;;;;-1:-1:-1;;;7970:60:0;;10264:2:1;7970:60:0;;;10246:21:1;10303:2;10283:18;;;10276:30;10342:27;10322:18;;;10315:55;10387:18;;7970:60:0;10062:349:1;7970:60:0;8083:14;;8073:6;8057:13;8067:2;8057:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8049:79;;;;-1:-1:-1;;;8049:79:0;;10751:2:1;8049:79:0;;;10733:21:1;10790:2;10770:18;;;10763:30;10829:28;10809:18;;;10802:56;10875:18;;8049:79:0;10549:350:1;8049:79:0;-1:-1:-1;;;;;8155:12:0;;;;;;:8;:12;;;;;;8170:15;-1:-1:-1;8147:39:0;;;;;;8220:30;:15;8239:10;8220:30;:::i;:::-;-1:-1:-1;;;;;8205:12:0;;;;;;:8;:12;;;;;:45;7843:423;8290:13;;-1:-1:-1;;;;;8284:19:0;;;8290:13;;8284:19;:55;;;;-1:-1:-1;8323:15:0;;-1:-1:-1;;;;;8307:32:0;;;8323:15;;8307:32;;8284:55;:85;;;;-1:-1:-1;;;;;;8345:24:0;;;;;;:18;:24;;;;;;;;8343:26;8284:85;8280:175;;;8404:1;8392:9;:13;8436:1;8424:9;:13;8280:175;8469:28;8500:24;8518:4;8500:9;:24::i;:::-;8544:6;;8469:55;;-1:-1:-1;;;;8544:6:0;;;;8543:7;:32;;;;-1:-1:-1;8562:13:0;;-1:-1:-1;;;;;8554:21:0;;;8562:13;;8554:21;;8543:32;:47;;;;-1:-1:-1;8579:11:0;;-1:-1:-1;;;8579:11:0;;;;8543:47;8539:318;;;8611:38;8628:20;8611:16;:38::i;:::-;8697:21;8740:22;;8737:105;;8787:35;8800:21;8787:12;:35::i;:::-;8592:265;8539:318;7780:1088;7742:1126;8878:30;8893:4;8898:2;8901:6;8878:14;:30::i;:::-;7381:1535;;;:::o;1324:190::-;1410:7;1446:12;1438:6;;;;1430:29;;;;-1:-1:-1;;;1430:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1470:9:0;1482:5;1486:1;1482;:5;:::i;:::-;1470:17;1324:190;-1:-1:-1;;;;;1324:190:0:o;1522:246::-;1580:7;1604:1;1609;1604:6;1600:47;;-1:-1:-1;1634:1:0;1627:8;;1600:47;1657:9;1669:5;1673:1;1669;:5;:::i;:::-;1657:17;-1:-1:-1;1702:1:0;1693:5;1697:1;1657:17;1693:5;:::i;:::-;:10;1685:56;;;;-1:-1:-1;;;1685:56:0;;11631:2:1;1685:56:0;;;11613:21:1;11670:2;11650:18;;;11643:30;11709:34;11689:18;;;11682:62;-1:-1:-1;;;11760:18:1;;;11753:31;11801:19;;1685:56:0;11429:397:1;1685:56:0;1759:1;1522:246;-1:-1:-1;;;1522:246:0:o;1776:132::-;1834:7;1861:39;1865:1;1868;1861:39;;;;;;;;;;;;;;;;;:3;:39::i;9895:96::-;9952:14;;:31;;-1:-1:-1;;;;;9952:14:0;;;;:31;;;;;9976:6;;9952:14;:31;:14;:31;9976:6;9952:14;:31;;;;;;;;;;;;;;;;;;;6776:254;6843:7;6882;;6871;:18;;6863:73;;;;-1:-1:-1;;;6863:73:0;;12033:2:1;6863:73:0;;;12015:21:1;12072:2;12052:18;;;12045:30;12111:34;12091:18;;;12084:62;-1:-1:-1;;;12162:18:1;;;12155:40;12212:19;;6863:73:0;11831:406:1;6863:73:0;6947:19;6970:10;:8;:10::i;:::-;6947:33;-1:-1:-1;6998:24:0;:7;6947:33;6998:11;:24::i;8924:483::-;4898:6;:13;;-1:-1:-1;;;;4898:13:0;-1:-1:-1;;;4898:13:0;;;9026:16:::1;::::0;;9040:1:::1;9026:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9026:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9026:16:0::1;9002:40;;9071:4;9053;9058:1;9053:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9053:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9097:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9097:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9053:7;;9097:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9087:4;9092:1;9087:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9087:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9162:15:::1;::::0;9130:62:::1;::::0;9147:4:::1;::::0;9162:15:::1;9180:11:::0;9130:8:::1;:62::i;:::-;9203:15;::::0;:196:::1;::::0;-1:-1:-1;;;9203:196:0;;-1:-1:-1;;;;;9203:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9284:11;;9203:15:::1;::::0;9326:4;;9353::::1;::::0;9373:15:::1;::::0;9203:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4934:6:0;:14;;-1:-1:-1;;;;4934:14:0;;;-1:-1:-1;;;;8924:483:0:o;11168:146::-;11262:44;11280:6;11288:9;11299:6;11262:17;:44::i;1916:189::-;2002:7;2037:12;2030:5;2022:28;;;;-1:-1:-1;;;2022:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2061:9:0;2073:5;2077:1;2073;:5;:::i;13899:163::-;13940:7;13961:15;13978;13997:19;:17;:19::i;:::-;13960:56;;-1:-1:-1;13960:56:0;-1:-1:-1;14034:20:0;13960:56;;14034:11;:20::i;:::-;14027:27;;;;13899:163;:::o;11322:488::-;11421:15;11438:23;11463:12;11477:23;11502:12;11516:13;11533:19;11544:7;11533:10;:19::i;:::-;-1:-1:-1;;;;;11581:15:0;;;;;;:7;:15;;;;;;11420:132;;-1:-1:-1;11420:132:0;;-1:-1:-1;11420:132:0;;-1:-1:-1;11420:132:0;-1:-1:-1;11420:132:0;-1:-1:-1;11420:132:0;-1:-1:-1;11581:28:0;;11420:132;11581:19;:28::i;:::-;-1:-1:-1;;;;;11563:15:0;;;;;;;:7;:15;;;;;;:46;;;;11641:18;;;;;;;:39;;11664:15;11641:22;:39::i;:::-;-1:-1:-1;;;;;11620:18:0;;;;;;:7;:18;;;;;:60;11692:16;11702:5;11692:9;:16::i;:::-;11719:23;11731:4;11737;11719:11;:23::i;:::-;11775:9;-1:-1:-1;;;;;11758:44:0;11767:6;-1:-1:-1;;;;;11758:44:0;;11786:15;11758:44;;;;1549:25:1;;1537:2;1522:18;;1403:177;11758:44:0;;;;;;;;11409:401;;;;;;11322:488;;;:::o;14070:262::-;14167:7;;14120;;;;4110:18;14241:20;14167:7;4110:18;14241:11;:20::i;:::-;14231:7;:30;14227:61;;;-1:-1:-1;;14271:7:0;;;4110:18;;-1:-1:-1;14070:262:0;-1:-1:-1;14070:262:0:o;14227:61::-;14307:7;;14316;;-1:-1:-1;14070:262:0;-1:-1:-1;14070:262:0:o;12647:471::-;12706:7;12715;12724;12733;12742;12751;12772:23;12797:12;12811:13;12828:42;12840:7;12849:9;;12860;;12828:11;:42::i;:::-;12771:99;;;;;;12881:19;12904:10;:8;:10::i;:::-;12881:33;;12926:15;12943:23;12968:12;12984:46;12996:7;13005:4;13011:5;13018:11;12984;:46::i;:::-;12925:105;;-1:-1:-1;12925:105:0;-1:-1:-1;12925:105:0;-1:-1:-1;13081:15:0;;-1:-1:-1;13098:4:0;;-1:-1:-1;13104:5:0;;-1:-1:-1;;;;;12647:471:0;;;;;;;:::o;1180:136::-;1238:7;1265:43;1269:1;1272;1265:43;;;;;;;;;;;;;;;;;:3;:43::i;993:179::-;1051:7;;1083:5;1087:1;1083;:5;:::i;:::-;1071:17;;1112:1;1107;:6;;1099:46;;;;-1:-1:-1;;;1099:46:0;;13429:2:1;1099:46:0;;;13411:21:1;13468:2;13448:18;;;13441:30;13507:29;13487:18;;;13480:57;13554:18;;1099:46:0;13227:351:1;11818:212:0;11871:19;11894:10;:8;:10::i;:::-;11871:33;-1:-1:-1;11915:13:0;11931:22;:5;11871:33;11931:9;:22::i;:::-;12005:4;11989:22;;;;:7;:22;;;;;;11915:38;;-1:-1:-1;11989:33:0;;11915:38;11989:26;:33::i;:::-;11980:4;11964:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11818:212:0:o;12038:147::-;12116:7;;:17;;12128:4;12116:11;:17::i;:::-;12106:7;:27;12157:10;;:20;;12172:4;12157:14;:20::i;:::-;12144:10;:33;-1:-1:-1;;12038:147:0:o;13126:351::-;13219:7;;;;13272:28;13296:3;13272:19;:7;13284:6;13272:11;:19::i;:28::-;13257:43;-1:-1:-1;13311:13:0;13327:29;13352:3;13327:20;:7;13339;13327:11;:20::i;:29::-;13311:45;-1:-1:-1;13367:23:0;13393:28;13311:45;13393:17;:7;13405:4;13393:11;:17::i;:::-;:21;;:28::i;:::-;13367:54;13457:4;;-1:-1:-1;13463:5:0;;-1:-1:-1;13126:351:0;;-1:-1:-1;;;;;13126:351:0:o;13485:409::-;13595:7;;;;13651:24;:7;13663:11;13651;:24::i;:::-;13633:42;-1:-1:-1;13686:12:0;13701:21;:4;13710:11;13701:8;:21::i;:::-;13686:36;-1:-1:-1;13733:13:0;13749:22;:5;13759:11;13749:9;:22::i;:::-;13733:38;-1:-1:-1;13782:23:0;13808:28;13733:38;13808:17;:7;13820:4;13808:11;:17::i;:28::-;13855:7;;;;-1:-1:-1;13881:4:0;;-1:-1:-1;13485:409:0;;-1:-1:-1;;;;;;;13485:409:0:o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1585:456::-;1662:6;1670;1678;1731:2;1719:9;1710:7;1706:23;1702:32;1699:52;;;1747:1;1744;1737:12;1699:52;1786:9;1773:23;1805:31;1830:5;1805:31;:::i;:::-;1855:5;-1:-1:-1;1912:2:1;1897:18;;1884:32;1925:33;1884:32;1925:33;:::i;:::-;1585:456;;1977:7;;-1:-1:-1;;;2031:2:1;2016:18;;;;2003:32;;1585:456::o;2046:247::-;2105:6;2158:2;2146:9;2137:7;2133:23;2129:32;2126:52;;;2174:1;2171;2164:12;2126:52;2213:9;2200:23;2232:31;2257:5;2232:31;:::i;2487:118::-;2573:5;2566:13;2559:21;2552:5;2549:32;2539:60;;2595:1;2592;2585:12;2610:241;2666:6;2719:2;2707:9;2698:7;2694:23;2690:32;2687:52;;;2735:1;2732;2725:12;2687:52;2774:9;2761:23;2793:28;2815:5;2793:28;:::i;2856:180::-;2915:6;2968:2;2956:9;2947:7;2943:23;2939:32;2936:52;;;2984:1;2981;2974:12;2936:52;-1:-1:-1;3007:23:1;;2856:180;-1:-1:-1;2856:180:1:o;3249:127::-;3310:10;3305:3;3301:20;3298:1;3291:31;3341:4;3338:1;3331:15;3365:4;3362:1;3355:15;3381:1121;3465:6;3496:2;3539;3527:9;3518:7;3514:23;3510:32;3507:52;;;3555:1;3552;3545:12;3507:52;3595:9;3582:23;3624:18;3665:2;3657:6;3654:14;3651:34;;;3681:1;3678;3671:12;3651:34;3719:6;3708:9;3704:22;3694:32;;3764:7;3757:4;3753:2;3749:13;3745:27;3735:55;;3786:1;3783;3776:12;3735:55;3822:2;3809:16;3844:2;3840;3837:10;3834:36;;;3850:18;;:::i;:::-;3896:2;3893:1;3889:10;3928:2;3922:9;3991:2;3987:7;3982:2;3978;3974:11;3970:25;3962:6;3958:38;4046:6;4034:10;4031:22;4026:2;4014:10;4011:18;4008:46;4005:72;;;4057:18;;:::i;:::-;4093:2;4086:22;4143:18;;;4177:15;;;;-1:-1:-1;4219:11:1;;;4215:20;;;4247:19;;;4244:39;;;4279:1;4276;4269:12;4244:39;4303:11;;;;4323:148;4339:6;4334:3;4331:15;4323:148;;;4405:23;4424:3;4405:23;:::i;:::-;4393:36;;4356:12;;;;4449;;;;4323:148;;;4490:6;3381:1121;-1:-1:-1;;;;;;;;3381:1121:1:o;4507:388::-;4575:6;4583;4636:2;4624:9;4615:7;4611:23;4607:32;4604:52;;;4652:1;4649;4642:12;4604:52;4691:9;4678:23;4710:31;4735:5;4710:31;:::i;:::-;4760:5;-1:-1:-1;4817:2:1;4802:18;;4789:32;4830:33;4789:32;4830:33;:::i;:::-;4882:7;4872:17;;;4507:388;;;;;:::o;4900:356::-;5102:2;5084:21;;;5121:18;;;5114:30;5180:34;5175:2;5160:18;;5153:62;5247:2;5232:18;;4900:356::o;5613:251::-;5683:6;5736:2;5724:9;5715:7;5711:23;5707:32;5704:52;;;5752:1;5749;5742:12;5704:52;5784:9;5778:16;5803:31;5828:5;5803:31;:::i;6790:306::-;6878:6;6886;6894;6947:2;6935:9;6926:7;6922:23;6918:32;6915:52;;;6963:1;6960;6953:12;6915:52;6992:9;6986:16;6976:26;;7042:2;7031:9;7027:18;7021:25;7011:35;;7086:2;7075:9;7071:18;7065:25;7055:35;;6790:306;;;;;:::o;7380:245::-;7447:6;7500:2;7488:9;7479:7;7475:23;7471:32;7468:52;;;7516:1;7513;7506:12;7468:52;7548:9;7542:16;7567:28;7589:5;7567:28;:::i;7630:127::-;7691:10;7686:3;7682:20;7679:1;7672:31;7722:4;7719:1;7712:15;7746:4;7743:1;7736:15;7762:127;7823:10;7818:3;7814:20;7811:1;7804:31;7854:4;7851:1;7844:15;7878:4;7875:1;7868:15;7894:135;7933:3;7954:17;;;7951:43;;7974:18;;:::i;:::-;-1:-1:-1;8021:1:1;8010:13;;7894:135::o;10416:128::-;10456:3;10487:1;10483:6;10480:1;10477:13;10474:39;;;10493:18;;:::i;:::-;-1:-1:-1;10529:9:1;;10416:128::o;10904:125::-;10944:4;10972:1;10969;10966:8;10963:34;;;10977:18;;:::i;:::-;-1:-1:-1;11014:9:1;;10904:125::o;11034:168::-;11074:7;11140:1;11136;11132:6;11128:14;11125:1;11122:21;11117:1;11110:9;11103:17;11099:45;11096:71;;;11147:18;;:::i;:::-;-1:-1:-1;11187:9:1;;11034:168::o;11207:217::-;11247:1;11273;11263:132;;11317:10;11312:3;11308:20;11305:1;11298:31;11352:4;11349:1;11342:15;11380:4;11377:1;11370:15;11263:132;-1:-1:-1;11409:9:1;;11207:217::o;12242:980::-;12504:4;12552:3;12541:9;12537:19;12583:6;12572:9;12565:25;12609:2;12647:6;12642:2;12631:9;12627:18;12620:34;12690:3;12685:2;12674:9;12670:18;12663:31;12714:6;12749;12743:13;12780:6;12772;12765:22;12818:3;12807:9;12803:19;12796:26;;12857:2;12849:6;12845:15;12831:29;;12878:1;12888:195;12902:6;12899:1;12896:13;12888:195;;;12967:13;;-1:-1:-1;;;;;12963:39:1;12951:52;;13058:15;;;;13023:12;;;;12999:1;12917:9;12888:195;;;-1:-1:-1;;;;;;;13139:32:1;;;;13134:2;13119:18;;13112:60;-1:-1:-1;;;13203:3:1;13188:19;13181:35;13100:3;12242:980;-1:-1:-1;;;12242:980:1:o

Swarm Source

ipfs://c96cb99633ce1929a943318c6b8c123e7d41c8d8a825e3ffba456759caec5f29

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.