ETH Price: $3,353.13 (+0.37%)
 

Overview

ETH Balance

0.022380059219885064 ETH

Eth Value

$75.04 (@ $3,353.13/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve204125682024-07-29 13:38:23156 days ago1722260303IN
0x039D505E...d70CBEE55
0 ETH0.000222374.78050389
Approve189484072024-01-06 13:17:35361 days ago1704547055IN
0x039D505E...d70CBEE55
0 ETH0.001353929.06811195
Approve186309892023-11-23 0:54:47405 days ago1700700887IN
0x039D505E...d70CBEE55
0 ETH0.0008307334.19650353
Approve185129492023-11-06 12:29:59422 days ago1699273799IN
0x039D505E...d70CBEE55
0 ETH0.0005856122.25226566
Approve185129342023-11-06 12:26:59422 days ago1699273619IN
0x039D505E...d70CBEE55
0 ETH0.0006064623.04457484
Approve185128672023-11-06 12:13:35422 days ago1699272815IN
0x039D505E...d70CBEE55
0 ETH0.0005831722.15965395
Approve185128622023-11-06 12:12:35422 days ago1699272755IN
0x039D505E...d70CBEE55
0 ETH0.001081923.40920712
Approve184892722023-11-03 4:51:59425 days ago1698987119IN
0x039D505E...d70CBEE55
0 ETH0.0005374411.53894759
Approve184744782023-11-01 3:08:23427 days ago1698808103IN
0x039D505E...d70CBEE55
0 ETH0.0009733720.8982101
Approve184564922023-10-29 14:39:47430 days ago1698590387IN
0x039D505E...d70CBEE55
0 ETH0.0009579120.59269306
Approve184469422023-10-28 6:34:35431 days ago1698474875IN
0x039D505E...d70CBEE55
0 ETH0.000384528.30916386
Approve184469362023-10-28 6:33:23431 days ago1698474803IN
0x039D505E...d70CBEE55
0 ETH0.000414548.95781091
Transfer184450172023-10-28 0:06:59431 days ago1698451619IN
0x039D505E...d70CBEE55
0 ETH0.0009584413.90867965
Approve184269502023-10-25 11:28:11434 days ago1698233291IN
0x039D505E...d70CBEE55
0 ETH0.0003323713.68206956
Approve184269492023-10-25 11:27:59434 days ago1698233279IN
0x039D505E...d70CBEE55
0 ETH0.0003467214.27988525
Approve184247932023-10-25 4:10:35434 days ago1698207035IN
0x039D505E...d70CBEE55
0 ETH0.0004896510.52644043
Approve184245652023-10-25 3:24:35434 days ago1698204275IN
0x039D505E...d70CBEE55
0 ETH0.0007367915.94218362
Approve184240532023-10-25 1:41:11434 days ago1698198071IN
0x039D505E...d70CBEE55
0 ETH0.0006042412.98969562
Approve184234792023-10-24 23:45:59434 days ago1698191159IN
0x039D505E...d70CBEE55
0 ETH0.0004728319.46401157
Transfer184234062023-10-24 23:31:23434 days ago1698190283IN
0x039D505E...d70CBEE55
0 ETH0.0018538826.90294387
Approve184232862023-10-24 23:07:11434 days ago1698188831IN
0x039D505E...d70CBEE55
0 ETH0.0007044929
Approve184230892023-10-24 22:27:23434 days ago1698186443IN
0x039D505E...d70CBEE55
0 ETH0.0010339622.34294052
Approve184224142023-10-24 20:11:23435 days ago1698178283IN
0x039D505E...d70CBEE55
0 ETH0.0014386631.09622588
Approve184220292023-10-24 18:53:47435 days ago1698173627IN
0x039D505E...d70CBEE55
0 ETH0.0009553820.53844442
Approve184218052023-10-24 18:08:35435 days ago1698170915IN
0x039D505E...d70CBEE55
0 ETH0.0013322128.82529709
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
205106962024-08-12 6:18:47142 days ago1723443527
0x039D505E...d70CBEE55
0.00152292 ETH
184546012023-10-29 8:18:23430 days ago1698567503
0x039D505E...d70CBEE55
0.00438653 ETH
184544592023-10-29 7:49:59430 days ago1698565799
0x039D505E...d70CBEE55
0.00269583 ETH
184480522023-10-28 10:18:23431 days ago1698488303
0x039D505E...d70CBEE55
19 wei
184240572023-10-25 1:41:59434 days ago1698198119
0x039D505E...d70CBEE55
0.0074123 ETH
184224152023-10-24 20:11:35435 days ago1698178295
0x039D505E...d70CBEE55
0.00636246 ETH
184195812023-10-24 10:39:59435 days ago1698143999
0x039D505E...d70CBEE55
0.05385419 ETH
184195812023-10-24 10:39:59435 days ago1698143999
0x039D505E...d70CBEE55
0.01065005 ETH
184187702023-10-24 7:56:35435 days ago1698134195
0x039D505E...d70CBEE55
0.01291492 ETH
184185162023-10-24 7:04:47435 days ago1698131087
0x039D505E...d70CBEE55
0.00917296 ETH
184183762023-10-24 6:36:35435 days ago1698129395
0x039D505E...d70CBEE55
0.0072982 ETH
184171352023-10-24 2:26:23435 days ago1698114383
0x039D505E...d70CBEE55
0.00883948 ETH
184152572023-10-23 20:09:11436 days ago1698091751
0x039D505E...d70CBEE55
0.00497854 ETH
184144272023-10-23 17:22:23436 days ago1698081743
0x039D505E...d70CBEE55
0.05613297 ETH
184144272023-10-23 17:22:23436 days ago1698081743
0x039D505E...d70CBEE55
0.00951494 ETH
184138992023-10-23 15:35:59436 days ago1698075359
0x039D505E...d70CBEE55
0.01604554 ETH
184137672023-10-23 15:09:35436 days ago1698073775
0x039D505E...d70CBEE55
0.01022823 ETH
184137282023-10-23 15:01:47436 days ago1698073307
0x039D505E...d70CBEE55
0.01087399 ETH
184137232023-10-23 15:00:47436 days ago1698073247
0x039D505E...d70CBEE55
0.00947026 ETH
184136472023-10-23 14:45:35436 days ago1698072335
0x039D505E...d70CBEE55
0.06664646 ETH
184136472023-10-23 14:45:35436 days ago1698072335
0x039D505E...d70CBEE55
0.0173937 ETH
184135892023-10-23 14:33:47436 days ago1698071627
0x039D505E...d70CBEE55
0.027198 ETH
184135722023-10-23 14:30:23436 days ago1698071423
0x039D505E...d70CBEE55
0.02205475 ETH
184135722023-10-23 14:30:23436 days ago1698071423
0x039D505E...d70CBEE55
0.02367248 ETH
184135712023-10-23 14:30:11436 days ago1698071411
0x039D505E...d70CBEE55
0.02367248 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BORZOI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-23
*/

/**

https://twitter.com/BorzoiERC20
https://letmedoitforyou.io/
https://twitter.com/BorzoiERC20
www.youtube.com/watch?app=desktop&v=_dDjr6rDQpI


**/

pragma solidity 0.8.21;
// SPDX-License-Identifier: MIT
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 BORZOI 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 _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=99;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"LET ME DO IT FOR YOU";
    string private constant _symbol = unicode"BORZOI";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1500000 * 10**_decimals;
    uint256 public _maxTaxSwap= 15000000 * 10**_decimals;

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

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 50000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


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

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

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

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


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function ManualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>3000000000000000000){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526005805460ff1916600190811790915560146006819055606360075560088290556009918255600a818155600b91909155600c8190555f600d556200004a919062000349565b6200005a906301312d0062000360565b600e556200006b6009600a62000349565b6200007b906301312d0062000360565b600f556200008c6009600a62000349565b6200009b906216e36062000360565b601055620000ac6009600a62000349565b620000bb9062e4e1c062000360565b6011556013805461ffff60a81b19169055348015620000d8575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b03191661010033021790556200013e6009600a62000349565b6200014e90633b9aca0062000360565b335f908152600160208190526040822092909255600390620001775f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620001da3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002136009600a62000349565b6200022390633b9aca0062000360565b60405190815260200160405180910390a36200037a565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028e57815f19048211156200027257620002726200023a565b808516156200028057918102915b93841c939080029062000253565b509250929050565b5f82620002a65750600162000343565b81620002b457505f62000343565b8160018114620002cd5760028114620002d857620002f8565b600191505062000343565b60ff841115620002ec57620002ec6200023a565b50506001821b62000343565b5060208310610133831016604e8410600b84101617156200031d575081810a62000343565b6200032983836200024e565b805f19048211156200033f576200033f6200023a565b0290505b92915050565b5f6200035960ff84168362000296565b9392505050565b80820281158282048414176200034357620003436200023a565b61181480620003885f395ff3fe608060405260043610610113575f3560e01c80637d1db4a51161009d578063a9059cbb11610062578063a9059cbb146102fc578063bf474bed1461031b578063c876d0b914610330578063c9567bf914610349578063dd62ed3e1461035d575f80fd5b80637d1db4a51461026a5780638da5cb5b1461027f5780638f9a55c0146102a557806395d89b41146102ba578063a1780c18146102e8575f80fd5b806323b872dd116100e357806323b872dd146101d2578063313ce567146101f157806370a082311461020c578063715018a614610240578063751039fc14610256575f80fd5b806306fdde031461011e578063095ea7b31461016c5780630faee56f1461019b57806318160ddd146101be575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b506040805180820190915260148152734c4554204d4520444f20495420464f5220594f5560601b60208201525b6040516101639190611407565b60405180910390f35b348015610177575f80fd5b5061018b610186366004611469565b6103a1565b6040519015158152602001610163565b3480156101a6575f80fd5b506101b060115481565b604051908152602001610163565b3480156101c9575f80fd5b506101b06103b7565b3480156101dd575f80fd5b5061018b6101ec366004611493565b6103d7565b3480156101fc575f80fd5b5060405160098152602001610163565b348015610217575f80fd5b506101b06102263660046114d1565b6001600160a01b03165f9081526001602052604090205490565b34801561024b575f80fd5b5061025461043e565b005b348015610261575f80fd5b506102546104b8565b348015610275575f80fd5b506101b0600e5481565b34801561028a575f80fd5b505f546040516001600160a01b039091168152602001610163565b3480156102b0575f80fd5b506101b0600f5481565b3480156102c5575f80fd5b50604080518082019091526006815265424f525a4f4960d01b6020820152610156565b3480156102f3575f80fd5b50610254610573565b348015610307575f80fd5b5061018b610316366004611469565b6105d3565b348015610326575f80fd5b506101b060105481565b34801561033b575f80fd5b5060055461018b9060ff1681565b348015610354575f80fd5b506102546105df565b348015610368575f80fd5b506101b06103773660046114ec565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103ad338484610988565b5060015b92915050565b5f6103c46009600a611617565b6103d290633b9aca00611625565b905090565b5f6103e3848484610aab565b610434843361042f856040518060600160405280602881526020016117b7602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061107f565b610988565b5060019392505050565b5f546001600160a01b031633146104705760405162461bcd60e51b81526004016104679061163c565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104e15760405162461bcd60e51b81526004016104679061163c565b6104ed6009600a611617565b6104fb90633b9aca00611625565b600e5561050a6009600a611617565b61051890633b9aca00611625565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105526009600a611617565b61056090633b9aca00611625565b60405190815260200160405180910390a1565b60055461010090046001600160a01b0316336001600160a01b031614610597575f80fd5b305f9081526001602052604090205480156105b5576105b5816110b7565b476729a2241af62c00008111156105cf576105cf81611227565b5050565b5f6103ad338484610aab565b5f546001600160a01b031633146106085760405162461bcd60e51b81526004016104679061163c565b601354600160a01b900460ff16156106625760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610467565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106ab90309061069d6009600a611617565b61042f90633b9aca00611625565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071f9190611671565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a29190611671565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108109190611671565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610857816001600160a01b03165f9081526001602052604090205490565b5f8061086a5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108d0573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108f5919061168c565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561094a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096e91906116b7565b506013805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109ea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610467565b6001600160a01b038216610a4b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610467565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b0f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610467565b6001600160a01b038216610b715760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610467565b5f8111610bd25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610467565b5f80546001600160a01b03858116911614801590610bfd57505f546001600160a01b03848116911614155b15610f4257610c2e6064610c28600a54600d5411610c1d57600654610c21565b6008545b8590611262565b906112e7565b60055490915060ff1615610d14576012546001600160a01b03848116911614801590610c6857506013546001600160a01b03848116911614155b15610d1457325f908152600460205260409020544311610d025760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610467565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610d3f57506012546001600160a01b03848116911614155b8015610d6357506001600160a01b0383165f9081526003602052604090205460ff16155b15610e4957600e54821115610dba5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610467565b600f5482610ddc856001600160a01b03165f9081526001602052604090205490565b610de691906116d6565b1115610e345760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610467565b600d8054905f610e43836116e9565b91905055505b6013546001600160a01b038481169116148015610e6f57506001600160a01b0384163014155b15610e9c57610e996064610c28600b54600d5411610e8f57600754610c21565b6009548590611262565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610ed257506013546001600160a01b038581169116145b8015610ee75750601354600160b01b900460ff165b8015610ef4575060105481115b8015610f035750600c54600d54115b15610f4057610f25610f2084610f1b84601154611328565b611328565b6110b7565b4766b1a2bc2ec50000811115610f3e57610f3e47611227565b505b505b8015610fba57305f90815260016020526040902054610f61908261133c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fb19085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610fdc908361139a565b6001600160a01b0385165f9081526001602052604090205561101f611001838361139a565b6001600160a01b0385165f908152600160205260409020549061133c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611068858561139a565b60405190815260200160405180910390a350505050565b5f81848411156110a25760405162461bcd60e51b81526004016104679190611407565b505f6110ae8486611701565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110fd576110fd611714565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611154573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111789190611671565b8160018151811061118b5761118b611714565b6001600160a01b0392831660209182029290920101526012546111b19130911684610988565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111e99085905f90869030904290600401611728565b5f604051808303815f87803b158015611200575f80fd5b505af1158015611212573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156105cf573d5f803e3d5ffd5b5f825f0361127157505f6103b1565b5f61127c8385611625565b9050826112898583611797565b146112e05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610467565b9392505050565b5f6112e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113db565b5f81831161133657826112e0565b50919050565b5f8061134883856116d6565b9050838110156112e05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610467565b5f6112e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061107f565b5f81836113fb5760405162461bcd60e51b81526004016104679190611407565b505f6110ae8486611797565b5f6020808352835180828501525f5b8181101561143257858101830151858201604001528201611416565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611466575f80fd5b50565b5f806040838503121561147a575f80fd5b823561148581611452565b946020939093013593505050565b5f805f606084860312156114a5575f80fd5b83356114b081611452565b925060208401356114c081611452565b929592945050506040919091013590565b5f602082840312156114e1575f80fd5b81356112e081611452565b5f80604083850312156114fd575f80fd5b823561150881611452565b9150602083013561151881611452565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561157157815f190482111561155757611557611523565b8085161561156457918102915b93841c939080029061153c565b509250929050565b5f82611587575060016103b1565b8161159357505f6103b1565b81600181146115a957600281146115b3576115cf565b60019150506103b1565b60ff8411156115c4576115c4611523565b50506001821b6103b1565b5060208310610133831016604e8410600b84101617156115f2575081810a6103b1565b6115fc8383611537565b805f190482111561160f5761160f611523565b029392505050565b5f6112e060ff841683611579565b80820281158282048414176103b1576103b1611523565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611681575f80fd5b81516112e081611452565b5f805f6060848603121561169e575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156116c7575f80fd5b815180151581146112e0575f80fd5b808201808211156103b1576103b1611523565b5f600182016116fa576116fa611523565b5060010190565b818103818111156103b1576103b1611523565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117765784516001600160a01b031683529383019391830191600101611751565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826117b157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220afc4754a101e8489a580d45779b1308acd268462f8ee284a0c73f9d8ba9b101b64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610113575f3560e01c80637d1db4a51161009d578063a9059cbb11610062578063a9059cbb146102fc578063bf474bed1461031b578063c876d0b914610330578063c9567bf914610349578063dd62ed3e1461035d575f80fd5b80637d1db4a51461026a5780638da5cb5b1461027f5780638f9a55c0146102a557806395d89b41146102ba578063a1780c18146102e8575f80fd5b806323b872dd116100e357806323b872dd146101d2578063313ce567146101f157806370a082311461020c578063715018a614610240578063751039fc14610256575f80fd5b806306fdde031461011e578063095ea7b31461016c5780630faee56f1461019b57806318160ddd146101be575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b506040805180820190915260148152734c4554204d4520444f20495420464f5220594f5560601b60208201525b6040516101639190611407565b60405180910390f35b348015610177575f80fd5b5061018b610186366004611469565b6103a1565b6040519015158152602001610163565b3480156101a6575f80fd5b506101b060115481565b604051908152602001610163565b3480156101c9575f80fd5b506101b06103b7565b3480156101dd575f80fd5b5061018b6101ec366004611493565b6103d7565b3480156101fc575f80fd5b5060405160098152602001610163565b348015610217575f80fd5b506101b06102263660046114d1565b6001600160a01b03165f9081526001602052604090205490565b34801561024b575f80fd5b5061025461043e565b005b348015610261575f80fd5b506102546104b8565b348015610275575f80fd5b506101b0600e5481565b34801561028a575f80fd5b505f546040516001600160a01b039091168152602001610163565b3480156102b0575f80fd5b506101b0600f5481565b3480156102c5575f80fd5b50604080518082019091526006815265424f525a4f4960d01b6020820152610156565b3480156102f3575f80fd5b50610254610573565b348015610307575f80fd5b5061018b610316366004611469565b6105d3565b348015610326575f80fd5b506101b060105481565b34801561033b575f80fd5b5060055461018b9060ff1681565b348015610354575f80fd5b506102546105df565b348015610368575f80fd5b506101b06103773660046114ec565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103ad338484610988565b5060015b92915050565b5f6103c46009600a611617565b6103d290633b9aca00611625565b905090565b5f6103e3848484610aab565b610434843361042f856040518060600160405280602881526020016117b7602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061107f565b610988565b5060019392505050565b5f546001600160a01b031633146104705760405162461bcd60e51b81526004016104679061163c565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104e15760405162461bcd60e51b81526004016104679061163c565b6104ed6009600a611617565b6104fb90633b9aca00611625565b600e5561050a6009600a611617565b61051890633b9aca00611625565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105526009600a611617565b61056090633b9aca00611625565b60405190815260200160405180910390a1565b60055461010090046001600160a01b0316336001600160a01b031614610597575f80fd5b305f9081526001602052604090205480156105b5576105b5816110b7565b476729a2241af62c00008111156105cf576105cf81611227565b5050565b5f6103ad338484610aab565b5f546001600160a01b031633146106085760405162461bcd60e51b81526004016104679061163c565b601354600160a01b900460ff16156106625760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610467565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106ab90309061069d6009600a611617565b61042f90633b9aca00611625565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071f9190611671565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a29190611671565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108109190611671565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610857816001600160a01b03165f9081526001602052604090205490565b5f8061086a5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108d0573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108f5919061168c565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561094a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096e91906116b7565b506013805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109ea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610467565b6001600160a01b038216610a4b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610467565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b0f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610467565b6001600160a01b038216610b715760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610467565b5f8111610bd25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610467565b5f80546001600160a01b03858116911614801590610bfd57505f546001600160a01b03848116911614155b15610f4257610c2e6064610c28600a54600d5411610c1d57600654610c21565b6008545b8590611262565b906112e7565b60055490915060ff1615610d14576012546001600160a01b03848116911614801590610c6857506013546001600160a01b03848116911614155b15610d1457325f908152600460205260409020544311610d025760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610467565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610d3f57506012546001600160a01b03848116911614155b8015610d6357506001600160a01b0383165f9081526003602052604090205460ff16155b15610e4957600e54821115610dba5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610467565b600f5482610ddc856001600160a01b03165f9081526001602052604090205490565b610de691906116d6565b1115610e345760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610467565b600d8054905f610e43836116e9565b91905055505b6013546001600160a01b038481169116148015610e6f57506001600160a01b0384163014155b15610e9c57610e996064610c28600b54600d5411610e8f57600754610c21565b6009548590611262565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610ed257506013546001600160a01b038581169116145b8015610ee75750601354600160b01b900460ff165b8015610ef4575060105481115b8015610f035750600c54600d54115b15610f4057610f25610f2084610f1b84601154611328565b611328565b6110b7565b4766b1a2bc2ec50000811115610f3e57610f3e47611227565b505b505b8015610fba57305f90815260016020526040902054610f61908261133c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fb19085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610fdc908361139a565b6001600160a01b0385165f9081526001602052604090205561101f611001838361139a565b6001600160a01b0385165f908152600160205260409020549061133c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611068858561139a565b60405190815260200160405180910390a350505050565b5f81848411156110a25760405162461bcd60e51b81526004016104679190611407565b505f6110ae8486611701565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110fd576110fd611714565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611154573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111789190611671565b8160018151811061118b5761118b611714565b6001600160a01b0392831660209182029290920101526012546111b19130911684610988565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111e99085905f90869030904290600401611728565b5f604051808303815f87803b158015611200575f80fd5b505af1158015611212573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156105cf573d5f803e3d5ffd5b5f825f0361127157505f6103b1565b5f61127c8385611625565b9050826112898583611797565b146112e05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610467565b9392505050565b5f6112e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113db565b5f81831161133657826112e0565b50919050565b5f8061134883856116d6565b9050838110156112e05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610467565b5f6112e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061107f565b5f81836113fb5760405162461bcd60e51b81526004016104679190611407565b505f6110ae8486611797565b5f6020808352835180828501525f5b8181101561143257858101830151858201604001528201611416565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611466575f80fd5b50565b5f806040838503121561147a575f80fd5b823561148581611452565b946020939093013593505050565b5f805f606084860312156114a5575f80fd5b83356114b081611452565b925060208401356114c081611452565b929592945050506040919091013590565b5f602082840312156114e1575f80fd5b81356112e081611452565b5f80604083850312156114fd575f80fd5b823561150881611452565b9150602083013561151881611452565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561157157815f190482111561155757611557611523565b8085161561156457918102915b93841c939080029061153c565b509250929050565b5f82611587575060016103b1565b8161159357505f6103b1565b81600181146115a957600281146115b3576115cf565b60019150506103b1565b60ff8411156115c4576115c4611523565b50506001821b6103b1565b5060208310610133831016604e8410600b84101617156115f2575081810a6103b1565b6115fc8383611537565b805f190482111561160f5761160f611523565b029392505050565b5f6112e060ff841683611579565b80820281158282048414176103b1576103b1611523565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611681575f80fd5b81516112e081611452565b5f805f6060848603121561169e575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156116c7575f80fd5b815180151581146112e0575f80fd5b808201808211156103b1576103b1611523565b5f600182016116fa576116fa611523565b5060010190565b818103818111156103b1576103b1611523565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117765784516001600160a01b031683529383019391830191600101611751565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826117b157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220afc4754a101e8489a580d45779b1308acd268462f8ee284a0c73f9d8ba9b101b64736f6c63430008150033

Deployed Bytecode Sourcemap

3631:7977:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5530:83;;;;;;;;;;-1:-1:-1;5600:5:0;;;;;;;;;;;;-1:-1:-1;;;5600:5:0;;;;5530:83;;;;;;;:::i;:::-;;;;;;;;6363:161;;;;;;;;;;-1:-1:-1;6363:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6363:161:0;1023:187:1;4805:52:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4805:52:0;1215:177:1;5807:95:0;;;;;;;;;;;;;:::i;6532:313::-;;;;;;;;;;-1:-1:-1;6532:313:0;;;;;:::i;:::-;;:::i;5716:83::-;;;;;;;;;;-1:-1:-1;5716:83:0;;4417:1;2000:36:1;;1988:2;1973:18;5716:83:0;1858:184:1;5910:119:0;;;;;;;;;;-1:-1:-1;5910:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6003:18:0;5976:7;6003:18;;;:9;:18;;;;;;;5910:119;2712:148;;;;;;;;;;;;;:::i;:::-;;10217:196;;;;;;;;;;;;;:::i;4617:54::-;;;;;;;;;;;;;;;;2498:79;;;;;;;;;;-1:-1:-1;2536:7:0;2563:6;2498:79;;-1:-1:-1;;;;;2563:6:0;;;2445:51:1;;2433:2;2418:18;2498:79:0;2299:203:1;4678:56:0;;;;;;;;;;;;;;;;5621:87;;;;;;;;;;-1:-1:-1;5693:7:0;;;;;;;;;;;;-1:-1:-1;;;5693:7:0;;;;5621:87;;11239:366;;;;;;;;;;;;;:::i;6037:167::-;;;;;;;;;;-1:-1:-1;6037:167:0;;;;;:::i;:::-;;:::i;4741:57::-;;;;;;;;;;;;;;;;3974:39;;;;;;;;;;-1:-1:-1;3974:39:0;;;;;;;;10523:671;;;;;;;;;;;;;:::i;6212:143::-;;;;;;;;;;-1:-1:-1;6212:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6320:18:0;;;6293:7;6320:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6212:143;6363:161;6438:4;6455:39;333:10;6478:7;6487:6;6455:8;:39::i;:::-;-1:-1:-1;6512:4:0;6363:161;;;;;:::o;5807:95::-;5860:7;4473:13;4417:1;4473:2;:13;:::i;:::-;4460:26;;:10;:26;:::i;:::-;5880:14;;5807:95;:::o;6532:313::-;6630:4;6647:36;6657:6;6665:9;6676:6;6647:9;:36::i;:::-;6694:121;6703:6;333:10;6725:89;6763:6;6725:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6725:19:0;;;;;;:11;:19;;;;;;;;333:10;6725:33;;;;;;;;;;:37;:89::i;:::-;6694:8;:121::i;:::-;-1:-1:-1;6833:4:0;6532:313;;;;;:::o;2712:148::-;2625:6;;-1:-1:-1;;;;;2625:6:0;333:10;2625:22;2617:67;;;;-1:-1:-1;;;2617:67:0;;;;;;;:::i;:::-;;;;;;;;;2819:1:::1;2803:6:::0;;2782:40:::1;::::0;-1:-1:-1;;;;;2803:6:0;;::::1;::::0;2782:40:::1;::::0;2819:1;;2782:40:::1;2850:1;2833:19:::0;;-1:-1:-1;;;;;;2833:19:0::1;::::0;;2712:148::o;10217:196::-;2625:6;;-1:-1:-1;;;;;2625:6:0;333:10;2625:22;2617:67;;;;-1:-1:-1;;;2617:67:0;;;;;;;:::i;:::-;4473:13:::1;4417:1;4473:2;:13;:::i;:::-;4460:26;::::0;:10:::1;:26;:::i;:::-;10270:12;:22:::0;4473:13:::1;4417:1;4473:2;:13;:::i;:::-;4460:26;::::0;:10:::1;:26;:::i;:::-;10303:14;:22:::0;10336:20:::1;:26:::0;;-1:-1:-1;;10336:26:0::1;::::0;;10378:27:::1;4473:13;4417:1;-1:-1:-1::0;4473:13:0::1;:::i;:::-;4460:26;::::0;:10:::1;:26;:::i;:::-;10378:27;::::0;1361:25:1;;;1349:2;1334:18;10378:27:0::1;;;;;;;10217:196::o:0;11239:366::-;11303:10;;;;;-1:-1:-1;;;;;11303:10:0;333;-1:-1:-1;;;;;11289:24:0;;11281:33;;;;;;11364:4;11325:20;6003:18;;;:9;:18;;;;;;11384:14;;11381:73;;11412:30;11429:12;11412:16;:30::i;:::-;11483:21;11529:19;11518:30;;11515:83;;;11562:24;11575:10;11562:12;:24::i;:::-;11270:335;;11239:366::o;6037:167::-;6115:4;6132:42;333:10;6156:9;6167:6;6132:9;:42::i;10523:671::-;2625:6;;-1:-1:-1;;;;;2625:6:0;333:10;2625:22;2617:67;;;;-1:-1:-1;;;2617:67:0;;;;;;;:::i;:::-;10587:11:::1;::::0;-1:-1:-1;;;10587:11:0;::::1;;;10586:12;10578:47;;;::::0;-1:-1:-1;;;10578:47:0;;5151:2:1;10578:47:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;10578:47:0::1;4949:347:1::0;10578:47:0::1;10636:15;:80:::0;;-1:-1:-1;;;;;;10636:80:0::1;10673:42;10636:80:::0;;::::1;::::0;;;10727:58:::1;::::0;10744:4:::1;::::0;4473:13:::1;4417:1;4473:2;:13;:::i;:::-;4460:26;::::0;:10:::1;:26;:::i;10727:58::-;10830:15;;;;;;;;;-1:-1:-1::0;;;;;10830:15:0::1;-1:-1:-1::0;;;;;10830:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10812:55:0::1;;10876:4;10883:15;;;;;;;;;-1:-1:-1::0;;;;;10883:15:0::1;-1:-1:-1::0;;;;;10883:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10812:94;::::0;-1:-1:-1;;;;;;10812:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5787:15:1;;;10812:94:0::1;::::0;::::1;5769:34:1::0;5839:15;;5819:18;;;5812:43;5704:18;;10812:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10796:13;:110:::0;;-1:-1:-1;;;;;10796:110:0;;::::1;-1:-1:-1::0;;;;;;10796:110:0;;::::1;;::::0;;10917:15:::1;::::0;::::1;:31;10956:21;10987:4;10993:24;10987:4:::0;-1:-1:-1;;;;;6003:18:0;5976:7;6003:18;;;:9;:18;;;;;;;5910:119;10993:24:::1;11018:1;11020::::0;11022:7:::1;2536::::0;2563:6;-1:-1:-1;;;;;2563:6:0;;2498:79;11022:7:::1;10917:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10917:129:0;;;-1:-1:-1;;;;;6225:15:1;;;10917:129:0::1;::::0;::::1;6207:34:1::0;6257:18;;;6250:34;;;;6300:18;;;6293:34;;;;6343:18;;;6336:34;6407:15;;;6386:19;;;6379:44;11030:15:0::1;6439:19:1::0;;;6432:35;6141:19;;10917:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11064:13:0::1;::::0;11095:15:::1;::::0;11057:71:::1;::::0;-1:-1:-1;;;11057:71:0;;-1:-1:-1;;;;;11095:15:0;;::::1;11057:71;::::0;::::1;6963:51:1::0;-1:-1:-1;;7030:18:1;;;7023:34;11064:13:0;::::1;::::0;-1:-1:-1;11057:29:0::1;::::0;6936:18:1;;11057:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11139:11:0::1;:18:::0;;-1:-1:-1;;;;11168:18:0;-1:-1:-1;;;11168:18:0;;;10523:671::o;6853:335::-;-1:-1:-1;;;;;6946:19:0;;6938:68;;;;-1:-1:-1;;;6938:68:0;;7552:2:1;6938:68:0;;;7534:21:1;7591:2;7571:18;;;7564:30;7630:34;7610:18;;;7603:62;-1:-1:-1;;;7681:18:1;;;7674:34;7725:19;;6938:68:0;7350:400:1;6938:68:0;-1:-1:-1;;;;;7025:21:0;;7017:68;;;;-1:-1:-1;;;7017:68:0;;7957:2:1;7017:68:0;;;7939:21:1;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;-1:-1:-1;;;8086:18:1;;;8079:32;8128:19;;7017:68:0;7755:398:1;7017:68:0;-1:-1:-1;;;;;7096:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7148:32;;1361:25:1;;;7148:32:0;;1334:18:1;7148:32:0;;;;;;;6853:335;;;:::o;7196:2414::-;-1:-1:-1;;;;;7284:18:0;;7276:68;;;;-1:-1:-1;;;7276:68:0;;8360:2:1;7276:68:0;;;8342:21:1;8399:2;8379:18;;;8372:30;8438:34;8418:18;;;8411:62;-1:-1:-1;;;8489:18:1;;;8482:35;8534:19;;7276:68:0;8158:401:1;7276:68:0;-1:-1:-1;;;;;7363:16:0;;7355:64;;;;-1:-1:-1;;;7355:64:0;;8766:2:1;7355:64:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:33;8938:19;;7355:64:0;8564:399:1;7355:64:0;7447:1;7438:6;:10;7430:64;;;;-1:-1:-1;;;7430:64:0;;9170:2:1;7430:64:0;;;9152:21:1;9209:2;9189:18;;;9182:30;9248:34;9228:18;;;9221:62;-1:-1:-1;;;9299:18:1;;;9292:39;9348:19;;7430:64:0;8968:405:1;7430:64:0;7505:17;2563:6;;-1:-1:-1;;;;;7539:15:0;;;2563:6;;7539:15;;;;:32;;-1:-1:-1;2536:7:0;2563:6;-1:-1:-1;;;;;7558:13:0;;;2563:6;;7558:13;;7539:32;7535:1719;;;7600:76;7672:3;7600:67;7622:15;;7612:9;;:25;7611:55;;7652:14;;7611:55;;;7639:12;;7611:55;7600:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7697:20;;7588:88;;-1:-1:-1;7697:20:0;;7693:508;;;7758:15;;-1:-1:-1;;;;;7744:30:0;;;7758:15;;7744:30;;;;:62;;-1:-1:-1;7792:13:0;;-1:-1:-1;;;;;7778:28:0;;;7792:13;;7778:28;;7744:62;7740:444;;;7898:9;7869:39;;;;:28;:39;;;;;;7942:12;-1:-1:-1;7833:250:0;;;;-1:-1:-1;;;7833:250:0;;9580:2:1;7833:250:0;;;9562:21:1;9619:2;9599:18;;;9592:30;9658:34;9638:18;;;9631:62;9729:34;9709:18;;;9702:62;-1:-1:-1;;;9780:19:1;;;9773:40;9830:19;;7833:250:0;9378:477:1;7833:250:0;8137:9;8108:39;;;;:28;:39;;;;;8150:12;8108:54;;7740:444;8229:13;;-1:-1:-1;;;;;8221:21:0;;;8229:13;;8221:21;:55;;;;-1:-1:-1;8260:15:0;;-1:-1:-1;;;;;8246:30:0;;;8260:15;;8246:30;;8221:55;:83;;;;-1:-1:-1;;;;;;8282:22:0;;;;;;:18;:22;;;;;;;;8280:24;8221:83;8217:313;;;8344:12;;8334:6;:22;;8326:60;;;;-1:-1:-1;;;8326:60:0;;10062:2:1;8326:60:0;;;10044:21:1;10101:2;10081:18;;;10074:30;10140:27;10120:18;;;10113:55;10185:18;;8326:60:0;9860:349:1;8326:60:0;8439:14;;8429:6;8413:13;8423:2;-1:-1:-1;;;;;6003:18:0;5976:7;6003:18;;;:9;:18;;;;;;;5910:119;8413:13;:22;;;;:::i;:::-;:40;;8405:79;;;;-1:-1:-1;;;8405:79:0;;10546:2:1;8405:79:0;;;10528:21:1;10585:2;10565:18;;;10558:30;10624:28;10604:18;;;10597:56;10670:18;;8405:79:0;10344:350:1;8405:79:0;8503:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8217:313;8555:13;;-1:-1:-1;;;;;8549:19:0;;;8555:13;;8549:19;:43;;;;-1:-1:-1;;;;;;8572:20:0;;8587:4;8572:20;;8549:43;8546:174;;;8625:79;8700:3;8625:70;8647:16;;8637:9;;:26;8636:58;;8679:15;;8636:58;;;8665:13;;8625:6;;:10;:70::i;:79::-;8613:91;;8546:174;8785:4;8736:28;6003:18;;;:9;:18;;;;;;8811:6;;-1:-1:-1;;;8811:6:0;;;;8810:7;:32;;;;-1:-1:-1;8829:13:0;;-1:-1:-1;;;;;8821:21:0;;;8829:13;;8821:21;8810:32;:47;;;;-1:-1:-1;8846:11:0;;-1:-1:-1;;;8846:11:0;;;;8810:47;:89;;;;;8882:17;;8861:20;:38;8810:89;:121;;;;;8913:18;;8903:9;;:28;8810:121;8806:437;;;8952:67;8969:49;8973:6;8980:37;8984:20;9005:11;;8980:3;:37::i;:::-;8969:3;:49::i;:::-;8952:16;:67::i;:::-;9067:21;9131:17;9110:38;;9107:121;;;9173:35;9186:21;9173:12;:35::i;:::-;8933:310;8806:437;7573:1681;7535:1719;9269:11;;9266:161;;9337:4;9319:24;;;;:9;:24;;;;;;:39;;9348:9;9319:28;:39::i;:::-;9312:4;9294:24;;;;:9;:24;;;;;;;:64;;;;9376:39;;-1:-1:-1;;;;;9376:39:0;;;;;;;9405:9;1361:25:1;;1349:2;1334:18;;1215:177;9376:39:0;;;;;;;;9266:161;-1:-1:-1;;;;;9453:15:0;;;;;;:9;:15;;;;;;:27;;9473:6;9453:19;:27::i;:::-;-1:-1:-1;;;;;9437:15:0;;;;;;:9;:15;;;;;:43;9505:40;9523:21;:6;9534:9;9523:10;:21::i;:::-;-1:-1:-1;;;;;9505:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9491:13:0;;;;;;;:9;:13;;;;;:54;;;;9561:41;;;9580:21;:6;9591:9;9580:10;:21::i;:::-;9561:41;;1361:25:1;;;1349:2;1334:18;9561:41:0;;;;;;;7265:2345;7196:2414;;;:::o;1390:190::-;1476:7;1512:12;1504:6;;;;1496:29;;;;-1:-1:-1;;;1496:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1536:9:0;1548:5;1552:1;1548;:5;:::i;:::-;1536:17;1390:190;-1:-1:-1;;;;;1390:190:0:o;9726:483::-;5139:6;:13;;-1:-1:-1;;;;5139:13:0;-1:-1:-1;;;5139:13:0;;;9828:16:::1;::::0;;9842:1:::1;9828:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9828:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9828:16:0::1;9804:40;;9873:4;9855;9860:1;9855:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9855:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9899:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9899:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9855:7;;9899:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9889:4;9894:1;9889:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9889:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9964:15:::1;::::0;9932:62:::1;::::0;9949:4:::1;::::0;9964:15:::1;9982:11:::0;9932:8:::1;:62::i;:::-;10005:15;::::0;:196:::1;::::0;-1:-1:-1;;;10005:196:0;;-1:-1:-1;;;;;10005:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10086:11;;10005:15:::1;::::0;10128:4;;10155::::1;::::0;10175:15:::1;::::0;10005:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5175:6:0;:14;;-1:-1:-1;;;;5175:14:0;;;-1:-1:-1;;;;9726:483:0:o;10421:92::-;10478:10;;:27;;:10;;;;-1:-1:-1;;;;;10478:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1588:246;1646:7;1670:1;1675;1670:6;1666:47;;-1:-1:-1;1700:1:0;1693:8;;1666:47;1723:9;1735:5;1739:1;1735;:5;:::i;:::-;1723:17;-1:-1:-1;1768:1:0;1759:5;1763:1;1723:17;1759:5;:::i;:::-;:10;1751:56;;;;-1:-1:-1;;;1751:56:0;;12645:2:1;1751:56:0;;;12627:21:1;12684:2;12664:18;;;12657:30;12723:34;12703:18;;;12696:62;-1:-1:-1;;;12774:18:1;;;12767:31;12815:19;;1751:56:0;12443:397:1;1751:56:0;1825:1;1588:246;-1:-1:-1;;;1588:246:0:o;1842:132::-;1900:7;1927:39;1931:1;1934;1927:39;;;;;;;;;;;;;;;;;:3;:39::i;9620:98::-;9677:7;9704:1;9702;:3;9701:9;;9709:1;9701:9;;;-1:-1:-1;9707:1:0;9620:98;-1:-1:-1;9620:98:0:o;1059:179::-;1117:7;;1149:5;1153:1;1149;:5;:::i;:::-;1137:17;;1178:1;1173;:6;;1165:46;;;;-1:-1:-1;;;1165:46:0;;13047:2:1;1165:46:0;;;13029:21:1;13086:2;13066:18;;;13059:30;13125:29;13105:18;;;13098:57;13172:18;;1165:46:0;12845:351:1;1246:136:0;1304:7;1331:43;1335:1;1338;1331:43;;;;;;;;;;;;;;;;;:3;:43::i;1982:189::-;2068:7;2103:12;2096:5;2088:28;;;;-1:-1:-1;;;2088:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2127:9:0;2139:5;2143:1;2139;: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:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;5301:251::-;5371:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:52;;;5440:1;5437;5430:12;5392:52;5472:9;5466:16;5491:31;5516:5;5491:31;:::i;6478:306::-;6566:6;6574;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6680:9;6674:16;6664:26;;6730:2;6719:9;6715:18;6709:25;6699:35;;6774:2;6763:9;6759:18;6753:25;6743:35;;6478:306;;;;;:::o;7068:277::-;7135:6;7188:2;7176:9;7167:7;7163:23;7159:32;7156:52;;;7204:1;7201;7194:12;7156:52;7236:9;7230:16;7289:5;7282:13;7275:21;7268:5;7265:32;7255:60;;7311:1;7308;7301:12;10214:125;10279:9;;;10300:10;;;10297:36;;;10313:18;;:::i;10699:135::-;10738:3;10759:17;;;10756:43;;10779:18;;:::i;:::-;-1:-1:-1;10826:1:1;10815:13;;10699:135::o;10839:128::-;10906:9;;;10927:11;;;10924:37;;;10941:18;;:::i;11104:127::-;11165:10;11160:3;11156:20;11153:1;11146:31;11196:4;11193:1;11186:15;11220:4;11217:1;11210:15;11236:980;11498:4;11546:3;11535:9;11531:19;11577:6;11566:9;11559:25;11603:2;11641:6;11636:2;11625:9;11621:18;11614:34;11684:3;11679:2;11668:9;11664:18;11657:31;11708:6;11743;11737:13;11774:6;11766;11759:22;11812:3;11801:9;11797:19;11790:26;;11851:2;11843:6;11839:15;11825:29;;11872:1;11882:195;11896:6;11893:1;11890:13;11882:195;;;11961:13;;-1:-1:-1;;;;;11957:39:1;11945:52;;12052:15;;;;12017:12;;;;11993:1;11911:9;11882:195;;;-1:-1:-1;;;;;;;12133:32:1;;;;12128:2;12113:18;;12106:60;-1:-1:-1;;;12197:3:1;12182:19;12175:35;12094:3;11236:980;-1:-1:-1;;;11236:980:1:o;12221:217::-;12261:1;12287;12277:132;;12331:10;12326:3;12322:20;12319:1;12312:31;12366:4;12363:1;12356:15;12394:4;12391:1;12384:15;12277:132;-1:-1:-1;12423:9:1;;12221:217::o

Swarm Source

ipfs://afc4754a101e8489a580d45779b1308acd268462f8ee284a0c73f9d8ba9b101b

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.