ETH Price: $3,099.10 (+0.51%)
Gas: 4 Gwei

Contract

0x35D38E9c82ee6667e83Dc1c96eeF2F811d58fE57
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve160088202022-11-20 4:23:59598 days ago1668918239IN
0x35D38E9c...11d58fE57
0 ETH0.0005827312.51004556
Approve159370742022-11-10 3:56:11608 days ago1668052571IN
0x35D38E9c...11d58fE57
0 ETH0.0006345726.11739866
Approve159370692022-11-10 3:55:11608 days ago1668052511IN
0x35D38E9c...11d58fE57
0 ETH0.0006879928.31613375
Approve152842192022-08-05 19:30:19704 days ago1659727819IN
0x35D38E9c...11d58fE57
0 ETH0.0008085133.27646098
Approve152442192022-07-30 14:03:53710 days ago1659189833IN
0x35D38E9c...11d58fE57
0 ETH0.0004402418.11915171
Transfer143478362022-03-08 18:40:08854 days ago1646764808IN
0x35D38E9c...11d58fE57
0 ETH0.0088847943.50494802
Approve140320732022-01-18 21:51:02903 days ago1642542662IN
0x35D38E9c...11d58fE57
0 ETH0.00374488154.12972214
Approve139037222021-12-30 1:20:08923 days ago1640827208IN
0x35D38E9c...11d58fE57
0 ETH0.00277147114.06651429
Transfer136564952021-11-21 6:10:10962 days ago1637475010IN
0x35D38E9c...11d58fE57
0 ETH0.0200547998.06697695
Approve136331702021-11-17 13:20:21965 days ago1637155221IN
0x35D38E9c...11d58fE57
0 ETH0.0039311284.39323574
Approve136249732021-11-16 6:19:39967 days ago1637043579IN
0x35D38E9c...11d58fE57
0 ETH0.00589249126.5
Approve136188052021-11-15 6:41:22968 days ago1636958482IN
0x35D38E9c...11d58fE57
0 ETH0.00497755106.85805476
Approve136184112021-11-15 5:07:07968 days ago1636952827IN
0x35D38E9c...11d58fE57
0 ETH0.0117389252.0106743
Approve136134252021-11-14 10:22:55969 days ago1636885375IN
0x35D38E9c...11d58fE57
0 ETH0.0034791574.6904875
Transfer136103212021-11-13 22:31:43969 days ago1636842703IN
0x35D38E9c...11d58fE57
0 ETH0.01492905150
Transfer136103182021-11-13 22:30:44969 days ago1636842644IN
0x35D38E9c...11d58fE57
0 ETH0.03064095150
Transfer136103092021-11-13 22:29:10969 days ago1636842550IN
0x35D38E9c...11d58fE57
0 ETH0.03320775150
Transfer136103022021-11-13 22:26:05969 days ago1636842365IN
0x35D38E9c...11d58fE57
0 ETH0.01293864130
Transfer136102142021-11-13 22:04:51969 days ago1636841091IN
0x35D38E9c...11d58fE57
0 ETH0.01293864130
Approve136092452021-11-13 18:25:52969 days ago1636827952IN
0x35D38E9c...11d58fE57
0 ETH0.00595412127.82296416
Approve136088842021-11-13 17:08:33969 days ago1636823313IN
0x35D38E9c...11d58fE57
0 ETH0.00878051188.4999296
Approve136034522021-11-12 20:30:43970 days ago1636749043IN
0x35D38E9c...11d58fE57
0 ETH0.00744421159.81225757
Approve136022742021-11-12 16:08:20970 days ago1636733300IN
0x35D38E9c...11d58fE57
0 ETH0.00610636131.09136194
Approve136005202021-11-12 9:27:12971 days ago1636709232IN
0x35D38E9c...11d58fE57
0 ETH0.0073609158.02370451
Approve136001922021-11-12 8:09:37971 days ago1636704577IN
0x35D38E9c...11d58fE57
0 ETH0.00563874121.0525387
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
143478362022-03-08 18:40:08854 days ago1646764808
0x35D38E9c...11d58fE57
0.00000437 ETH
143478362022-03-08 18:40:08854 days ago1646764808
0x35D38E9c...11d58fE57
0.00000437 ETH
143478362022-03-08 18:40:08854 days ago1646764808
0x35D38E9c...11d58fE57
0.00000874 ETH
138081782021-12-15 6:43:52938 days ago1639550632
0x35D38E9c...11d58fE57
0.00005499 ETH
138081782021-12-15 6:43:52938 days ago1639550632
0x35D38E9c...11d58fE57
0.00005499 ETH
138081782021-12-15 6:43:52938 days ago1639550632
0x35D38E9c...11d58fE57
0.00010999 ETH
138063382021-12-14 23:47:37938 days ago1639525657
0x35D38E9c...11d58fE57
0.0007403 ETH
138063382021-12-14 23:47:37938 days ago1639525657
0x35D38E9c...11d58fE57
0.0007403 ETH
138063382021-12-14 23:47:37938 days ago1639525657
0x35D38E9c...11d58fE57
0.00148061 ETH
136564952021-11-21 6:10:10962 days ago1637475010
0x35D38E9c...11d58fE57
0.07968004 ETH
136564952021-11-21 6:10:10962 days ago1637475010
0x35D38E9c...11d58fE57
0.07968004 ETH
136564952021-11-21 6:10:10962 days ago1637475010
0x35D38E9c...11d58fE57
0.15936009 ETH
136456052021-11-19 12:36:09963 days ago1637325369
0x35D38E9c...11d58fE57
0.00252095 ETH
136456052021-11-19 12:36:09963 days ago1637325369
0x35D38E9c...11d58fE57
0.00252095 ETH
136456052021-11-19 12:36:09963 days ago1637325369
0x35D38E9c...11d58fE57
0.0050419 ETH
136443562021-11-19 7:33:55964 days ago1637307235
0x35D38E9c...11d58fE57
0.00326235 ETH
136443562021-11-19 7:33:55964 days ago1637307235
0x35D38E9c...11d58fE57
0.00326235 ETH
136443562021-11-19 7:33:55964 days ago1637307235
0x35D38E9c...11d58fE57
0.0065247 ETH
136364262021-11-18 1:30:47965 days ago1637199047
0x35D38E9c...11d58fE57
0.00610952 ETH
136364262021-11-18 1:30:47965 days ago1637199047
0x35D38E9c...11d58fE57
0.00610952 ETH
136364262021-11-18 1:30:47965 days ago1637199047
0x35D38E9c...11d58fE57
0.01221904 ETH
136331812021-11-17 13:22:07965 days ago1637155327
0x35D38E9c...11d58fE57
0.00314795 ETH
136331812021-11-17 13:22:07965 days ago1637155327
0x35D38E9c...11d58fE57
0.00314795 ETH
136331812021-11-17 13:22:07965 days ago1637155327
0x35D38E9c...11d58fE57
0.0062959 ETH
136249832021-11-16 6:21:01967 days ago1637043661
0x35D38E9c...11d58fE57
0.00271558 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BadMorning

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-12
*/

/*

   ___    _      ___             ___  __      __ _____    __  ___ 
  / __\  /_\    /   \   /\/\    /___\/__\  /\ \ \\_   \/\ \ \/ _ \
 /__\// //_\\  / /\ /  /    \  //  // \// /  \/ / / /\/  \/ / /_\/
/ \/  \/  _  \/ /_//  / /\/\ \/ \_// _  \/ /\  /\/ /_/ /\  / /_\\ 
\_____/\_/ \_/___,'   \/    \/\___/\/ \_/\_\ \/\____/\_\ \/\____/ 
                                                                  
                                                                  
Socials:
TG: t.me/BadMorningETH

*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.4;

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 BadMorning 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 = 1000000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "BadMorning";
    string private constant _symbol = "BM";
    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;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x5D356A5E5A839E48999d3C0FF73B4dC589A490D0);
        _feeAddrWallet2 = payable(0x5D356A5E5A839E48999d3C0FF73B4dC589A490D0);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = 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 = 2;
        _feeAddr2 = 8;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 2;
                _feeAddr2 = 10;
            }
            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 sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    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 = 50000000000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(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() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        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":"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":"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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"}]

60806040526200001e6b033b2e3c9fd0803ce800000060001962000222565b6200002c90600019620001fc565b600855600f805462ffffff60a81b191690556b033b2e3c9fd0803ce80000006010553480156200005b57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c8054735d356a5e5a839e48999d3c0ff73b4dc589a490d06001600160a01b03199182168117909255600d8054909116909117905560085460026000620000e23390565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600560006200011c620001ed60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600c54821684528284208054861682179055600d549091168352912080549092161790556200018d3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce8000000604051620001df91815260200190565b60405180910390a362000245565b6000546001600160a01b031690565b6000828210156200021d57634e487b7160e01b600052601160045260246000fd5b500390565b6000826200024057634e487b7160e01b600052601260045260246000fd5b500690565b611a0f80620002556000396000f3fe6080604052600436106101025760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb146102c7578063b515566a146102e7578063c3c8cd8014610307578063c9567bf91461031c578063dd62ed3e1461033157600080fd5b806370a082311461023f578063715018a61461025f5780638da5cb5b1461027457806395d89b411461029c57600080fd5b8063273123b7116100d1578063273123b7146101cc578063313ce567146101ee5780635932ead11461020a5780636fc3eaec1461022a57600080fd5b806306fdde031461010e578063095ea7b31461015357806318160ddd1461018357806323b872dd146101ac57600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5060408051808201909152600a8152694261644d6f726e696e6760b01b60208201525b60405161014a91906117c6565b60405180910390f35b34801561015f57600080fd5b5061017361016e366004611666565b610377565b604051901515815260200161014a565b34801561018f57600080fd5b506b033b2e3c9fd0803ce80000005b60405190815260200161014a565b3480156101b857600080fd5b506101736101c7366004611625565b61038e565b3480156101d857600080fd5b506101ec6101e73660046115b2565b6103f7565b005b3480156101fa57600080fd5b506040516009815260200161014a565b34801561021657600080fd5b506101ec61022536600461175e565b61044b565b34801561023657600080fd5b506101ec610493565b34801561024b57600080fd5b5061019e61025a3660046115b2565b6104c0565b34801561026b57600080fd5b506101ec6104e2565b34801561028057600080fd5b506000546040516001600160a01b03909116815260200161014a565b3480156102a857600080fd5b50604080518082019091526002815261424d60f01b602082015261013d565b3480156102d357600080fd5b506101736102e2366004611666565b610556565b3480156102f357600080fd5b506101ec610302366004611692565b610563565b34801561031357600080fd5b506101ec6105f9565b34801561032857600080fd5b506101ec61062f565b34801561033d57600080fd5b5061019e61034c3660046115ec565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103843384846109f8565b5060015b92915050565b600061039b848484610b1c565b6103ed84336103e8856040518060600160405280602881526020016119b2602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610e69565b6109f8565b5060019392505050565b6000546001600160a01b0316331461042a5760405162461bcd60e51b81526004016104219061181b565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104755760405162461bcd60e51b81526004016104219061181b565b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b0316146104b357600080fd5b476104bd81610ea3565b50565b6001600160a01b03811660009081526002602052604081205461038890610f28565b6000546001600160a01b0316331461050c5760405162461bcd60e51b81526004016104219061181b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610384338484610b1c565b6000546001600160a01b0316331461058d5760405162461bcd60e51b81526004016104219061181b565b60005b81518110156105f5576001600660008484815181106105b1576105b1611962565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105ed81611931565b915050610590565b5050565b600c546001600160a01b0316336001600160a01b03161461061957600080fd5b6000610624306104c0565b90506104bd81610fac565b6000546001600160a01b031633146106595760405162461bcd60e51b81526004016104219061181b565b600f54600160a01b900460ff16156106b35760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610421565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106f330826b033b2e3c9fd0803ce80000006109f8565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561072c57600080fd5b505afa158015610740573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076491906115cf565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107ac57600080fd5b505afa1580156107c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e491906115cf565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561082c57600080fd5b505af1158015610840573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086491906115cf565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d7194730610894816104c0565b6000806108a96000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561090c57600080fd5b505af1158015610920573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109459190611798565b5050600f80546a295be96e6406697200000060105563ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156109c057600080fd5b505af11580156109d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f5919061177b565b6001600160a01b038316610a5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610421565b6001600160a01b038216610abb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610421565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610421565b6001600160a01b038216610be25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610421565b60008111610c445760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610421565b6002600a556008600b556000546001600160a01b03848116911614801590610c7a57506000546001600160a01b03838116911614155b15610e59576001600160a01b03831660009081526006602052604090205460ff16158015610cc157506001600160a01b03821660009081526006602052604090205460ff16155b610cca57600080fd5b600f546001600160a01b038481169116148015610cf55750600e546001600160a01b03838116911614155b8015610d1a57506001600160a01b03821660009081526005602052604090205460ff16155b8015610d2f5750600f54600160b81b900460ff165b15610d8c57601054811115610d4357600080fd5b6001600160a01b0382166000908152600760205260409020544211610d6757600080fd5b610d7242601e6118c1565b6001600160a01b0383166000908152600760205260409020555b600f546001600160a01b038381169116148015610db75750600e546001600160a01b03848116911614155b8015610ddc57506001600160a01b03831660009081526005602052604090205460ff16155b15610dec576002600a908155600b555b6000610df7306104c0565b600f54909150600160a81b900460ff16158015610e225750600f546001600160a01b03858116911614155b8015610e375750600f54600160b01b900460ff165b15610e5757610e4581610fac565b478015610e5557610e5547610ea3565b505b505b610e64838383611135565b505050565b60008184841115610e8d5760405162461bcd60e51b815260040161042191906117c6565b506000610e9a848661191a565b95945050505050565b600c546001600160a01b03166108fc610ebd836002611140565b6040518115909202916000818181858888f19350505050158015610ee5573d6000803e3d6000fd5b50600d546001600160a01b03166108fc610f00836002611140565b6040518115909202916000818181858888f193505050501580156105f5573d6000803e3d6000fd5b6000600854821115610f8f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610421565b6000610f99611182565b9050610fa58382611140565b9392505050565b600f805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610ff457610ff4611962565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561104857600080fd5b505afa15801561105c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108091906115cf565b8160018151811061109357611093611962565b6001600160a01b039283166020918202929092010152600e546110b991309116846109f8565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906110f2908590600090869030904290600401611850565b600060405180830381600087803b15801561110c57600080fd5b505af1158015611120573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b610e648383836111a5565b6000610fa583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061129c565b600080600061118f6112ca565b909250905061119e8282611140565b9250505090565b6000806000806000806111b787611312565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506111e9908761136f565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461121890866113b1565b6001600160a01b03891660009081526002602052604090205561123a81611410565b611244848361145a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161128991815260200190565b60405180910390a3505050505050505050565b600081836112bd5760405162461bcd60e51b815260040161042191906117c6565b506000610e9a84866118d9565b60085460009081906b033b2e3c9fd0803ce80000006112e98282611140565b821015611309575050600854926b033b2e3c9fd0803ce800000092509050565b90939092509050565b600080600080600080600080600061132f8a600a54600b5461147e565b925092509250600061133f611182565b905060008060006113528e8787876114d3565b919e509c509a509598509396509194505050505091939550919395565b6000610fa583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e69565b6000806113be83856118c1565b905083811015610fa55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610421565b600061141a611182565b905060006114288383611523565b3060009081526002602052604090205490915061144590826113b1565b30600090815260026020526040902055505050565b600854611467908361136f565b60085560095461147790826113b1565b6009555050565b600080808061149860646114928989611523565b90611140565b905060006114ab60646114928a89611523565b905060006114c3826114bd8b8661136f565b9061136f565b9992985090965090945050505050565b60008080806114e28886611523565b905060006114f08887611523565b905060006114fe8888611523565b90506000611510826114bd868661136f565b939b939a50919850919650505050505050565b60008261153257506000610388565b600061153e83856118fb565b90508261154b85836118d9565b14610fa55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610421565b80356115ad8161198e565b919050565b6000602082840312156115c457600080fd5b8135610fa58161198e565b6000602082840312156115e157600080fd5b8151610fa58161198e565b600080604083850312156115ff57600080fd5b823561160a8161198e565b9150602083013561161a8161198e565b809150509250929050565b60008060006060848603121561163a57600080fd5b83356116458161198e565b925060208401356116558161198e565b929592945050506040919091013590565b6000806040838503121561167957600080fd5b82356116848161198e565b946020939093013593505050565b600060208083850312156116a557600080fd5b823567ffffffffffffffff808211156116bd57600080fd5b818501915085601f8301126116d157600080fd5b8135818111156116e3576116e3611978565b8060051b604051601f19603f8301168101818110858211171561170857611708611978565b604052828152858101935084860182860187018a101561172757600080fd5b600095505b838610156117515761173d816115a2565b85526001959095019493860193860161172c565b5098975050505050505050565b60006020828403121561177057600080fd5b8135610fa5816119a3565b60006020828403121561178d57600080fd5b8151610fa5816119a3565b6000806000606084860312156117ad57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156117f3578581018301518582016040015282016117d7565b81811115611805576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118a05784516001600160a01b03168352938301939183019160010161187b565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156118d4576118d461194c565b500190565b6000826118f657634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119155761191561194c565b500290565b60008282101561192c5761192c61194c565b500390565b60006000198214156119455761194561194c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146104bd57600080fd5b80151581146104bd57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203b0f5aaebc0559075986355bf52107854bf75dca1b4033f12ba724a9a9de684f64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101025760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb146102c7578063b515566a146102e7578063c3c8cd8014610307578063c9567bf91461031c578063dd62ed3e1461033157600080fd5b806370a082311461023f578063715018a61461025f5780638da5cb5b1461027457806395d89b411461029c57600080fd5b8063273123b7116100d1578063273123b7146101cc578063313ce567146101ee5780635932ead11461020a5780636fc3eaec1461022a57600080fd5b806306fdde031461010e578063095ea7b31461015357806318160ddd1461018357806323b872dd146101ac57600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5060408051808201909152600a8152694261644d6f726e696e6760b01b60208201525b60405161014a91906117c6565b60405180910390f35b34801561015f57600080fd5b5061017361016e366004611666565b610377565b604051901515815260200161014a565b34801561018f57600080fd5b506b033b2e3c9fd0803ce80000005b60405190815260200161014a565b3480156101b857600080fd5b506101736101c7366004611625565b61038e565b3480156101d857600080fd5b506101ec6101e73660046115b2565b6103f7565b005b3480156101fa57600080fd5b506040516009815260200161014a565b34801561021657600080fd5b506101ec61022536600461175e565b61044b565b34801561023657600080fd5b506101ec610493565b34801561024b57600080fd5b5061019e61025a3660046115b2565b6104c0565b34801561026b57600080fd5b506101ec6104e2565b34801561028057600080fd5b506000546040516001600160a01b03909116815260200161014a565b3480156102a857600080fd5b50604080518082019091526002815261424d60f01b602082015261013d565b3480156102d357600080fd5b506101736102e2366004611666565b610556565b3480156102f357600080fd5b506101ec610302366004611692565b610563565b34801561031357600080fd5b506101ec6105f9565b34801561032857600080fd5b506101ec61062f565b34801561033d57600080fd5b5061019e61034c3660046115ec565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103843384846109f8565b5060015b92915050565b600061039b848484610b1c565b6103ed84336103e8856040518060600160405280602881526020016119b2602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610e69565b6109f8565b5060019392505050565b6000546001600160a01b0316331461042a5760405162461bcd60e51b81526004016104219061181b565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104755760405162461bcd60e51b81526004016104219061181b565b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b0316146104b357600080fd5b476104bd81610ea3565b50565b6001600160a01b03811660009081526002602052604081205461038890610f28565b6000546001600160a01b0316331461050c5760405162461bcd60e51b81526004016104219061181b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610384338484610b1c565b6000546001600160a01b0316331461058d5760405162461bcd60e51b81526004016104219061181b565b60005b81518110156105f5576001600660008484815181106105b1576105b1611962565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105ed81611931565b915050610590565b5050565b600c546001600160a01b0316336001600160a01b03161461061957600080fd5b6000610624306104c0565b90506104bd81610fac565b6000546001600160a01b031633146106595760405162461bcd60e51b81526004016104219061181b565b600f54600160a01b900460ff16156106b35760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610421565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106f330826b033b2e3c9fd0803ce80000006109f8565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561072c57600080fd5b505afa158015610740573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076491906115cf565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107ac57600080fd5b505afa1580156107c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e491906115cf565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561082c57600080fd5b505af1158015610840573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086491906115cf565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d7194730610894816104c0565b6000806108a96000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561090c57600080fd5b505af1158015610920573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109459190611798565b5050600f80546a295be96e6406697200000060105563ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156109c057600080fd5b505af11580156109d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f5919061177b565b6001600160a01b038316610a5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610421565b6001600160a01b038216610abb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610421565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610421565b6001600160a01b038216610be25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610421565b60008111610c445760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610421565b6002600a556008600b556000546001600160a01b03848116911614801590610c7a57506000546001600160a01b03838116911614155b15610e59576001600160a01b03831660009081526006602052604090205460ff16158015610cc157506001600160a01b03821660009081526006602052604090205460ff16155b610cca57600080fd5b600f546001600160a01b038481169116148015610cf55750600e546001600160a01b03838116911614155b8015610d1a57506001600160a01b03821660009081526005602052604090205460ff16155b8015610d2f5750600f54600160b81b900460ff165b15610d8c57601054811115610d4357600080fd5b6001600160a01b0382166000908152600760205260409020544211610d6757600080fd5b610d7242601e6118c1565b6001600160a01b0383166000908152600760205260409020555b600f546001600160a01b038381169116148015610db75750600e546001600160a01b03848116911614155b8015610ddc57506001600160a01b03831660009081526005602052604090205460ff16155b15610dec576002600a908155600b555b6000610df7306104c0565b600f54909150600160a81b900460ff16158015610e225750600f546001600160a01b03858116911614155b8015610e375750600f54600160b01b900460ff165b15610e5757610e4581610fac565b478015610e5557610e5547610ea3565b505b505b610e64838383611135565b505050565b60008184841115610e8d5760405162461bcd60e51b815260040161042191906117c6565b506000610e9a848661191a565b95945050505050565b600c546001600160a01b03166108fc610ebd836002611140565b6040518115909202916000818181858888f19350505050158015610ee5573d6000803e3d6000fd5b50600d546001600160a01b03166108fc610f00836002611140565b6040518115909202916000818181858888f193505050501580156105f5573d6000803e3d6000fd5b6000600854821115610f8f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610421565b6000610f99611182565b9050610fa58382611140565b9392505050565b600f805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610ff457610ff4611962565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561104857600080fd5b505afa15801561105c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108091906115cf565b8160018151811061109357611093611962565b6001600160a01b039283166020918202929092010152600e546110b991309116846109f8565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906110f2908590600090869030904290600401611850565b600060405180830381600087803b15801561110c57600080fd5b505af1158015611120573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b610e648383836111a5565b6000610fa583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061129c565b600080600061118f6112ca565b909250905061119e8282611140565b9250505090565b6000806000806000806111b787611312565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506111e9908761136f565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461121890866113b1565b6001600160a01b03891660009081526002602052604090205561123a81611410565b611244848361145a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161128991815260200190565b60405180910390a3505050505050505050565b600081836112bd5760405162461bcd60e51b815260040161042191906117c6565b506000610e9a84866118d9565b60085460009081906b033b2e3c9fd0803ce80000006112e98282611140565b821015611309575050600854926b033b2e3c9fd0803ce800000092509050565b90939092509050565b600080600080600080600080600061132f8a600a54600b5461147e565b925092509250600061133f611182565b905060008060006113528e8787876114d3565b919e509c509a509598509396509194505050505091939550919395565b6000610fa583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e69565b6000806113be83856118c1565b905083811015610fa55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610421565b600061141a611182565b905060006114288383611523565b3060009081526002602052604090205490915061144590826113b1565b30600090815260026020526040902055505050565b600854611467908361136f565b60085560095461147790826113b1565b6009555050565b600080808061149860646114928989611523565b90611140565b905060006114ab60646114928a89611523565b905060006114c3826114bd8b8661136f565b9061136f565b9992985090965090945050505050565b60008080806114e28886611523565b905060006114f08887611523565b905060006114fe8888611523565b90506000611510826114bd868661136f565b939b939a50919850919650505050505050565b60008261153257506000610388565b600061153e83856118fb565b90508261154b85836118d9565b14610fa55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610421565b80356115ad8161198e565b919050565b6000602082840312156115c457600080fd5b8135610fa58161198e565b6000602082840312156115e157600080fd5b8151610fa58161198e565b600080604083850312156115ff57600080fd5b823561160a8161198e565b9150602083013561161a8161198e565b809150509250929050565b60008060006060848603121561163a57600080fd5b83356116458161198e565b925060208401356116558161198e565b929592945050506040919091013590565b6000806040838503121561167957600080fd5b82356116848161198e565b946020939093013593505050565b600060208083850312156116a557600080fd5b823567ffffffffffffffff808211156116bd57600080fd5b818501915085601f8301126116d157600080fd5b8135818111156116e3576116e3611978565b8060051b604051601f19603f8301168101818110858211171561170857611708611978565b604052828152858101935084860182860187018a101561172757600080fd5b600095505b838610156117515761173d816115a2565b85526001959095019493860193860161172c565b5098975050505050505050565b60006020828403121561177057600080fd5b8135610fa5816119a3565b60006020828403121561178d57600080fd5b8151610fa5816119a3565b6000806000606084860312156117ad57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156117f3578581018301518582016040015282016117d7565b81811115611805576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118a05784516001600160a01b03168352938301939183019160010161187b565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156118d4576118d461194c565b500190565b6000826118f657634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119155761191561194c565b500290565b60008282101561192c5761192c61194c565b500390565b60006000198214156119455761194561194c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146104bd57600080fd5b80151581146104bd57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203b0f5aaebc0559075986355bf52107854bf75dca1b4033f12ba724a9a9de684f64736f6c63430008070033

Deployed Bytecode Sourcemap

4041:10332:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5897:83;;;;;;;;;;-1:-1:-1;5967:5:0;;;;;;;;;;;;-1:-1:-1;;;5967:5:0;;;;5897:83;;;;;;;:::i;:::-;;;;;;;;6749:161;;;;;;;;;;-1:-1:-1;6749:161:0;;;;;:::i;:::-;;:::i;:::-;;;5352:14:1;;5345:22;5327:41;;5315:2;5300:18;6749:161:0;5187:187:1;6174:95:0;;;;;;;;;;-1:-1:-1;4544:27:0;6174:95;;;10037:25:1;;;10025:2;10010:18;6174:95:0;9891:177:1;6918:313:0;;;;;;;;;;-1:-1:-1;6918:313:0;;;;;:::i;:::-;;:::i;11100:88::-;;;;;;;;;;-1:-1:-1;11100:88:0;;;;;:::i;:::-;;:::i;:::-;;6083:83;;;;;;;;;;-1:-1:-1;6083:83:0;;4966:1;11200:36:1;;11188:2;11173:18;6083:83:0;11058:184:1;7239:103:0;;;;;;;;;;-1:-1:-1;7239:103:0;;;;;:::i;:::-;;:::i;12477:194::-;;;;;;;;;;;;;:::i;6277:138::-;;;;;;;;;;-1:-1:-1;6277:138:0;;;;;:::i;:::-;;:::i;3120:148::-;;;;;;;;;;;;;:::i;2906:79::-;;;;;;;;;;-1:-1:-1;2944:7:0;2971:6;2906:79;;-1:-1:-1;;;;;2971:6:0;;;3925:51:1;;3913:2;3898:18;2906:79:0;3779:203:1;5988:87:0;;;;;;;;;;-1:-1:-1;6060:7:0;;;;;;;;;;;;-1:-1:-1;;;6060:7:0;;;;5988:87;;6423:167;;;;;;;;;;-1:-1:-1;6423:167:0;;;;;:::i;:::-;;:::i;10924:164::-;;;;;;;;;;-1:-1:-1;10924:164:0;;;;;:::i;:::-;;:::i;12270:195::-;;;;;;;;;;;;;:::i;10090:822::-;;;;;;;;;;;;;:::i;6598:143::-;;;;;;;;;;-1:-1:-1;6598:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6706:18:0;;;6679:7;6706:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6598:143;6749:161;6824:4;6841:39;704:10;6864:7;6873:6;6841:8;:39::i;:::-;-1:-1:-1;6898:4:0;6749:161;;;;;:::o;6918:313::-;7016:4;7033:36;7043:6;7051:9;7062:6;7033:9;:36::i;:::-;7080:121;7089:6;704:10;7111:89;7149:6;7111:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7111:19:0;;;;;;:11;:19;;;;;;;;704:10;7111:33;;;;;;;;;;:37;:89::i;:::-;7080:8;:121::i;:::-;-1:-1:-1;7219:4:0;6918:313;;;;;:::o;11100:88::-;3033:6;;-1:-1:-1;;;;;3033:6:0;704:10;3033:22;3025:67;;;;-1:-1:-1;;;3025:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;11160:12:0::1;11175:5;11160:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;11160:20:0::1;::::0;;11100:88::o;7239:103::-;3033:6;;-1:-1:-1;;;;;3033:6:0;704:10;3033:22;3025:67;;;;-1:-1:-1;;;3025:67:0;;;;;;;:::i;:::-;7311:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7311:23:0::1;-1:-1:-1::0;;;;7311:23:0;;::::1;::::0;;;::::1;::::0;;7239:103::o;12477:194::-;12543:15;;-1:-1:-1;;;;;12543:15:0;704:10;-1:-1:-1;;;;;12527:31:0;;12519:40;;;;;;12599:21;12631:32;12599:21;12631:12;:32::i;:::-;12508:163;12477:194::o;6277:138::-;-1:-1:-1;;;;;6390:16:0;;6343:7;6390:16;;;:7;:16;;;;;;6370:37;;:19;:37::i;3120:148::-;3033:6;;-1:-1:-1;;;;;3033:6:0;704:10;3033:22;3025:67;;;;-1:-1:-1;;;3025:67:0;;;;;;;:::i;:::-;3227:1:::1;3211:6:::0;;3190:40:::1;::::0;-1:-1:-1;;;;;3211:6:0;;::::1;::::0;3190:40:::1;::::0;3227:1;;3190:40:::1;3258:1;3241:19:::0;;-1:-1:-1;;;;;;3241:19:0::1;::::0;;3120:148::o;6423:167::-;6501:4;6518:42;704:10;6542:9;6553:6;6518:9;:42::i;10924:164::-;3033:6;;-1:-1:-1;;;;;3033:6:0;704:10;3033:22;3025:67;;;;-1:-1:-1;;;3025:67:0;;;;;;;:::i;:::-;10998:6:::1;10993:88;11014:5;:12;11010:1;:16;10993:88;;;11065:4;11048;:14;11053:5;11059:1;11053:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11048:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11048:14:0;:21;;-1:-1:-1;;11048:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11028:3;::::1;::::0;::::1;:::i;:::-;;;;10993:88;;;;10924:164:::0;:::o;12270:195::-;12336:15;;-1:-1:-1;;;;;12336:15:0;704:10;-1:-1:-1;;;;;12320:31:0;;12312:40;;;;;;12363:23;12389:24;12407:4;12389:9;:24::i;:::-;12363:50;;12424:33;12441:15;12424:16;:33::i;10090:822::-;3033:6;;-1:-1:-1;;;;;3033:6:0;704:10;3033:22;3025:67;;;;-1:-1:-1;;;3025:67:0;;;;;;;:::i;:::-;10154:11:::1;::::0;-1:-1:-1;;;10154:11:0;::::1;;;10153:12;10145:47;;;::::0;-1:-1:-1;;;10145:47:0;;9741:2:1;10145:47:0::1;::::0;::::1;9723:21:1::0;9780:2;9760:18;;;9753:30;9819:25;9799:18;;;9792:53;9862:18;;10145:47:0::1;9539:347:1::0;10145:47:0::1;10314:15;:34:::0;;-1:-1:-1;;;;;;10314:34:0::1;10260:42;10314:34:::0;;::::1;::::0;;;10359:58:::1;10376:4;10260:42:::0;4544:27:::1;10359:8;:58::i;:::-;10462:16;-1:-1:-1::0;;;;;10462:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10444:56:0::1;;10509:4;10516:16;-1:-1:-1::0;;;;;10516:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10444:96;::::0;-1:-1:-1;;;;;;10444:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4217:15:1;;;10444:96:0::1;::::0;::::1;4199:34:1::0;4269:15;;4249:18;;;4242:43;4134:18;;10444:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10428:13;:112:::0;;-1:-1:-1;;;;;;10428:112:0::1;-1:-1:-1::0;;;;;10428:112:0;;::::1;;::::0;;10551:15:::1;::::0;::::1;:31;10590:21;10621:4;10627:24;10621:4:::0;10627:9:::1;:24::i;:::-;10652:1;10654::::0;10656:7:::1;2944::::0;2971:6;-1:-1:-1;;;;;2971:6:0;;2906:79;10656:7:::1;10551:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10551:129:0;;;-1:-1:-1;;;;;4934:15:1;;;10551:129:0::1;::::0;::::1;4916:34:1::0;4966:18;;;4959:34;;;;5009:18;;;5002:34;;;;5052:18;;;5045:34;5116:15;;;5095:19;;;5088:44;10664:15:0::1;5148:19:1::0;;;5141:35;4850:19;;10551:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10691:11:0::1;:18:::0;;10768:25:::1;10753:12;:40:::0;-1:-1:-1;;;;10804:18:0;;-1:-1:-1;;;10804:18:0;;;;10871:15:::1;::::0;10833:71:::1;::::0;-1:-1:-1;;;10833:71:0;;-1:-1:-1;;;;;10871:15:0;;::::1;10833:71;::::0;::::1;4470:51:1::0;-1:-1:-1;;4537:18:1;;;4530:34;10840:13:0;;;-1:-1:-1;10833:29:0::1;::::0;4443:18:1;;10833:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7612:335::-:0;-1:-1:-1;;;;;7705:19:0;;7697:68;;;;-1:-1:-1;;;7697:68:0;;9336:2:1;7697:68:0;;;9318:21:1;9375:2;9355:18;;;9348:30;9414:34;9394:18;;;9387:62;-1:-1:-1;;;9465:18:1;;;9458:34;9509:19;;7697:68:0;9134:400:1;7697:68:0;-1:-1:-1;;;;;7784:21:0;;7776:68;;;;-1:-1:-1;;;7776:68:0;;6998:2:1;7776:68:0;;;6980:21:1;7037:2;7017:18;;;7010:30;7076:34;7056:18;;;7049:62;-1:-1:-1;;;7127:18:1;;;7120:32;7169:19;;7776:68:0;6796:398:1;7776:68:0;-1:-1:-1;;;;;7855:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7907:32;;10037:25:1;;;7907:32:0;;10010:18:1;7907:32:0;;;;;;;7612:335;;;:::o;7955:1462::-;-1:-1:-1;;;;;8043:18:0;;8035:68;;;;-1:-1:-1;;;8035:68:0;;8930:2:1;8035:68:0;;;8912:21:1;8969:2;8949:18;;;8942:30;9008:34;8988:18;;;8981:62;-1:-1:-1;;;9059:18:1;;;9052:35;9104:19;;8035:68:0;8728:401:1;8035:68:0;-1:-1:-1;;;;;8122:16:0;;8114:64;;;;-1:-1:-1;;;8114:64:0;;6183:2:1;8114:64:0;;;6165:21:1;6222:2;6202:18;;;6195:30;6261:34;6241:18;;;6234:62;-1:-1:-1;;;6312:18:1;;;6305:33;6355:19;;8114:64:0;5981:399:1;8114:64:0;8206:1;8197:6;:10;8189:64;;;;-1:-1:-1;;;8189:64:0;;8520:2:1;8189:64:0;;;8502:21:1;8559:2;8539:18;;;8532:30;8598:34;8578:18;;;8571:62;-1:-1:-1;;;8649:18:1;;;8642:39;8698:19;;8189:64:0;8318:405:1;8189:64:0;8276:1;8264:9;:13;8300:1;8288:9;:13;-1:-1:-1;2971:6:0;-1:-1:-1;;;;;8316:15:0;;;2971:6;;8316:15;;;;:32;;-1:-1:-1;2944:7:0;2971:6;-1:-1:-1;;;;;8335:13:0;;;2971:6;;8335:13;;8316:32;8312:1053;;;-1:-1:-1;;;;;8374:10:0;;;;;;:4;:10;;;;;;;;8373:11;:24;;;;-1:-1:-1;;;;;;8389:8:0;;;;;;:4;:8;;;;;;;;8388:9;8373:24;8365:33;;;;;;8425:13;;-1:-1:-1;;;;;8417:21:0;;;8425:13;;8417:21;:55;;;;-1:-1:-1;8456:15:0;;-1:-1:-1;;;;;8442:30:0;;;8456:15;;8442:30;;8417:55;:83;;;;-1:-1:-1;;;;;;8478:22:0;;;;;;:18;:22;;;;;;;;8476:24;8417:83;:102;;;;-1:-1:-1;8504:15:0;;-1:-1:-1;;;8504:15:0;;;;8417:102;8413:325;;;8587:12;;8577:6;:22;;8569:31;;;;;;-1:-1:-1;;;;;8627:12:0;;;;;;:8;:12;;;;;;8642:15;-1:-1:-1;8619:39:0;;;;;;8692:30;:15;8711:10;8692:30;:::i;:::-;-1:-1:-1;;;;;8677:12:0;;;;;;:8;:12;;;;;:45;8413:325;8790:13;;-1:-1:-1;;;;;8784:19:0;;;8790:13;;8784:19;:55;;;;-1:-1:-1;8823:15:0;;-1:-1:-1;;;;;8807:32:0;;;8823:15;;8807:32;;8784:55;:85;;;;-1:-1:-1;;;;;;8845:24:0;;;;;;:18;:24;;;;;;;;8843:26;8784:85;8780:172;;;8902:1;8890:9;:13;;;8922:9;:14;8780:172;8966:28;8997:24;9015:4;8997:9;:24::i;:::-;9041:6;;8966:55;;-1:-1:-1;;;;9041:6:0;;;;9040:7;:32;;;;-1:-1:-1;9059:13:0;;-1:-1:-1;;;;;9051:21:0;;;9059:13;;9051:21;;9040:32;:47;;;;-1:-1:-1;9076:11:0;;-1:-1:-1;;;9076:11:0;;;;9040:47;9036:318;;;9108:38;9125:20;9108:16;:38::i;:::-;9194:21;9237:22;;9234:105;;9284:35;9297:21;9284:12;:35::i;:::-;9089:265;9036:318;8350:1015;8312:1053;9379:30;9394:4;9399:2;9402:6;9379:14;:30::i;:::-;7955:1462;;;:::o;1761:190::-;1847:7;1883:12;1875:6;;;;1867:29;;;;-1:-1:-1;;;1867:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1907:9:0;1919:5;1923:1;1919;:5;:::i;:::-;1907:17;1761:190;-1:-1:-1;;;;;1761:190:0:o;9924:154::-;9981:15;;-1:-1:-1;;;;;9981:15:0;:39;10006:13;:6;10017:1;10006:10;:13::i;:::-;9981:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10031:15:0;;-1:-1:-1;;;;;10031:15:0;:39;10056:13;:6;10067:1;10056:10;:13::i;:::-;10031:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7350:254;7417:7;7456;;7445;:18;;7437:73;;;;-1:-1:-1;;;7437:73:0;;6587:2:1;7437:73:0;;;6569:21:1;6626:2;6606:18;;;6599:30;6665:34;6645:18;;;6638:62;-1:-1:-1;;;6716:18:1;;;6709:40;6766:19;;7437:73:0;6385:406:1;7437:73:0;7521:19;7544:10;:8;:10::i;:::-;7521:33;-1:-1:-1;7572:24:0;:7;7521:33;7572:11;:24::i;:::-;7565:31;7350:254;-1:-1:-1;;;7350:254:0:o;9425:483::-;5339:6;:13;;-1:-1:-1;;;;5339:13:0;-1:-1:-1;;;5339:13:0;;;9527:16:::1;::::0;;9541:1:::1;9527:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9527:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9527:16:0::1;9503:40;;9572:4;9554;9559:1;9554:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9554:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9598:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9598:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9554:7;;9598:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9588:4;9593:1;9588:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9588:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9663:15:::1;::::0;9631:62:::1;::::0;9648:4:::1;::::0;9663:15:::1;9681:11:::0;9631:8:::1;:62::i;:::-;9704:15;::::0;:196:::1;::::0;-1:-1:-1;;;9704:196:0;;-1:-1:-1;;;;;9704:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9785:11;;9704:15:::1;::::0;9827:4;;9854::::1;::::0;9874:15:::1;::::0;9704:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5375:6:0;:14;;-1:-1:-1;;;;5375:14:0;;;-1:-1:-1;;;;9425:483:0:o;11204:146::-;11298:44;11316:6;11324:9;11335:6;11298:17;:44::i;2213:132::-;2271:7;2298:39;2302:1;2305;2298:39;;;;;;;;;;;;;;;;;:3;:39::i;13937:163::-;13978:7;13999:15;14016;14035:19;:17;:19::i;:::-;13998:56;;-1:-1:-1;13998:56:0;-1:-1:-1;14072:20:0;13998:56;;14072:11;:20::i;:::-;14065:27;;;;13937:163;:::o;11358:488::-;11457:15;11474:23;11499:12;11513:23;11538:12;11552:13;11569:19;11580:7;11569:10;:19::i;:::-;-1:-1:-1;;;;;11617:15:0;;;;;;:7;:15;;;;;;11456:132;;-1:-1:-1;11456:132:0;;-1:-1:-1;11456:132:0;;-1:-1:-1;11456:132:0;-1:-1:-1;11456:132:0;-1:-1:-1;11456:132:0;-1:-1:-1;11617:28:0;;11456:132;11617:19;:28::i;:::-;-1:-1:-1;;;;;11599:15:0;;;;;;;:7;:15;;;;;;:46;;;;11677:18;;;;;;;:39;;11700:15;11677:22;:39::i;:::-;-1:-1:-1;;;;;11656:18:0;;;;;;:7;:18;;;;;:60;11728:16;11738:5;11728:9;:16::i;:::-;11755:23;11767:4;11773;11755:11;:23::i;:::-;11811:9;-1:-1:-1;;;;;11794:44:0;11803:6;-1:-1:-1;;;;;11794:44:0;;11822:15;11794:44;;;;10037:25:1;;10025:2;10010:18;;9891:177;11794:44:0;;;;;;;;11445:401;;;;;;11358:488;;;:::o;2353:189::-;2439:7;2474:12;2467:5;2459:28;;;;-1:-1:-1;;;2459:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2498:9:0;2510:5;2514:1;2510;:5;:::i;14108:262::-;14205:7;;14158;;;;4544:27;14279:20;14205:7;4544:27;14279:11;:20::i;:::-;14269:7;:30;14265:61;;;-1:-1:-1;;14309:7:0;;;4544:27;;-1:-1:-1;14108:262:0;-1:-1:-1;14108:262:0:o;14265:61::-;14345:7;;14354;;-1:-1:-1;14108:262:0;-1:-1:-1;14108:262:0:o;12685:471::-;12744:7;12753;12762;12771;12780;12789;12810:23;12835:12;12849:13;12866:42;12878:7;12887:9;;12898;;12866:11;:42::i;:::-;12809:99;;;;;;12919:19;12942:10;:8;:10::i;:::-;12919:33;;12964:15;12981:23;13006:12;13022:46;13034:7;13043:4;13049:5;13056:11;13022;:46::i;:::-;12963:105;;-1:-1:-1;12963:105:0;-1:-1:-1;12963:105:0;-1:-1:-1;13119:15:0;;-1:-1:-1;13136:4:0;;-1:-1:-1;13142:5:0;;-1:-1:-1;;;;;12685:471:0;;;;;;;:::o;1617:136::-;1675:7;1702:43;1706:1;1709;1702:43;;;;;;;;;;;;;;;;;:3;:43::i;1430:179::-;1488:7;;1520:5;1524:1;1520;:5;:::i;:::-;1508:17;;1549:1;1544;:6;;1536:46;;;;-1:-1:-1;;;1536:46:0;;7401:2:1;1536:46:0;;;7383:21:1;7440:2;7420:18;;;7413:30;7479:29;7459:18;;;7452:57;7526:18;;1536:46:0;7199:351:1;11854:212:0;11907:19;11930:10;:8;:10::i;:::-;11907:33;-1:-1:-1;11951:13:0;11967:22;:5;11907:33;11967:9;:22::i;:::-;12041:4;12025:22;;;;:7;:22;;;;;;11951:38;;-1:-1:-1;12025:33:0;;11951:38;12025:26;:33::i;:::-;12016:4;12000:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11854:212:0:o;12074:147::-;12152:7;;:17;;12164:4;12152:11;:17::i;:::-;12142:7;:27;12193:10;;:20;;12208:4;12193:14;:20::i;:::-;12180:10;:33;-1:-1:-1;;12074:147:0:o;13164:351::-;13257:7;;;;13310:28;13334:3;13310:19;:7;13322:6;13310:11;:19::i;:::-;:23;;:28::i;:::-;13295:43;-1:-1:-1;13349:13:0;13365:29;13390:3;13365:20;:7;13377;13365:11;:20::i;:29::-;13349:45;-1:-1:-1;13405:23:0;13431:28;13349:45;13431:17;:7;13443:4;13431:11;:17::i;:::-;:21;;:28::i;:::-;13405:54;13495:4;;-1:-1:-1;13501:5:0;;-1:-1:-1;13164:351:0;;-1:-1:-1;;;;;13164:351:0:o;13523:409::-;13633:7;;;;13689:24;:7;13701:11;13689;:24::i;:::-;13671:42;-1:-1:-1;13724:12:0;13739:21;:4;13748:11;13739:8;:21::i;:::-;13724:36;-1:-1:-1;13771:13:0;13787:22;:5;13797:11;13787:9;:22::i;:::-;13771:38;-1:-1:-1;13820:23:0;13846:28;13771:38;13846:17;:7;13858:4;13846:11;:17::i;:28::-;13893:7;;;;-1:-1:-1;13919:4:0;;-1:-1:-1;13523:409:0;;-1:-1:-1;;;;;;;13523:409:0:o;1959:246::-;2017:7;2041:6;2037:47;;-1:-1:-1;2071:1:0;2064:8;;2037:47;2094:9;2106:5;2110:1;2106;:5;:::i;:::-;2094:17;-1:-1:-1;2139:1:0;2130:5;2134:1;2094:17;2130:5;:::i;:::-;:10;2122:56;;;;-1:-1:-1;;;2122:56:0;;7757:2:1;2122:56:0;;;7739:21:1;7796:2;7776:18;;;7769:30;7835:34;7815:18;;;7808:62;-1:-1:-1;;;7886:18:1;;;7879:31;7927:19;;2122:56:0;7555:397:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;661:388;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:52;;;1216:1;1213;1206:12;1168:52;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1054:456;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1054:456::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:52;;;1660:1;1657;1650:12;1612:52;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1515:315:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:34;;;2135:1;2132;2125:12;2105:34;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:55;;2240:1;2237;2230:12;2189:55;2276:2;2263:16;2298:2;2294;2291:10;2288:36;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:72;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:53:1;;;2735:1;2732;2725:12;2686:53;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1835:1132;-1:-1:-1;;;;;;;;1835:1132:1:o;2972:241::-;3028:6;3081:2;3069:9;3060:7;3056:23;3052:32;3049:52;;;3097:1;3094;3087:12;3049:52;3136:9;3123:23;3155:28;3177:5;3155:28;:::i;3218:245::-;3285:6;3338:2;3326:9;3317:7;3313:23;3309:32;3306:52;;;3354:1;3351;3344:12;3306:52;3386:9;3380:16;3405:28;3427:5;3405:28;:::i;3468:306::-;3556:6;3564;3572;3625:2;3613:9;3604:7;3600:23;3596:32;3593:52;;;3641:1;3638;3631:12;3593:52;3670:9;3664:16;3654:26;;3720:2;3709:9;3705:18;3699:25;3689:35;;3764:2;3753:9;3749:18;3743:25;3733:35;;3468:306;;;;;:::o;5379:597::-;5491:4;5520:2;5549;5538:9;5531:21;5581:6;5575:13;5624:6;5619:2;5608:9;5604:18;5597:34;5649:1;5659:140;5673:6;5670:1;5667:13;5659:140;;;5768:14;;;5764:23;;5758:30;5734:17;;;5753:2;5730:26;5723:66;5688:10;;5659:140;;;5817:6;5814:1;5811:13;5808:91;;;5887:1;5882:2;5873:6;5862:9;5858:22;5854:31;5847:42;5808:91;-1:-1:-1;5960:2:1;5939:15;-1:-1:-1;;5935:29:1;5920:45;;;;5967:2;5916:54;;5379:597;-1:-1:-1;;;5379:597:1:o;7957:356::-;8159:2;8141:21;;;8178:18;;;8171:30;8237:34;8232:2;8217:18;;8210:62;8304:2;8289:18;;7957:356::o;10073:980::-;10335:4;10383:3;10372:9;10368:19;10414:6;10403:9;10396:25;10440:2;10478:6;10473:2;10462:9;10458:18;10451:34;10521:3;10516:2;10505:9;10501:18;10494:31;10545:6;10580;10574:13;10611:6;10603;10596:22;10649:3;10638:9;10634:19;10627:26;;10688:2;10680:6;10676:15;10662:29;;10709:1;10719:195;10733:6;10730:1;10727:13;10719:195;;;10798:13;;-1:-1:-1;;;;;10794:39:1;10782:52;;10889:15;;;;10854:12;;;;10830:1;10748:9;10719:195;;;-1:-1:-1;;;;;;;10970:32:1;;;;10965:2;10950:18;;10943:60;-1:-1:-1;;;11034:3:1;11019:19;11012:35;10931:3;10073:980;-1:-1:-1;;;10073:980:1:o;11247:128::-;11287:3;11318:1;11314:6;11311:1;11308:13;11305:39;;;11324:18;;:::i;:::-;-1:-1:-1;11360:9:1;;11247:128::o;11380:217::-;11420:1;11446;11436:132;;11490:10;11485:3;11481:20;11478:1;11471:31;11525:4;11522:1;11515:15;11553:4;11550:1;11543:15;11436:132;-1:-1:-1;11582:9:1;;11380:217::o;11602:168::-;11642:7;11708:1;11704;11700:6;11696:14;11693:1;11690:21;11685:1;11678:9;11671:17;11667:45;11664:71;;;11715:18;;:::i;:::-;-1:-1:-1;11755:9:1;;11602:168::o;11775:125::-;11815:4;11843:1;11840;11837:8;11834:34;;;11848:18;;:::i;:::-;-1:-1:-1;11885:9:1;;11775:125::o;11905:135::-;11944:3;-1:-1:-1;;11965:17:1;;11962:43;;;11985:18;;:::i;:::-;-1:-1:-1;12032:1:1;12021:13;;11905:135::o;12045:127::-;12106:10;12101:3;12097:20;12094:1;12087:31;12137:4;12134:1;12127:15;12161:4;12158:1;12151:15;12177:127;12238:10;12233:3;12229:20;12226:1;12219:31;12269:4;12266:1;12259:15;12293:4;12290:1;12283:15;12309:127;12370:10;12365:3;12361:20;12358:1;12351:31;12401:4;12398:1;12391:15;12425:4;12422:1;12415:15;12441:131;-1:-1:-1;;;;;12516:31:1;;12506:42;;12496:70;;12562:1;12559;12552:12;12577:118;12663:5;12656:13;12649:21;12642:5;12639:32;12629:60;;12685:1;12682;12675:12

Swarm Source

ipfs://3b0f5aaebc0559075986355bf52107854bf75dca1b4033f12ba724a9a9de684f

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.