ETH Price: $3,729.09 (+3.83%)

Contract

0xE68e1F3096BcD9653bB97A5b4A5D3C8f472D92ED
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $3,729.09/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve170175342023-04-10 11:34:11600 days ago1681126451IN
0xE68e1F30...f472D92ED
0 ETH0.0009754521
Approve170113502023-04-09 14:32:23601 days ago1681050743IN
0xE68e1F30...f472D92ED
0 ETH0.0005132221.2376198
Approve170101752023-04-09 10:32:47601 days ago1681036367IN
0xE68e1F30...f472D92ED
0 ETH0.000536522.2009725
Approve169991492023-04-07 21:05:11603 days ago1680901511IN
0xE68e1F30...f472D92ED
0 ETH0.0010295422.13609875
Approve169439402023-03-31 1:32:59610 days ago1680226379IN
0xE68e1F30...f472D92ED
0 ETH0.001046722.53399868
Approve169281062023-03-28 20:08:47613 days ago1680034127IN
0xE68e1F30...f472D92ED
0 ETH0.0010214142.26674883
Approve169240592023-03-28 6:27:23613 days ago1679984843IN
0xE68e1F30...f472D92ED
0 ETH0.0016115734.65
Approve168835612023-03-22 13:55:11619 days ago1679493311IN
0xE68e1F30...f472D92ED
0 ETH0.0004539518.78469935
Approve168810452023-03-22 5:25:59619 days ago1679462759IN
0xE68e1F30...f472D92ED
0 ETH0.0005192211.2507936
Approve168772422023-03-21 16:36:59620 days ago1679416619IN
0xE68e1F30...f472D92ED
0 ETH0.0015166132.6503962
Approve168769952023-03-21 15:46:47620 days ago1679413607IN
0xE68e1F30...f472D92ED
0 ETH0.0012889527.71354386
Approve168570582023-03-18 20:36:35623 days ago1679171795IN
0xE68e1F30...f472D92ED
0 ETH0.0006361513.69549411
Approve168525622023-03-18 5:28:11623 days ago1679117291IN
0xE68e1F30...f472D92ED
0 ETH0.0006798614.61754896
Approve168489212023-03-17 17:10:23624 days ago1679073023IN
0xE68e1F30...f472D92ED
0 ETH0.0005799824
Approve168477512023-03-17 13:12:47624 days ago1679058767IN
0xE68e1F30...f472D92ED
0 ETH0.0012056425.95576938
Approve168459852023-03-17 7:14:47624 days ago1679037287IN
0xE68e1F30...f472D92ED
0 ETH0.000877918.9
Approve168448192023-03-17 3:19:35624 days ago1679023175IN
0xE68e1F30...f472D92ED
0 ETH0.0009582420.62952744
Approve168393842023-03-16 9:00:47625 days ago1678957247IN
0xE68e1F30...f472D92ED
0 ETH0.0009754521
Approve168390072023-03-16 7:43:47625 days ago1678952627IN
0xE68e1F30...f472D92ED
0 ETH0.0007211815.50606633
Transfer168387902023-03-16 6:59:35625 days ago1678949975IN
0xE68e1F30...f472D92ED
0 ETH0.0028601655
Approve168381712023-03-16 4:55:23625 days ago1678942523IN
0xE68e1F30...f472D92ED
0 ETH0.000830217.85
Approve168377292023-03-16 3:25:35625 days ago1678937135IN
0xE68e1F30...f472D92ED
0 ETH0.0008588718.49025839
Approve168376472023-03-16 3:09:11625 days ago1678936151IN
0xE68e1F30...f472D92ED
0 ETH0.0009261519.93876988
Approve168367502023-03-16 0:07:59626 days ago1678925279IN
0xE68e1F30...f472D92ED
0 ETH0.0011528424.81899426
Approve168355302023-03-15 19:59:59626 days ago1678910399IN
0xE68e1F30...f472D92ED
0 ETH0.001106323.81720743
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
173489412023-05-27 7:34:47553 days ago1685172887
0xE68e1F30...f472D92ED
0.00016131 ETH
173489412023-05-27 7:34:47553 days ago1685172887
0xE68e1F30...f472D92ED
0.00161318 ETH
173489412023-05-27 7:34:47553 days ago1685172887
0xE68e1F30...f472D92ED
0.0017745 ETH
170415422023-04-13 23:14:35597 days ago1681427675
0xE68e1F30...f472D92ED
0.00027164 ETH
170415422023-04-13 23:14:35597 days ago1681427675
0xE68e1F30...f472D92ED
0.00271643 ETH
170415422023-04-13 23:14:35597 days ago1681427675
0xE68e1F30...f472D92ED
0.00298808 ETH
170038252023-04-08 12:58:11602 days ago1680958691
0xE68e1F30...f472D92ED
0.00004422 ETH
170038252023-04-08 12:58:11602 days ago1680958691
0xE68e1F30...f472D92ED
0.00044223 ETH
170038252023-04-08 12:58:11602 days ago1680958691
0xE68e1F30...f472D92ED
0.00048646 ETH
169582642023-04-02 1:50:23608 days ago1680400223
0xE68e1F30...f472D92ED
0.00008979 ETH
169582642023-04-02 1:50:23608 days ago1680400223
0xE68e1F30...f472D92ED
0.00089796 ETH
169582642023-04-02 1:50:23608 days ago1680400223
0xE68e1F30...f472D92ED
0.00098776 ETH
169182912023-03-27 11:02:23614 days ago1679914943
0xE68e1F30...f472D92ED
0.00003307 ETH
169182912023-03-27 11:02:23614 days ago1679914943
0xE68e1F30...f472D92ED
0.00033077 ETH
169182912023-03-27 11:02:23614 days ago1679914943
0xE68e1F30...f472D92ED
0.00036385 ETH
169089952023-03-26 3:42:11615 days ago1679802131
0xE68e1F30...f472D92ED
0.00006964 ETH
169089952023-03-26 3:42:11615 days ago1679802131
0xE68e1F30...f472D92ED
0.00069644 ETH
169089952023-03-26 3:42:11615 days ago1679802131
0xE68e1F30...f472D92ED
0.00076609 ETH
168938732023-03-24 0:43:47617 days ago1679618627
0xE68e1F30...f472D92ED
0.00014709 ETH
168938732023-03-24 0:43:47617 days ago1679618627
0xE68e1F30...f472D92ED
0.0014709 ETH
168938732023-03-24 0:43:47617 days ago1679618627
0xE68e1F30...f472D92ED
0.00161799 ETH
168807132023-03-22 4:19:23619 days ago1679458763
0xE68e1F30...f472D92ED
0.0001456 ETH
168807132023-03-22 4:19:23619 days ago1679458763
0xE68e1F30...f472D92ED
0.001456 ETH
168807132023-03-22 4:19:23619 days ago1679458763
0xE68e1F30...f472D92ED
0.0016016 ETH
168800792023-03-22 2:11:47619 days ago1679451107
0xE68e1F30...f472D92ED
0.00062628 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-12
*/

// SPDX-License-Identifier: MIT

/**
 * Website: https://www.dogfood.fyi
 * Twitter: https://twitter.com/dogfood_erc
 * Telegram: https://t.me/DOGFOOD_ERC
*/

pragma solidity ^0.8.0;

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}

interface IUniswapRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

abstract contract Ownable {
    address internal _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "you are not owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract ERC20 is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address public fundAddress;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    mapping(address => bool) public _isExcludeFromFee;
    
    uint256 private _totalSupply;

    IUniswapRouter public _uniswapRouter;

    mapping(address => bool) public isMarketPair;
    bool private inSwap;

    uint256 private constant MAX = ~uint256(0);

    uint256 public _buyFundFee = 250;
    uint256 public _buyLPFee = 50;
    uint256 public _sellFundFee = 250;
    uint256 public _sellLPFee = 50;

    address public _uniswapPair;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (){
        _name = "DOGFOOD";
        _symbol = "DOGFOOD";
        _decimals = 9;
        uint256 Supply = 100000000000;

        IUniswapRouter swapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _uniswapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        address swapPair = swapFactory.createPair(address(this), swapRouter.WETH());
        _uniswapPair = swapPair;
        isMarketPair[swapPair] = true;

        _totalSupply = Supply * 10 ** _decimals;

        address bossWallet = msg.sender;
        _balances[bossWallet] = _totalSupply;
        emit Transfer(address(0), bossWallet, _totalSupply);

        fundAddress = msg.sender;

        _isExcludeFromFee[address(this)] = true;
        _isExcludeFromFee[address(swapRouter)] = true;
        _isExcludeFromFee[msg.sender] = true;
        _isExcludeFromFee[bossWallet] = true;
    }

    function symbol() external view override returns (string memory) {
        return _symbol;
    }

    function name() external view override returns (string memory) {
        return _name;
    }

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function DesignBuy(uint256 newFundFee, uint256 newLpFee) public onlyOwner{
        require(newFundFee + newLpFee <= 4000,"too high");
        _buyFundFee = newFundFee;
        _buyLPFee = newLpFee;
    }

    function DesignSell(uint256 newFundFee, uint256 newLpFee) public onlyOwner{
        require(newFundFee + newLpFee <= 4000,"too high");
        _sellFundFee = newFundFee;
        _sellLPFee = newLpFee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        bool takeFee;
        bool sellFlag;

        if (isMarketPair[to] && !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to]) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if (contractTokenBalance > totalSupply() / 10**8) {
                uint256 taxFee = _buyFundFee + _buyLPFee + _sellFundFee + _sellLPFee;
                uint256 numTokensSellToFund = (amount * taxFee / 5000);
                numTokensSellToFund = numTokensSellToFund > contractTokenBalance ? 
                                                            contractTokenBalance:numTokensSellToFund;
                swapTokenForETH(numTokensSellToFund, taxFee);
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            takeFee = true;
        }

        if (isMarketPair[to]) { sellFlag = true; }

        _transferToken(from, to, amount, takeFee, sellFlag);
    }

    function _transferToken(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee,
        bool sellFlag
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 taxFee;

            if (sellFlag) {
                taxFee = _sellFundFee + _sellLPFee;
            } else {
                taxFee = _buyFundFee + _buyLPFee;
            }
            uint256 swapAmount = tAmount * taxFee / 10000;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] = _balances[address(this)] + swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

        _balances[recipient] = _balances[recipient] + (tAmount - feeAmount);
        emit Transfer(sender, recipient, tAmount - feeAmount);

    }

    event catchEvent(uint8);

    function swapTokenForETH(uint256 tokenAmount, uint256 taxFee) private lockTheSwap {
        taxFee += taxFee;
        uint256 lpFee = _sellLPFee + _buyLPFee;
        uint256 lpAmount = tokenAmount * lpFee / taxFee;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();
        try _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount - lpAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch { emit catchEvent(0); }

        taxFee -= lpFee;

        uint256 WETHBalance = address(this).balance;
        uint256 fundAmount = WETHBalance * (_buyFundFee + _sellFundFee) * 2 / taxFee;
        if (fundAmount > 0 && fundAddress != address(0)) {
            payable(fundAddress).transfer(fundAmount);
        }

        if (lpAmount > 0) {
            uint256 lpWeth = WETHBalance * lpFee / taxFee;
            if (lpWeth > 0) {
                try _uniswapRouter.addLiquidityETH{value:lpWeth}(
                    address(this), lpAmount,0, 0, fundAddress, block.timestamp
                ) {} catch { emit catchEvent(1); }
            }
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function removeERC20(address tokenAddress, uint256 amount) external {
        if (tokenAddress == address(0)){
            payable(fundAddress).transfer(amount);
        }else if(tokenAddress != address(this)){
            IERC20(tokenAddress).transfer(fundAddress, amount);
        }
    }

    function multiExcludeFromFees(address[] calldata addresses, bool value) public onlyOwner{
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            _isExcludeFromFee[addresses[i]] = value;
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"catchEvent","type":"event"},{"inputs":[{"internalType":"uint256","name":"newFundFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"}],"name":"DesignBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFundFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"}],"name":"DesignSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"multiExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260fa600c556032600d5560fa600e556032600f553480156200002557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350604080518082019091526007808252661113d1d193d3d160ca1b60209092019182526200009791600491620003c2565b50604080518082019091526007808252661113d1d193d3d160ca1b6020909201918252620000c891600591620003c2565b506006805460ff1916600990811790915580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915530600090815260026020908152604080832084845282528083206000199055805163c45a015560e01b8152905164174876e800949392849263c45a01559260048083019392829003018186803b1580156200015a57600080fd5b505afa1580156200016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000195919062000468565b90506000816001600160a01b031663c9c6539630856001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001e357600080fd5b505afa158015620001f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021e919062000468565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200026757600080fd5b505af11580156200027c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a2919062000468565b601080546001600160a01b0319166001600160a01b0383169081179091556000908152600a60208190526040909120805460ff19166001179055600654919250620002f19160ff1690620004e1565b620002fd9085620005a2565b600881905533600081815260016020908152604080832085905551938452919283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600380546001600160a01b0319163390811790915530600090815260076020526040808220805460ff1990811660019081179092556001600160a01b03988916845282842080548216831790559383528183208054851682179055939096168152949094208054909416179092555062000617915050565b828054620003d090620005c4565b90600052602060002090601f016020900481019282620003f457600085556200043f565b82601f106200040f57805160ff19168380011785556200043f565b828001600101855582156200043f579182015b828111156200043f57825182559160200191906001019062000422565b506200044d92915062000451565b5090565b5b808211156200044d576000815560010162000452565b6000602082840312156200047a578081fd5b81516001600160a01b038116811462000491578182fd5b9392505050565b600181815b80851115620004d9578160001904821115620004bd57620004bd62000601565b80851615620004cb57918102915b93841c93908002906200049d565b509250929050565b60006200049160ff841683600082620004fd575060016200059c565b816200050c575060006200059c565b8160018114620005255760028114620005305762000550565b60019150506200059c565b60ff84111562000544576200054462000601565b50506001821b6200059c565b5060208310610133831016604e8410600b841016171562000575575081810a6200059c565b62000581838362000498565b806000190482111562000598576200059862000601565b0290505b92915050565b6000816000190483118215151615620005bf57620005bf62000601565b500290565b600181811c90821680620005d957607f821691505b60208210811415620005fb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6115be80620006276000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063b9fbc49d1161008a578063dd62ed3e11610064578063dd62ed3e14610442578063e5615dd114610488578063e82bef29146104a8578063f2fde38b146104c857600080fd5b8063b9fbc49d146103f6578063bceaaf1e1461040c578063ce0192f91461042c57600080fd5b8063715018a6146103585780638637b0691461036d5780638da5cb5b1461038d57806395d89b41146103ab578063a9059cbb146103c0578063adc7955d146103e057600080fd5b80633bfe62ca116101235780633bfe62ca146102625780633db02103146102785780633ecad2711461029a5780634bf28fd0146102ca57806365b61b771461030257806370a082311461032257600080fd5b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101d157806323b872dd146101f0578063313ce5671461021057806336b2e0271461023257600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018b6104e8565b604051610198919061139a565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004611284565b61057a565b6040519015158152602001610198565b3480156101dd57600080fd5b506008545b604051908152602001610198565b3480156101fc57600080fd5b506101c161020b366004611244565b610590565b34801561021c57600080fd5b5060065460405160ff9091168152602001610198565b34801561023e57600080fd5b506101c161024d3660046111cd565b60076020526000908152604090205460ff1681565b34801561026e57600080fd5b506101e2600e5481565b34801561028457600080fd5b5061029861029336600461134c565b610627565b005b3480156102a657600080fd5b506101c16102b53660046111cd565b600a6020526000908152604090205460ff1681565b3480156102d657600080fd5b506010546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610198565b34801561030e57600080fd5b506009546102ea906001600160a01b031681565b34801561032e57600080fd5b506101e261033d3660046111cd565b6001600160a01b031660009081526001602052604090205490565b34801561036457600080fd5b506102986106ab565b34801561037957600080fd5b50610298610388366004611284565b61071f565b34801561039957600080fd5b506000546001600160a01b03166102ea565b3480156103b757600080fd5b5061018b610806565b3480156103cc57600080fd5b506101c16103db366004611284565b610815565b3480156103ec57600080fd5b506101e2600f5481565b34801561040257600080fd5b506101e2600d5481565b34801561041857600080fd5b506102986104273660046112af565b610822565b34801561043857600080fd5b506101e2600c5481565b34801561044e57600080fd5b506101e261045d36600461120c565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561049457600080fd5b506102986104a336600461134c565b6108dc565b3480156104b457600080fd5b506003546102ea906001600160a01b031681565b3480156104d457600080fd5b506102986104e33660046111cd565b610957565b6060600480546104f7906114f6565b80601f0160208091040260200160405190810160405280929190818152602001828054610523906114f6565b80156105705780601f1061054557610100808354040283529160200191610570565b820191906000526020600020905b81548152906001019060200180831161055357829003601f168201915b5050505050905090565b6000610587338484610a1d565b50600192915050565b600061059d848484610a7e565b6001600160a01b03841660009081526002602090815260408083203384529091529020546000191461061d576001600160a01b03841660009081526002602090815260408083203384529091529020546105f89083906114df565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b0316331461065a5760405162461bcd60e51b8152600401610651906113ed565b60405180910390fd5b610fa06106678284611488565b11156106a05760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610651565b600e91909155600f55565b6000546001600160a01b031633146106d55760405162461bcd60e51b8152600401610651906113ed565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03821661076c576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610767573d6000803e3d6000fd5b505050565b6001600160a01b03821630146108025760035460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b1580156107ca57600080fd5b505af11580156107de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107679190611330565b5050565b6060600580546104f7906114f6565b6000610587338484610a7e565b6000546001600160a01b0316331461084c5760405162461bcd60e51b8152600401610651906113ed565b60c9821061085957600080fd5b60005b828110156108d657816007600086868581811061088957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061089e91906111cd565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556108cf81611531565b905061085c565b50505050565b6000546001600160a01b031633146109065760405162461bcd60e51b8152600401610651906113ed565b610fa06109138284611488565b111561094c5760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610651565b600c91909155600d55565b6000546001600160a01b031633146109815760405162461bcd60e51b8152600401610651906113ed565b6001600160a01b0381166109c25760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610651565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526001602052604090205481811015610ada5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610651565b6001600160a01b0383166000908152600a6020526040812054819060ff168015610b075750600b5460ff16155b8015610b2c57506001600160a01b03861660009081526007602052604090205460ff16155b8015610b5157506001600160a01b03851660009081526007602052604090205460ff16155b15610be85730600090815260016020526040902054600854610b78906305f5e100906114a0565b811115610be6576000600f54600e54600d54600c54610b979190611488565b610ba19190611488565b610bab9190611488565b90506000611388610bbc83896114c0565b610bc691906114a0565b9050828111610bd55780610bd7565b825b9050610be38183610c7d565b50505b505b6001600160a01b03861660009081526007602052604090205460ff16158015610c2a57506001600160a01b03851660009081526007602052604090205460ff16155b8015610c395750600b5460ff16155b15610c4357600191505b6001600160a01b0385166000908152600a602052604090205460ff1615610c68575060015b610c75868686858561101f565b505050505050565b600b805460ff19166001179055610c948180611488565b90506000600d54600f54610ca89190611488565b9050600082610cb783866114c0565b610cc191906114a0565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610d0957634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610d5d57600080fd5b505afa158015610d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9591906111f0565b81600181518110610db657634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526009541663791ac947610ddf84886114df565b60008430426040518663ffffffff1660e01b8152600401610e04959493929190611418565b600060405180830381600087803b158015610e1e57600080fd5b505af1925050508015610e2f575060015b610e6857604051600081527fbdf1a66ac2980d0df84c6c5344b4d62f3f4578219817cf4bcb8d8a983bbe6f169060200160405180910390a15b610e7283856114df565b93506000479050600085600e54600c54610e8c9190611488565b610e9690846114c0565b610ea19060026114c0565b610eab91906114a0565b9050600081118015610ec757506003546001600160a01b031615155b15610f08576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f06573d6000803e3d6000fd5b505b831561100c57600086610f1b87856114c0565b610f2591906114a0565b9050801561100a5760095460035460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b158015610f9857600080fd5b505af193505050508015610fc9575060408051601f3d908101601f19168201909252610fc69181019061136d565b60015b61100657604051600181527fbdf1a66ac2980d0df84c6c5344b4d62f3f4578219817cf4bcb8d8a983bbe6f169060200160405180910390a161100a565b5050505b505b5050600b805460ff191690555050505050565b6001600160a01b0385166000908152600160205260409020546110439084906114df565b6001600160a01b038616600090815260016020526040812091909155821561113d576000821561108457600f54600e5461107d9190611488565b9050611097565b600d54600c546110949190611488565b90505b60006127106110a683886114c0565b6110b091906114a0565b9050801561113a576110c28184611488565b306000908152600160205260409020549093506110e0908290611488565b30600081815260016020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111319085815260200190565b60405180910390a35b50505b61114781856114df565b6001600160a01b03861660009081526001602052604090205461116a9190611488565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111b484886114df565b60405190815260200160405180910390a3505050505050565b6000602082840312156111de578081fd5b81356111e981611562565b9392505050565b600060208284031215611201578081fd5b81516111e981611562565b6000806040838503121561121e578081fd5b823561122981611562565b9150602083013561123981611562565b809150509250929050565b600080600060608486031215611258578081fd5b833561126381611562565b9250602084013561127381611562565b929592945050506040919091013590565b60008060408385031215611296578182fd5b82356112a181611562565b946020939093013593505050565b6000806000604084860312156112c3578283fd5b833567ffffffffffffffff808211156112da578485fd5b818601915086601f8301126112ed578485fd5b8135818111156112fb578586fd5b8760208260051b850101111561130f578586fd5b602092830195509350508401356113258161157a565b809150509250925092565b600060208284031215611341578081fd5b81516111e98161157a565b6000806040838503121561135e578182fd5b50508035926020909101359150565b600080600060608486031215611381578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156113c6578581018301518582016040015282016113aa565b818111156113d75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156114675784516001600160a01b031683529383019391830191600101611442565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561149b5761149b61154c565b500190565b6000826114bb57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156114da576114da61154c565b500290565b6000828210156114f1576114f161154c565b500390565b600181811c9082168061150a57607f821691505b6020821081141561152b57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156115455761154561154c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461157757600080fd5b50565b801515811461157757600080fdfea26469706673582212200bcea136748d6106f7421a4ef682c307d9d6d9b855866bb2a2033819718f47c264736f6c63430008040033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063b9fbc49d1161008a578063dd62ed3e11610064578063dd62ed3e14610442578063e5615dd114610488578063e82bef29146104a8578063f2fde38b146104c857600080fd5b8063b9fbc49d146103f6578063bceaaf1e1461040c578063ce0192f91461042c57600080fd5b8063715018a6146103585780638637b0691461036d5780638da5cb5b1461038d57806395d89b41146103ab578063a9059cbb146103c0578063adc7955d146103e057600080fd5b80633bfe62ca116101235780633bfe62ca146102625780633db02103146102785780633ecad2711461029a5780634bf28fd0146102ca57806365b61b771461030257806370a082311461032257600080fd5b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101d157806323b872dd146101f0578063313ce5671461021057806336b2e0271461023257600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018b6104e8565b604051610198919061139a565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004611284565b61057a565b6040519015158152602001610198565b3480156101dd57600080fd5b506008545b604051908152602001610198565b3480156101fc57600080fd5b506101c161020b366004611244565b610590565b34801561021c57600080fd5b5060065460405160ff9091168152602001610198565b34801561023e57600080fd5b506101c161024d3660046111cd565b60076020526000908152604090205460ff1681565b34801561026e57600080fd5b506101e2600e5481565b34801561028457600080fd5b5061029861029336600461134c565b610627565b005b3480156102a657600080fd5b506101c16102b53660046111cd565b600a6020526000908152604090205460ff1681565b3480156102d657600080fd5b506010546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610198565b34801561030e57600080fd5b506009546102ea906001600160a01b031681565b34801561032e57600080fd5b506101e261033d3660046111cd565b6001600160a01b031660009081526001602052604090205490565b34801561036457600080fd5b506102986106ab565b34801561037957600080fd5b50610298610388366004611284565b61071f565b34801561039957600080fd5b506000546001600160a01b03166102ea565b3480156103b757600080fd5b5061018b610806565b3480156103cc57600080fd5b506101c16103db366004611284565b610815565b3480156103ec57600080fd5b506101e2600f5481565b34801561040257600080fd5b506101e2600d5481565b34801561041857600080fd5b506102986104273660046112af565b610822565b34801561043857600080fd5b506101e2600c5481565b34801561044e57600080fd5b506101e261045d36600461120c565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561049457600080fd5b506102986104a336600461134c565b6108dc565b3480156104b457600080fd5b506003546102ea906001600160a01b031681565b3480156104d457600080fd5b506102986104e33660046111cd565b610957565b6060600480546104f7906114f6565b80601f0160208091040260200160405190810160405280929190818152602001828054610523906114f6565b80156105705780601f1061054557610100808354040283529160200191610570565b820191906000526020600020905b81548152906001019060200180831161055357829003601f168201915b5050505050905090565b6000610587338484610a1d565b50600192915050565b600061059d848484610a7e565b6001600160a01b03841660009081526002602090815260408083203384529091529020546000191461061d576001600160a01b03841660009081526002602090815260408083203384529091529020546105f89083906114df565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b0316331461065a5760405162461bcd60e51b8152600401610651906113ed565b60405180910390fd5b610fa06106678284611488565b11156106a05760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610651565b600e91909155600f55565b6000546001600160a01b031633146106d55760405162461bcd60e51b8152600401610651906113ed565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03821661076c576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610767573d6000803e3d6000fd5b505050565b6001600160a01b03821630146108025760035460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b1580156107ca57600080fd5b505af11580156107de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107679190611330565b5050565b6060600580546104f7906114f6565b6000610587338484610a7e565b6000546001600160a01b0316331461084c5760405162461bcd60e51b8152600401610651906113ed565b60c9821061085957600080fd5b60005b828110156108d657816007600086868581811061088957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061089e91906111cd565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556108cf81611531565b905061085c565b50505050565b6000546001600160a01b031633146109065760405162461bcd60e51b8152600401610651906113ed565b610fa06109138284611488565b111561094c5760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610651565b600c91909155600d55565b6000546001600160a01b031633146109815760405162461bcd60e51b8152600401610651906113ed565b6001600160a01b0381166109c25760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610651565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526001602052604090205481811015610ada5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610651565b6001600160a01b0383166000908152600a6020526040812054819060ff168015610b075750600b5460ff16155b8015610b2c57506001600160a01b03861660009081526007602052604090205460ff16155b8015610b5157506001600160a01b03851660009081526007602052604090205460ff16155b15610be85730600090815260016020526040902054600854610b78906305f5e100906114a0565b811115610be6576000600f54600e54600d54600c54610b979190611488565b610ba19190611488565b610bab9190611488565b90506000611388610bbc83896114c0565b610bc691906114a0565b9050828111610bd55780610bd7565b825b9050610be38183610c7d565b50505b505b6001600160a01b03861660009081526007602052604090205460ff16158015610c2a57506001600160a01b03851660009081526007602052604090205460ff16155b8015610c395750600b5460ff16155b15610c4357600191505b6001600160a01b0385166000908152600a602052604090205460ff1615610c68575060015b610c75868686858561101f565b505050505050565b600b805460ff19166001179055610c948180611488565b90506000600d54600f54610ca89190611488565b9050600082610cb783866114c0565b610cc191906114a0565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610d0957634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610d5d57600080fd5b505afa158015610d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9591906111f0565b81600181518110610db657634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526009541663791ac947610ddf84886114df565b60008430426040518663ffffffff1660e01b8152600401610e04959493929190611418565b600060405180830381600087803b158015610e1e57600080fd5b505af1925050508015610e2f575060015b610e6857604051600081527fbdf1a66ac2980d0df84c6c5344b4d62f3f4578219817cf4bcb8d8a983bbe6f169060200160405180910390a15b610e7283856114df565b93506000479050600085600e54600c54610e8c9190611488565b610e9690846114c0565b610ea19060026114c0565b610eab91906114a0565b9050600081118015610ec757506003546001600160a01b031615155b15610f08576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f06573d6000803e3d6000fd5b505b831561100c57600086610f1b87856114c0565b610f2591906114a0565b9050801561100a5760095460035460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b158015610f9857600080fd5b505af193505050508015610fc9575060408051601f3d908101601f19168201909252610fc69181019061136d565b60015b61100657604051600181527fbdf1a66ac2980d0df84c6c5344b4d62f3f4578219817cf4bcb8d8a983bbe6f169060200160405180910390a161100a565b5050505b505b5050600b805460ff191690555050505050565b6001600160a01b0385166000908152600160205260409020546110439084906114df565b6001600160a01b038616600090815260016020526040812091909155821561113d576000821561108457600f54600e5461107d9190611488565b9050611097565b600d54600c546110949190611488565b90505b60006127106110a683886114c0565b6110b091906114a0565b9050801561113a576110c28184611488565b306000908152600160205260409020549093506110e0908290611488565b30600081815260016020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111319085815260200190565b60405180910390a35b50505b61114781856114df565b6001600160a01b03861660009081526001602052604090205461116a9190611488565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111b484886114df565b60405190815260200160405180910390a3505050505050565b6000602082840312156111de578081fd5b81356111e981611562565b9392505050565b600060208284031215611201578081fd5b81516111e981611562565b6000806040838503121561121e578081fd5b823561122981611562565b9150602083013561123981611562565b809150509250929050565b600080600060608486031215611258578081fd5b833561126381611562565b9250602084013561127381611562565b929592945050506040919091013590565b60008060408385031215611296578182fd5b82356112a181611562565b946020939093013593505050565b6000806000604084860312156112c3578283fd5b833567ffffffffffffffff808211156112da578485fd5b818601915086601f8301126112ed578485fd5b8135818111156112fb578586fd5b8760208260051b850101111561130f578586fd5b602092830195509350508401356113258161157a565b809150509250925092565b600060208284031215611341578081fd5b81516111e98161157a565b6000806040838503121561135e578182fd5b50508035926020909101359150565b600080600060608486031215611381578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156113c6578581018301518582016040015282016113aa565b818111156113d75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156114675784516001600160a01b031683529383019391830191600101611442565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561149b5761149b61154c565b500190565b6000826114bb57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156114da576114da61154c565b500290565b6000828210156114f1576114f161154c565b500390565b600181811c9082168061150a57607f821691505b6020821081141561152b57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156115455761154561154c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461157757600080fd5b50565b801515811461157757600080fdfea26469706673582212200bcea136748d6106f7421a4ef682c307d9d6d9b855866bb2a2033819718f47c264736f6c63430008040033

Deployed Bytecode Sourcemap

2702:8182:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4701:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5464:159;;;;;;;;;;-1:-1:-1;5464:159:0;;;;;:::i;:::-;;:::i;:::-;;;4659:14:1;;4652:22;4634:41;;4622:2;4607:18;5464:159:0;4589:92:1;4905:100:0;;;;;;;;;;-1:-1:-1;4985:12:0;;4905:100;;;7431:25:1;;;7419:2;7404:18;4905:100:0;7386:76:1;5631:336:0;;;;;;;;;;-1:-1:-1;5631:336:0;;;;;:::i;:::-;;:::i;4803:94::-;;;;;;;;;;-1:-1:-1;4880:9:0;;4803:94;;4880:9;;;;5068:36:1;;5056:2;5041:18;4803:94:0;5023:87:1;2994:49:0;;;;;;;;;;-1:-1:-1;2994:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3343:33;;;;;;;;;;;;;;;;6190:210;;;;;;;;;;-1:-1:-1;6190:210:0;;;;;:::i;:::-;;:::i;:::-;;3138:44;;;;;;;;;;-1:-1:-1;3138:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3422:27;;;;;;;;;;-1:-1:-1;3422:27:0;;;;-1:-1:-1;;;;;3422:27:0;;;;;;-1:-1:-1;;;;;3559:32:1;;;3541:51;;3529:2;3514:18;3422:27:0;3496:102:1;3093:36:0;;;;;;;;;;-1:-1:-1;3093:36:0;;;;-1:-1:-1;;;;;3093:36:0;;;5013:119;;;;;;;;;;-1:-1:-1;5013:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5106:18:0;5079:7;5106:18;;;:9;:18;;;;;;;5013:119;2325:148;;;;;;;;;;;;;:::i;10283:296::-;;;;;;;;;;-1:-1:-1;10283:296:0;;;;;:::i;:::-;;:::i;2128:79::-;;;;;;;;;;-1:-1:-1;2166:7:0;2193:6;-1:-1:-1;;;;;2193:6:0;2128:79;;4595:98;;;;;;;;;;;;;:::i;5140:165::-;;;;;;;;;;-1:-1:-1;5140:165:0;;;;;:::i;:::-;;:::i;3383:30::-;;;;;;;;;;;;;;;;3307:29;;;;;;;;;;;;;;;;10587:257;;;;;;;;;;-1:-1:-1;10587:257:0;;;;;:::i;:::-;;:::i;3268:32::-;;;;;;;;;;;;;;;;5313:143;;;;;;;;;;-1:-1:-1;5313:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5421:18:0;;;5394:7;5421:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5313:143;5975:207;;;;;;;;;;-1:-1:-1;5975:207:0;;;;;:::i;:::-;;:::i;2871:26::-;;;;;;;;;;-1:-1:-1;2871:26:0;;;;-1:-1:-1;;;;;2871:26:0;;;2481:214;;;;;;;;;;-1:-1:-1;2481:214:0;;;;;:::i;:::-;;:::i;4701:94::-;4749:13;4782:5;4775:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4701:94;:::o;5464:159::-;5539:4;5556:37;5565:10;5577:7;5586:6;5556:8;:37::i;:::-;-1:-1:-1;5611:4:0;5464:159;;;;:::o;5631:336::-;5729:4;5746:36;5756:6;5764:9;5775:6;5746:9;:36::i;:::-;-1:-1:-1;;;;;5797:19:0;;3257:1;5797:19;;;:11;:19;;;;;;;;5817:10;5797:31;;;;;;;;-1:-1:-1;;5797:38:0;5793:145;;-1:-1:-1;;;;;5886:19:0;;;;;;:11;:19;;;;;;;;5906:10;5886:31;;;;;;;;:40;;5920:6;;5886:40;:::i;:::-;-1:-1:-1;;;;;5852:19:0;;;;;;:11;:19;;;;;;;;5872:10;5852:31;;;;;;;:74;5793:145;-1:-1:-1;5955:4:0;5631:336;;;;;:::o;6190:210::-;2255:6;;-1:-1:-1;;;;;2255:6:0;2265:10;2255:20;2247:50;;;;-1:-1:-1;;;2247:50:0;;;;;;;:::i;:::-;;;;;;;;;6308:4:::1;6283:21;6296:8:::0;6283:10;:21:::1;:::i;:::-;:29;;6275:49;;;::::0;-1:-1:-1;;;6275:49:0;;6469:2:1;6275:49:0::1;::::0;::::1;6451:21:1::0;6508:1;6488:18;;;6481:29;-1:-1:-1;;;6526:18:1;;;6519:38;6574:18;;6275:49:0::1;6441:157:1::0;6275:49:0::1;6335:12;:25:::0;;;;6371:10:::1;:21:::0;6190:210::o;2325:148::-;2255:6;;-1:-1:-1;;;;;2255:6:0;2265:10;2255:20;2247:50;;;;-1:-1:-1;;;2247:50:0;;;;;;;:::i;:::-;2432:1:::1;2416:6:::0;;2395:40:::1;::::0;-1:-1:-1;;;;;2416:6:0;;::::1;::::0;2395:40:::1;::::0;2432:1;;2395:40:::1;2463:1;2446:19:::0;;-1:-1:-1;;;;;;2446:19:0::1;::::0;;2325:148::o;10283:296::-;-1:-1:-1;;;;;10366:26:0;;10362:210;;10416:11;;10408:37;;-1:-1:-1;;;;;10416:11:0;;;;10408:37;;;;;10438:6;;10416:11;10408:37;10416:11;10408:37;10438:6;10416:11;10408:37;;;;;;;;;;;;;;;;;;;;;10283:296;;:::o;10362:210::-;-1:-1:-1;;;;;10465:29:0;;10489:4;10465:29;10462:110;;10540:11;;10510:50;;-1:-1:-1;;;10510:50:0;;-1:-1:-1;;;;;10540:11:0;;;10510:50;;;3777:51:1;3844:18;;;3837:34;;;10510:29:0;;;;;;3750:18:1;;10510:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10462:110::-;10283:296;;:::o;4595:98::-;4645:13;4678:7;4671:14;;;;;:::i;5140:165::-;5218:4;5235:40;5245:10;5257:9;5268:6;5235:9;:40::i;10587:257::-;2255:6;;-1:-1:-1;;;;;2255:6:0;2265:10;2255:20;2247:50;;;;-1:-1:-1;;;2247:50:0;;;;;;;:::i;:::-;10713:3:::1;10694:22:::0;::::1;10686:31;;;::::0;::::1;;10733:9;10728:109;10744:20:::0;;::::1;10728:109;;;10820:5;10786:17;:31;10804:9;;10814:1;10804:12;;;;;-1:-1:-1::0;;;10804:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10786:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10786:31:0;:39;;-1:-1:-1;;10786:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10766:3:::1;::::0;::::1;:::i;:::-;;;10728:109;;;;10587:257:::0;;;:::o;5975:207::-;2255:6;;-1:-1:-1;;;;;2255:6:0;2265:10;2255:20;2247:50;;;;-1:-1:-1;;;2247:50:0;;;;;;;:::i;:::-;6092:4:::1;6067:21;6080:8:::0;6067:10;:21:::1;:::i;:::-;:29;;6059:49;;;::::0;-1:-1:-1;;;6059:49:0;;6469:2:1;6059:49:0::1;::::0;::::1;6451:21:1::0;6508:1;6488:18;;;6481:29;-1:-1:-1;;;6526:18:1;;;6519:38;6574:18;;6059:49:0::1;6441:157:1::0;6059:49:0::1;6119:11;:24:::0;;;;6154:9:::1;:20:::0;5975:207::o;2481:214::-;2255:6;;-1:-1:-1;;;;;2255:6:0;2265:10;2255:20;2247:50;;;;-1:-1:-1;;;2247:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2570:22:0;::::1;2562:43;;;::::0;-1:-1:-1;;;2562:43:0;;6805:2:1;2562:43:0::1;::::0;::::1;6787:21:1::0;6844:1;6824:18;;;6817:29;-1:-1:-1;;;6862:18:1;;;6855:38;6910:18;;2562:43:0::1;6777:157:1::0;2562:43:0::1;2642:6;::::0;;2621:38:::1;::::0;-1:-1:-1;;;;;2621:38:0;;::::1;::::0;2642:6;::::1;::::0;2621:38:::1;::::0;::::1;2670:6;:17:::0;;-1:-1:-1;;;;;;2670:17:0::1;-1:-1:-1::0;;;;;2670:17:0;;;::::1;::::0;;;::::1;::::0;;2481:214::o;6408:177::-;-1:-1:-1;;;;;6493:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6545:32;;7431:25:1;;;6545:32:0;;7404:18:1;6545:32:0;;;;;;;6408:177;;;:::o;6593:1171::-;-1:-1:-1;;;;;5106:18:0;;6707:15;5106:18;;;:9;:18;;;;;;6759:17;;;;6751:46;;;;-1:-1:-1;;;6751:46:0;;6124:2:1;6751:46:0;;;6106:21:1;6163:2;6143:18;;;6136:30;-1:-1:-1;;;6182:18:1;;;6175:46;6238:18;;6751:46:0;6096:166:1;6751:46:0;-1:-1:-1;;;;;6863:16:0;;6810:12;6863:16;;;:12;:16;;;;;;6810:12;;6863:16;;:27;;;;-1:-1:-1;6884:6:0;;;;6883:7;6863:27;:55;;;;-1:-1:-1;;;;;;6895:23:0;;;;;;:17;:23;;;;;;;;6894:24;6863:55;:81;;;;-1:-1:-1;;;;;;6923:21:0;;;;;;:17;:21;;;;;;;;6922:22;6863:81;6859:660;;;7010:4;6961:28;5106:18;;;:9;:18;;;;;;4985:12;;7058:21;;7074:5;;7058:21;:::i;:::-;7035:20;:44;7031:477;;;7100:14;7158:10;;7143:12;;7131:9;;7117:11;;:23;;;;:::i;:::-;:38;;;;:::i;:::-;:51;;;;:::i;:::-;7100:68;-1:-1:-1;7187:27:0;7236:4;7218:15;7100:68;7218:6;:15;:::i;:::-;:22;;;;:::i;:::-;7187:54;;7304:20;7282:19;:42;:147;;7410:19;7282:147;;;7389:20;7282:147;7260:169;;7448:44;7464:19;7485:6;7448:15;:44::i;:::-;7031:477;;;6859:660;;-1:-1:-1;;;;;7536:23:0;;;;;;:17;:23;;;;;;;;7535:24;:50;;;;-1:-1:-1;;;;;;7564:21:0;;;;;;:17;:21;;;;;;;;7563:22;7535:50;:61;;;;-1:-1:-1;7590:6:0;;;;7589:7;7535:61;7531:108;;;7623:4;7613:14;;7531:108;-1:-1:-1;;;;;7655:16:0;;;;;;:12;:16;;;;;;;;7651:42;;;-1:-1:-1;7686:4:0;7651:42;7705:51;7720:4;7726:2;7730:6;7738:7;7747:8;7705:14;:51::i;:::-;6593:1171;;;;;;:::o;8757:1251::-;3490:6;:13;;-1:-1:-1;;3490:13:0;3499:4;3490:13;;;8850:16:::1;8860:6:::0;;8850:16:::1;:::i;:::-;;;8877:13;8906:9;;8893:10;;:22;;;;:::i;:::-;8877:38:::0;-1:-1:-1;8926:16:0::1;8967:6:::0;8945:19:::1;8877:38:::0;8945:11;:19:::1;:::i;:::-;:28;;;;:::i;:::-;9010:16;::::0;;9024:1:::1;9010:16:::0;;;;;::::1;::::0;;8926:47;;-1:-1:-1;8986:21:0::1;::::0;9010:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9010:16:0::1;8986:40;;9055:4;9037;9042:1;9037:7;;;;;;-1:-1:-1::0;;;9037:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9037:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9081:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;9081:21:0;;;;:14;;;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;9037:7;;9081:21;;;;;:14;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9071:4;9076:1;9071:7;;;;;;-1:-1:-1::0;;;9071:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9071:31:0;;::::1;:7;::::0;;::::1;::::0;;;;;:31;9117:14:::1;::::0;::::1;:65;9197:22;9211:8:::0;9197:11;:22:::1;:::i;:::-;9234:1;9250:4;9277;9297:15;9117:206;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;9113:243;;9340:13;::::0;9351:1:::1;5068:36:1::0;;9340:13:0::1;::::0;5056:2:1;5041:18;9340:13:0::1;;;;;;;9113:243;9368:15;9378:5:::0;9368:15;::::1;:::i;:::-;;;9396:19;9418:21;9396:43;;9450:18;9520:6;9500:12;;9486:11;;:26;;;;:::i;:::-;9471:42;::::0;:11;:42:::1;:::i;:::-;:46;::::0;9516:1:::1;9471:46;:::i;:::-;:55;;;;:::i;:::-;9450:76;;9554:1;9541:10;:14;:43;;;;-1:-1:-1::0;9559:11:0::1;::::0;-1:-1:-1;;;;;9559:11:0::1;:25:::0;::::1;9541:43;9537:117;;;9609:11;::::0;9601:41:::1;::::0;-1:-1:-1;;;;;9609:11:0;;::::1;::::0;9601:41;::::1;;;::::0;9631:10;;9609:11:::1;9601:41:::0;9609:11;9601:41;9631:10;9609:11;9601:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9537:117;9670:12:::0;;9666:335:::1;;9699:14;9738:6:::0;9716:19:::1;9730:5:::0;9716:11;:19:::1;:::i;:::-;:28;;;;:::i;:::-;9699:45:::0;-1:-1:-1;9763:10:0;;9759:231:::1;;9798:14;::::0;9895:11:::1;::::0;9798:144:::1;::::0;-1:-1:-1;;;9798:144:0;;9873:4:::1;9798:144;::::0;::::1;4223:34:1::0;4273:18;;;4266:34;;;9798:14:0::1;4316:18:1::0;;;4309:34;;;4359:18;;;4352:34;-1:-1:-1;;;;;9895:11:0;;::::1;4402:19:1::0;;;4395:44;9908:15:0::1;4455:19:1::0;;;4448:35;9798:14:0;::::1;::::0;:30:::1;::::0;9835:6;;4157:19:1;;9798:144:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;-1:-1:-1::0;9798:144:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;9798:144:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;9794:181;;9959:13;::::0;9970:1:::1;5068:36:1::0;;9959:13:0::1;::::0;5056:2:1;5041:18;9959:13:0::1;;;;;;;9794:181;;;;;;;9666:335;;-1:-1:-1::0;;3526:6:0;:14;;-1:-1:-1;;3526:14:0;;;-1:-1:-1;;;;;8757:1251:0:o;7772:945::-;-1:-1:-1;;;;;7968:17:0;;;;;;:9;:17;;;;;;:27;;7988:7;;7968:27;:::i;:::-;-1:-1:-1;;;;;7948:17:0;;;;;;:9;:17;;;;;:47;;;;8036:528;;;;8064:14;8099:8;8095:156;;;8152:10;;8137:12;;:25;;;;:::i;:::-;8128:34;;8095:156;;;8226:9;;8212:11;;:23;;;;:::i;:::-;8203:32;;8095:156;8265:18;8305:5;8286:16;8296:6;8286:7;:16;:::i;:::-;:24;;;;:::i;:::-;8265:45;-1:-1:-1;8329:14:0;;8325:228;;8364:23;8377:10;8364:23;;:::i;:::-;8451:4;8433:24;;;;:9;:24;;;;;;8364:23;;-1:-1:-1;8433:37:0;;8460:10;;8433:37;:::i;:::-;8424:4;8406:24;;;;:9;:24;;;;;;;:64;;;;8494:43;;-1:-1:-1;;;;;8494:43:0;;;;;;;8526:10;7431:25:1;;7419:2;7404:18;;7386:76;8494:43:0;;;;;;;;8325:228;8036:528;;;8623:19;8633:9;8623:7;:19;:::i;:::-;-1:-1:-1;;;;;8599:20:0;;;;;;:9;:20;;;;;;:44;;;;:::i;:::-;-1:-1:-1;;;;;8576:20:0;;;;;;;:9;:20;;;;;:67;;;;8659:48;;;8687:19;8697:9;8687:7;:19;:::i;:::-;8659:48;;7431:25:1;;;7419:2;7404:18;8659:48:0;;;;;;;7772:945;;;;;;:::o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:1:o;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:1:o;1746:800::-;1838:6;1846;1854;1907:2;1895:9;1886:7;1882:23;1878:32;1875:2;;;1928:6;1920;1913:22;1875:2;1973:9;1960:23;2002:18;2043:2;2035:6;2032:14;2029:2;;;2064:6;2056;2049:22;2029:2;2107:6;2096:9;2092:22;2082:32;;2152:7;2145:4;2141:2;2137:13;2133:27;2123:2;;2179:6;2171;2164:22;2123:2;2224;2211:16;2250:2;2242:6;2239:14;2236:2;;;2271:6;2263;2256:22;2236:2;2331:7;2324:4;2314:6;2311:1;2307:14;2303:2;2299:23;2295:34;2292:47;2289:2;;;2357:6;2349;2342:22;2289:2;2393:4;2385:13;;;;-1:-1:-1;2417:6:1;-1:-1:-1;;2458:20:1;;2445:34;2488:28;2445:34;2488:28;:::i;:::-;2535:5;2525:15;;;1865:681;;;;;:::o;2551:255::-;2618:6;2671:2;2659:9;2650:7;2646:23;2642:32;2639:2;;;2692:6;2684;2677:22;2639:2;2729:9;2723:16;2748:28;2770:5;2748:28;:::i;2811:258::-;2879:6;2887;2940:2;2928:9;2919:7;2915:23;2911:32;2908:2;;;2961:6;2953;2946:22;2908:2;-1:-1:-1;;2989:23:1;;;3059:2;3044:18;;;3031:32;;-1:-1:-1;2898:171:1:o;3074:316::-;3162:6;3170;3178;3231:2;3219:9;3210:7;3206:23;3202:32;3199:2;;;3252:6;3244;3237:22;3199:2;3286:9;3280:16;3270:26;;3336:2;3325:9;3321:18;3315:25;3305:35;;3380:2;3369:9;3365:18;3359:25;3349:35;;3189:201;;;;;:::o;5314:603::-;5426:4;5455:2;5484;5473:9;5466:21;5516:6;5510:13;5559:6;5554:2;5543:9;5539:18;5532:34;5584:4;5597:140;5611:6;5608:1;5605:13;5597:140;;;5706:14;;;5702:23;;5696:30;5672:17;;;5691:2;5668:26;5661:66;5626:10;;5597:140;;;5755:6;5752:1;5749:13;5746:2;;;5825:4;5820:2;5811:6;5800:9;5796:22;5792:31;5785:45;5746:2;-1:-1:-1;5901:2:1;5880:15;-1:-1:-1;;5876:29:1;5861:45;;;;5908:2;5857:54;;5435:482;-1:-1:-1;;;5435:482:1:o;6939:341::-;7141:2;7123:21;;;7180:2;7160:18;;;7153:30;-1:-1:-1;;;7214:2:1;7199:18;;7192:47;7271:2;7256:18;;7113:167::o;7467:983::-;7729:4;7777:3;7766:9;7762:19;7808:6;7797:9;7790:25;7834:2;7872:6;7867:2;7856:9;7852:18;7845:34;7915:3;7910:2;7899:9;7895:18;7888:31;7939:6;7974;7968:13;8005:6;7997;7990:22;8043:3;8032:9;8028:19;8021:26;;8082:2;8074:6;8070:15;8056:29;;8103:4;8116:195;8130:6;8127:1;8124:13;8116:195;;;8195:13;;-1:-1:-1;;;;;8191:39:1;8179:52;;8286:15;;;;8251:12;;;;8227:1;8145:9;8116:195;;;-1:-1:-1;;;;;;;8367:32:1;;;;8362:2;8347:18;;8340:60;-1:-1:-1;;;8431:3:1;8416:19;8409:35;8328:3;7738:712;-1:-1:-1;;;7738:712:1:o;8644:128::-;8684:3;8715:1;8711:6;8708:1;8705:13;8702:2;;;8721:18;;:::i;:::-;-1:-1:-1;8757:9:1;;8692:80::o;8777:217::-;8817:1;8843;8833:2;;-1:-1:-1;;;8868:31:1;;8922:4;8919:1;8912:15;8950:4;8875:1;8940:15;8833:2;-1:-1:-1;8979:9:1;;8823:171::o;8999:168::-;9039:7;9105:1;9101;9097:6;9093:14;9090:1;9087:21;9082:1;9075:9;9068:17;9064:45;9061:2;;;9112:18;;:::i;:::-;-1:-1:-1;9152:9:1;;9051:116::o;9172:125::-;9212:4;9240:1;9237;9234:8;9231:2;;;9245:18;;:::i;:::-;-1:-1:-1;9282:9:1;;9221:76::o;9302:380::-;9381:1;9377:12;;;;9424;;;9445:2;;9499:4;9491:6;9487:17;9477:27;;9445:2;9552;9544:6;9541:14;9521:18;9518:38;9515:2;;;9598:10;9593:3;9589:20;9586:1;9579:31;9633:4;9630:1;9623:15;9661:4;9658:1;9651:15;9515:2;;9357:325;;;:::o;9687:135::-;9726:3;-1:-1:-1;;9747:17:1;;9744:2;;;9767:18;;:::i;:::-;-1:-1:-1;9814:1:1;9803:13;;9734:88::o;9827:127::-;9888:10;9883:3;9879:20;9876:1;9869:31;9919:4;9916:1;9909:15;9943:4;9940:1;9933:15;9959:131;-1:-1:-1;;;;;10034:31:1;;10024:42;;10014:2;;10080:1;10077;10070:12;10014:2;10004:86;:::o;10095:118::-;10181:5;10174:13;10167:21;10160:5;10157:32;10147:2;;10203:1;10200;10193:12

Swarm Source

ipfs://0bcea136748d6106f7421a4ef682c307d9d6d9b855866bb2a2033819718f47c2

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.