ETH Price: $3,251.19 (+5.03%)
Gas: 6.16 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve143064172022-03-02 8:08:501065 days ago1646208530IN
0x3308656B...5F2eE8827
0 ETH0.0008090533.29871955
Approve141692402022-02-09 2:41:241086 days ago1644374484IN
0x3308656B...5F2eE8827
0 ETH0.0024939653.54045055
Approve141447432022-02-05 7:52:371090 days ago1644047557IN
0x3308656B...5F2eE8827
0 ETH0.002643657.12073383
Approve140448042022-01-20 21:07:271105 days ago1642712847IN
0x3308656B...5F2eE8827
0 ETH0.00633349135.96733291
Approve140415402022-01-20 9:15:061106 days ago1642670106IN
0x3308656B...5F2eE8827
0 ETH0.0041542889.18421298
Approve140413622022-01-20 8:36:441106 days ago1642667804IN
0x3308656B...5F2eE8827
0 ETH0.0036333178
Approve140412592022-01-20 8:12:251106 days ago1642666345IN
0x3308656B...5F2eE8827
0 ETH0.0039381684.54441148
Approve140411602022-01-20 7:53:121106 days ago1642665192IN
0x3308656B...5F2eE8827
0 ETH0.00472541101.4451184
Approve140411322022-01-20 7:45:351106 days ago1642664735IN
0x3308656B...5F2eE8827
0 ETH0.0044290495.08262694
Approve140411322022-01-20 7:45:351106 days ago1642664735IN
0x3308656B...5F2eE8827
0 ETH0.0044290495.08262694
Approve140410672022-01-20 7:31:111106 days ago1642663871IN
0x3308656B...5F2eE8827
0 ETH0.0042288990.78589449
Approve140410422022-01-20 7:25:061106 days ago1642663506IN
0x3308656B...5F2eE8827
0 ETH0.0040270486.4525876
Approve140409362022-01-20 7:01:581106 days ago1642662118IN
0x3308656B...5F2eE8827
0 ETH0.00476885102.37758362
Approve140409212022-01-20 6:57:481106 days ago1642661868IN
0x3308656B...5F2eE8827
0 ETH0.00506928108.82731467
Approve140409202022-01-20 6:57:361106 days ago1642661856IN
0x3308656B...5F2eE8827
0 ETH0.00476695102.33697419
Approve140409092022-01-20 6:55:301106 days ago1642661730IN
0x3308656B...5F2eE8827
0 ETH0.00553899118.91114236
Approve140408952022-01-20 6:52:381106 days ago1642661558IN
0x3308656B...5F2eE8827
0 ETH0.00644333138.32543293
Approve140408822022-01-20 6:48:271106 days ago1642661307IN
0x3308656B...5F2eE8827
0 ETH0.00663897142.52543792
Approve140408752022-01-20 6:46:181106 days ago1642661178IN
0x3308656B...5F2eE8827
0 ETH0.00756312162.36499883
Approve140408682022-01-20 6:44:271106 days ago1642661067IN
0x3308656B...5F2eE8827
0 ETH0.00949153203.76413006
Approve140408602022-01-20 6:41:411106 days ago1642660901IN
0x3308656B...5F2eE8827
0 ETH0.00690782148.29705745
Approve140408562022-01-20 6:40:111106 days ago1642660811IN
0x3308656B...5F2eE8827
0 ETH0.00625117134.2
Approve140408452022-01-20 6:37:331106 days ago1642660653IN
0x3308656B...5F2eE8827
0 ETH0.00519876111.60691104
Approve140408412022-01-20 6:36:431106 days ago1642660603IN
0x3308656B...5F2eE8827
0 ETH0.00578629124.2200926
Approve140408412022-01-20 6:36:431106 days ago1642660603IN
0x3308656B...5F2eE8827
0 ETH0.00578877124.27321017
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
141692532022-02-09 2:45:041086 days ago1644374704
0x3308656B...5F2eE8827
0.00892474 ETH
141692532022-02-09 2:45:041086 days ago1644374704
0x3308656B...5F2eE8827
0.00892474 ETH
140448092022-01-20 21:08:341105 days ago1642712914
0x3308656B...5F2eE8827
0.0051754 ETH
140448092022-01-20 21:08:341105 days ago1642712914
0x3308656B...5F2eE8827
0.0051754 ETH
140415452022-01-20 9:16:221106 days ago1642670182
0x3308656B...5F2eE8827
0.01235855 ETH
140415452022-01-20 9:16:221106 days ago1642670182
0x3308656B...5F2eE8827
0.01235855 ETH
140414962022-01-20 9:06:531106 days ago1642669613
0x3308656B...5F2eE8827
0.01065912 ETH
140414962022-01-20 9:06:531106 days ago1642669613
0x3308656B...5F2eE8827
0.01065912 ETH
140414222022-01-20 8:49:581106 days ago1642668598
0x3308656B...5F2eE8827
0.01151803 ETH
140414222022-01-20 8:49:581106 days ago1642668598
0x3308656B...5F2eE8827
0.01151803 ETH
140414042022-01-20 8:45:241106 days ago1642668324
0x3308656B...5F2eE8827
0.00639945 ETH
140414042022-01-20 8:45:241106 days ago1642668324
0x3308656B...5F2eE8827
0.00639945 ETH
140414042022-01-20 8:45:241106 days ago1642668324
0x3308656B...5F2eE8827
0.01258899 ETH
140414042022-01-20 8:45:241106 days ago1642668324
0x3308656B...5F2eE8827
0.01258899 ETH
140413882022-01-20 8:42:001106 days ago1642668120
0x3308656B...5F2eE8827
0.00748748 ETH
140413882022-01-20 8:42:001106 days ago1642668120
0x3308656B...5F2eE8827
0.00748748 ETH
140413852022-01-20 8:41:071106 days ago1642668067
0x3308656B...5F2eE8827
0.02238469 ETH
140413852022-01-20 8:41:071106 days ago1642668067
0x3308656B...5F2eE8827
0.02238469 ETH
140413732022-01-20 8:39:021106 days ago1642667942
0x3308656B...5F2eE8827
0.02238469 ETH
140413732022-01-20 8:39:021106 days ago1642667942
0x3308656B...5F2eE8827
0.02238469 ETH
140413692022-01-20 8:38:131106 days ago1642667893
0x3308656B...5F2eE8827
0.01098366 ETH
140413692022-01-20 8:38:131106 days ago1642667893
0x3308656B...5F2eE8827
0.01098366 ETH
140413402022-01-20 8:32:121106 days ago1642667532
0x3308656B...5F2eE8827
0.02499323 ETH
140413402022-01-20 8:32:121106 days ago1642667532
0x3308656B...5F2eE8827
0.02499323 ETH
140413352022-01-20 8:31:111106 days ago1642667471
0x3308656B...5F2eE8827
0.02444714 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
catdog

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-20
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract catdog  is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100 * 1e6 * 1e9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    
    string private constant _name = "CatDog";
    string private constant _symbol = "CTDG";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x1675c60aedAf83e56c19adDA41e7b6848d69cefa);
        
        _rOwned[address(this)] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from]);
        if (from != address(this)) {
            _feeAddr1 = 1;
            _feeAddr2 = 9;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 100 * 1e3 * 1e9) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function liftMaxTx() external onlyOwner{
        _maxTxAmount = _tTotal;
    }
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount);
       
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 100 * 1e4 * 1e9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"liftMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261001867016345785d8a00006000196101ad565b61002490600019610188565b600855600e805462ffffff60a81b1916905567016345785d8a0000600f5534801561004e57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031916731675c60aedaf83e56c19adda41e7b6848d69cefa179055600854306000908152600260205260408120919091556001906005906100e46000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308082526005909452828120805486166001908117909155600c5490921681528281208054909516909117909355519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061017b9067016345785d8a0000815260200190565b60405180910390a36101cf565b6000828210156101a857634e487b7160e01b600052601160045260246000fd5b500390565b6000826101ca57634e487b7160e01b600052601260045260246000fd5b500690565b61161980620001df6000396000f3fe6080604052600436106100f75760003560e01c806370a082311161008a578063a9059cbb11610059578063a9059cbb146102ab578063c3c8cd80146102cb578063c9567bf9146102e0578063dd62ed3e146102f557600080fd5b806370a0823114610221578063715018a6146102415780638da5cb5b1461025657806395d89b411461027e57600080fd5b80632ab30838116100c65780632ab30838146101b9578063313ce567146101d05780635932ead1146101ec5780636fc3eaec1461020c57600080fd5b806306fdde0314610103578063095ea7b31461014457806318160ddd1461017457806323b872dd1461019957600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b50604080518082019091526006815265436174446f6760d01b60208201525b60405161013b9190611401565b60405180910390f35b34801561015057600080fd5b5061016461015f36600461136d565b61033b565b604051901515815260200161013b565b34801561018057600080fd5b5067016345785d8a00005b60405190815260200161013b565b3480156101a557600080fd5b506101646101b436600461132c565b610352565b3480156101c557600080fd5b506101ce6103bb565b005b3480156101dc57600080fd5b506040516009815260200161013b565b3480156101f857600080fd5b506101ce610207366004611399565b6103fc565b34801561021857600080fd5b506101ce610444565b34801561022d57600080fd5b5061018b61023c3660046112b9565b610471565b34801561024d57600080fd5b506101ce610493565b34801561026257600080fd5b506000546040516001600160a01b03909116815260200161013b565b34801561028a57600080fd5b506040805180820190915260048152634354444760e01b602082015261012e565b3480156102b757600080fd5b506101646102c636600461136d565b610507565b3480156102d757600080fd5b506101ce610514565b3480156102ec57600080fd5b506101ce61054a565b34801561030157600080fd5b5061018b6103103660046112f3565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600061034833848461090f565b5060015b92915050565b600061035f848484610a33565b6103b184336103ac856040518060600160405280602881526020016115bc602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610bd3565b61090f565b5060019392505050565b6000546001600160a01b031633146103ee5760405162461bcd60e51b81526004016103e590611456565b60405180910390fd5b67016345785d8a0000600f55565b6000546001600160a01b031633146104265760405162461bcd60e51b81526004016103e590611456565b600e8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b03161461046457600080fd5b4761046e81610c0d565b50565b6001600160a01b03811660009081526002602052604081205461034c90610c47565b6000546001600160a01b031633146104bd5760405162461bcd60e51b81526004016103e590611456565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610348338484610a33565b600c546001600160a01b0316336001600160a01b03161461053457600080fd5b600061053f30610471565b905061046e81610ccb565b6000546001600160a01b031633146105745760405162461bcd60e51b81526004016103e590611456565b600e54600160a01b900460ff16156105ce5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103e5565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561060a308267016345785d8a000061090f565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561064357600080fd5b505afa158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b91906112d6565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c357600080fd5b505afa1580156106d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fb91906112d6565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561074357600080fd5b505af1158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b91906112d6565b600e80546001600160a01b0319166001600160a01b03928316179055600d541663f305d71947306107ab81610471565b6000806107c06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561082357600080fd5b505af1158015610837573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061085c91906113d3565b5050600e805466038d7ea4c68000600f5563ffff00ff60a01b198116630101000160a01b17909155600d5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090b91906113b6565b5050565b6001600160a01b0383166109715760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e5565b6001600160a01b0382166109d25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e5565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111610a955760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103e5565b6001600160a01b03831660009081526006602052604090205460ff1615610abb57600080fd5b6001600160a01b0383163014610bc3576001600a556009600b55600e546001600160a01b038481169116148015610b005750600d546001600160a01b03838116911614155b8015610b2557506001600160a01b03821660009081526005602052604090205460ff16155b8015610b3a5750600e54600160b81b900460ff165b15610b4e57600f54811115610b4e57600080fd5b6000610b5930610471565b600e54909150600160a81b900460ff16158015610b845750600e546001600160a01b03858116911614155b8015610b995750600e54600160b01b900460ff165b15610bc157610ba781610ccb565b47655af3107a4000811115610bbf57610bbf47610c0d565b505b505b610bce838383610e54565b505050565b60008184841115610bf75760405162461bcd60e51b81526004016103e59190611401565b506000610c048486611555565b95945050505050565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561090b573d6000803e3d6000fd5b6000600854821115610cae5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016103e5565b6000610cb8610e5f565b9050610cc48382610e82565b9392505050565b600e805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610d1357610d13611582565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610d6757600080fd5b505afa158015610d7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9f91906112d6565b81600181518110610db257610db2611582565b6001600160a01b039283166020918202929092010152600d54610dd8913091168461090f565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e1190859060009086903090429060040161148b565b600060405180830381600087803b158015610e2b57600080fd5b505af1158015610e3f573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b610bce838383610ec4565b6000806000610e6c610fbb565b9092509050610e7b8282610e82565b9250505090565b6000610cc483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ffb565b600080600080600080610ed687611029565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150610f089087611086565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054610f3790866110c8565b6001600160a01b038916600090815260026020526040902055610f5981611127565b610f638483611171565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610fa891815260200190565b60405180910390a3505050505050505050565b600854600090819067016345785d8a0000610fd68282610e82565b821015610ff25750506008549267016345785d8a000092509050565b90939092509050565b6000818361101c5760405162461bcd60e51b81526004016103e59190611401565b506000610c048486611514565b60008060008060008060008060006110468a600a54600b54611195565b9250925092506000611056610e5f565b905060008060006110698e8787876111ea565b919e509c509a509598509396509194505050505091939550919395565b6000610cc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bd3565b6000806110d583856114fc565b905083811015610cc45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e5565b6000611131610e5f565b9050600061113f838361123a565b3060009081526002602052604090205490915061115c90826110c8565b30600090815260026020526040902055505050565b60085461117e9083611086565b60085560095461118e90826110c8565b6009555050565b60008080806111af60646111a9898961123a565b90610e82565b905060006111c260646111a98a8961123a565b905060006111da826111d48b86611086565b90611086565b9992985090965090945050505050565b60008080806111f9888661123a565b90506000611207888761123a565b90506000611215888861123a565b90506000611227826111d48686611086565b939b939a50919850919650505050505050565b6000826112495750600061034c565b60006112558385611536565b9050826112628583611514565b14610cc45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103e5565b6000602082840312156112cb57600080fd5b8135610cc481611598565b6000602082840312156112e857600080fd5b8151610cc481611598565b6000806040838503121561130657600080fd5b823561131181611598565b9150602083013561132181611598565b809150509250929050565b60008060006060848603121561134157600080fd5b833561134c81611598565b9250602084013561135c81611598565b929592945050506040919091013590565b6000806040838503121561138057600080fd5b823561138b81611598565b946020939093013593505050565b6000602082840312156113ab57600080fd5b8135610cc4816115ad565b6000602082840312156113c857600080fd5b8151610cc4816115ad565b6000806000606084860312156113e857600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561142e57858101830151858201604001528201611412565b81811115611440576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114db5784516001600160a01b0316835293830193918301916001016114b6565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561150f5761150f61156c565b500190565b60008261153157634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156115505761155061156c565b500290565b6000828210156115675761156761156c565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461046e57600080fd5b801515811461046e57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204fe5326394d364414ec9c801715be9e476f433113eae7d0e951d4de84a4438ba64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c806370a082311161008a578063a9059cbb11610059578063a9059cbb146102ab578063c3c8cd80146102cb578063c9567bf9146102e0578063dd62ed3e146102f557600080fd5b806370a0823114610221578063715018a6146102415780638da5cb5b1461025657806395d89b411461027e57600080fd5b80632ab30838116100c65780632ab30838146101b9578063313ce567146101d05780635932ead1146101ec5780636fc3eaec1461020c57600080fd5b806306fdde0314610103578063095ea7b31461014457806318160ddd1461017457806323b872dd1461019957600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b50604080518082019091526006815265436174446f6760d01b60208201525b60405161013b9190611401565b60405180910390f35b34801561015057600080fd5b5061016461015f36600461136d565b61033b565b604051901515815260200161013b565b34801561018057600080fd5b5067016345785d8a00005b60405190815260200161013b565b3480156101a557600080fd5b506101646101b436600461132c565b610352565b3480156101c557600080fd5b506101ce6103bb565b005b3480156101dc57600080fd5b506040516009815260200161013b565b3480156101f857600080fd5b506101ce610207366004611399565b6103fc565b34801561021857600080fd5b506101ce610444565b34801561022d57600080fd5b5061018b61023c3660046112b9565b610471565b34801561024d57600080fd5b506101ce610493565b34801561026257600080fd5b506000546040516001600160a01b03909116815260200161013b565b34801561028a57600080fd5b506040805180820190915260048152634354444760e01b602082015261012e565b3480156102b757600080fd5b506101646102c636600461136d565b610507565b3480156102d757600080fd5b506101ce610514565b3480156102ec57600080fd5b506101ce61054a565b34801561030157600080fd5b5061018b6103103660046112f3565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600061034833848461090f565b5060015b92915050565b600061035f848484610a33565b6103b184336103ac856040518060600160405280602881526020016115bc602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610bd3565b61090f565b5060019392505050565b6000546001600160a01b031633146103ee5760405162461bcd60e51b81526004016103e590611456565b60405180910390fd5b67016345785d8a0000600f55565b6000546001600160a01b031633146104265760405162461bcd60e51b81526004016103e590611456565b600e8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b03161461046457600080fd5b4761046e81610c0d565b50565b6001600160a01b03811660009081526002602052604081205461034c90610c47565b6000546001600160a01b031633146104bd5760405162461bcd60e51b81526004016103e590611456565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610348338484610a33565b600c546001600160a01b0316336001600160a01b03161461053457600080fd5b600061053f30610471565b905061046e81610ccb565b6000546001600160a01b031633146105745760405162461bcd60e51b81526004016103e590611456565b600e54600160a01b900460ff16156105ce5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103e5565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561060a308267016345785d8a000061090f565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561064357600080fd5b505afa158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b91906112d6565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c357600080fd5b505afa1580156106d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fb91906112d6565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561074357600080fd5b505af1158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b91906112d6565b600e80546001600160a01b0319166001600160a01b03928316179055600d541663f305d71947306107ab81610471565b6000806107c06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561082357600080fd5b505af1158015610837573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061085c91906113d3565b5050600e805466038d7ea4c68000600f5563ffff00ff60a01b198116630101000160a01b17909155600d5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090b91906113b6565b5050565b6001600160a01b0383166109715760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e5565b6001600160a01b0382166109d25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e5565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111610a955760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103e5565b6001600160a01b03831660009081526006602052604090205460ff1615610abb57600080fd5b6001600160a01b0383163014610bc3576001600a556009600b55600e546001600160a01b038481169116148015610b005750600d546001600160a01b03838116911614155b8015610b2557506001600160a01b03821660009081526005602052604090205460ff16155b8015610b3a5750600e54600160b81b900460ff165b15610b4e57600f54811115610b4e57600080fd5b6000610b5930610471565b600e54909150600160a81b900460ff16158015610b845750600e546001600160a01b03858116911614155b8015610b995750600e54600160b01b900460ff165b15610bc157610ba781610ccb565b47655af3107a4000811115610bbf57610bbf47610c0d565b505b505b610bce838383610e54565b505050565b60008184841115610bf75760405162461bcd60e51b81526004016103e59190611401565b506000610c048486611555565b95945050505050565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561090b573d6000803e3d6000fd5b6000600854821115610cae5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016103e5565b6000610cb8610e5f565b9050610cc48382610e82565b9392505050565b600e805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610d1357610d13611582565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610d6757600080fd5b505afa158015610d7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9f91906112d6565b81600181518110610db257610db2611582565b6001600160a01b039283166020918202929092010152600d54610dd8913091168461090f565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e1190859060009086903090429060040161148b565b600060405180830381600087803b158015610e2b57600080fd5b505af1158015610e3f573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b610bce838383610ec4565b6000806000610e6c610fbb565b9092509050610e7b8282610e82565b9250505090565b6000610cc483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ffb565b600080600080600080610ed687611029565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150610f089087611086565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054610f3790866110c8565b6001600160a01b038916600090815260026020526040902055610f5981611127565b610f638483611171565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610fa891815260200190565b60405180910390a3505050505050505050565b600854600090819067016345785d8a0000610fd68282610e82565b821015610ff25750506008549267016345785d8a000092509050565b90939092509050565b6000818361101c5760405162461bcd60e51b81526004016103e59190611401565b506000610c048486611514565b60008060008060008060008060006110468a600a54600b54611195565b9250925092506000611056610e5f565b905060008060006110698e8787876111ea565b919e509c509a509598509396509194505050505091939550919395565b6000610cc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bd3565b6000806110d583856114fc565b905083811015610cc45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e5565b6000611131610e5f565b9050600061113f838361123a565b3060009081526002602052604090205490915061115c90826110c8565b30600090815260026020526040902055505050565b60085461117e9083611086565b60085560095461118e90826110c8565b6009555050565b60008080806111af60646111a9898961123a565b90610e82565b905060006111c260646111a98a8961123a565b905060006111da826111d48b86611086565b90611086565b9992985090965090945050505050565b60008080806111f9888661123a565b90506000611207888761123a565b90506000611215888861123a565b90506000611227826111d48686611086565b939b939a50919850919650505050505050565b6000826112495750600061034c565b60006112558385611536565b9050826112628583611514565b14610cc45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103e5565b6000602082840312156112cb57600080fd5b8135610cc481611598565b6000602082840312156112e857600080fd5b8151610cc481611598565b6000806040838503121561130657600080fd5b823561131181611598565b9150602083013561132181611598565b809150509250929050565b60008060006060848603121561134157600080fd5b833561134c81611598565b9250602084013561135c81611598565b929592945050506040919091013590565b6000806040838503121561138057600080fd5b823561138b81611598565b946020939093013593505050565b6000602082840312156113ab57600080fd5b8135610cc4816115ad565b6000602082840312156113c857600080fd5b8151610cc4816115ad565b6000806000606084860312156113e857600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561142e57858101830151858201604001528201611412565b81811115611440576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114db5784516001600160a01b0316835293830193918301916001016114b6565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561150f5761150f61156c565b500190565b60008261153157634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156115505761155061156c565b500290565b6000828210156115675761156761156c565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461046e57600080fd5b801515811461046e57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204fe5326394d364414ec9c801715be9e476f433113eae7d0e951d4de84a4438ba64736f6c63430008070033

Deployed Bytecode Sourcemap

3519:9402:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5191:83;;;;;;;;;;-1:-1:-1;5261:5:0;;;;;;;;;;;;-1:-1:-1;;;5261:5:0;;;;5191:83;;;;;;;:::i;:::-;;;;;;;;6043:161;;;;;;;;;;-1:-1:-1;6043:161:0;;;;;:::i;:::-;;:::i;:::-;;;4076:14:1;;4069:22;4051:41;;4039:2;4024:18;6043:161:0;3911:187:1;5468:95:0;;;;;;;;;;-1:-1:-1;4019:15:0;5468:95;;;7951:25:1;;;7939:2;7924:18;5468:95:0;7805:177:1;6212:313:0;;;;;;;;;;-1:-1:-1;6212:313:0;;;;;:::i;:::-;;:::i;8714:80::-;;;;;;;;;;;;;:::i;:::-;;5377:83;;;;;;;;;;-1:-1:-1;5377:83:0;;4381:1;9114:36:1;;9102:2;9087:18;5377:83:0;8972:184:1;6533:103:0;;;;;;;;;;-1:-1:-1;6533:103:0;;;;;:::i;:::-;;:::i;11025:194::-;;;;;;;;;;;;;:::i;5571:138::-;;;;;;;;;;-1:-1:-1;5571:138:0;;;;;:::i;:::-;;:::i;2598:148::-;;;;;;;;;;;;;:::i;2384:79::-;;;;;;;;;;-1:-1:-1;2422:7:0;2449:6;2384:79;;-1:-1:-1;;;;;2449:6:0;;;2649:51:1;;2637:2;2622:18;2384:79:0;2503:203:1;5282:87:0;;;;;;;;;;-1:-1:-1;5354:7:0;;;;;;;;;;;;-1:-1:-1;;;5354:7:0;;;;5282:87;;5717:167;;;;;;;;;;-1:-1:-1;5717:167:0;;;;;:::i;:::-;;:::i;10818:195::-;;;;;;;;;;;;;:::i;8918:812::-;;;;;;;;;;;;;:::i;5892:143::-;;;;;;;;;;-1:-1:-1;5892:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6000:18:0;;;5973:7;6000:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5892:143;6043:161;6118:4;6135:39;182:10;6158:7;6167:6;6135:8;:39::i;:::-;-1:-1:-1;6192:4:0;6043:161;;;;;:::o;6212:313::-;6310:4;6327:36;6337:6;6345:9;6356:6;6327:9;:36::i;:::-;6374:121;6383:6;182:10;6405:89;6443:6;6405:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6405:19:0;;;;;;:11;:19;;;;;;;;182:10;6405:33;;;;;;;;;;:37;:89::i;:::-;6374:8;:121::i;:::-;-1:-1:-1;6513:4:0;6212:313;;;;;:::o;8714:80::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;;;;;;;;;4019:15:::1;8764:12;:22:::0;8714:80::o;6533:103::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;6605:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6605:23:0::1;-1:-1:-1::0;;;;6605:23:0;;::::1;::::0;;;::::1;::::0;;6533:103::o;11025:194::-;11091:15;;-1:-1:-1;;;;;11091:15:0;182:10;-1:-1:-1;;;;;11075:31:0;;11067:40;;;;;;11147:21;11179:32;11147:21;11179:12;:32::i;:::-;11056:163;11025:194::o;5571:138::-;-1:-1:-1;;;;;5684:16:0;;5637:7;5684:16;;;:7;:16;;;;;;5664:37;;:19;:37::i;2598:148::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;2705:1:::1;2689:6:::0;;2668:40:::1;::::0;-1:-1:-1;;;;;2689:6:0;;::::1;::::0;2668:40:::1;::::0;2705:1;;2668:40:::1;2736:1;2719:19:::0;;-1:-1:-1;;;;;;2719:19:0::1;::::0;;2598:148::o;5717:167::-;5795:4;5812:42;182:10;5836:9;5847:6;5812:9;:42::i;10818:195::-;10884:15;;-1:-1:-1;;;;;10884:15:0;182:10;-1:-1:-1;;;;;10868:31:0;;10860:40;;;;;;10911:23;10937:24;10955:4;10937:9;:24::i;:::-;10911:50;;10972:33;10989:15;10972:16;:33::i;8918:812::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;8982:11:::1;::::0;-1:-1:-1;;;8982:11:0;::::1;;;8981:12;8973:47;;;::::0;-1:-1:-1;;;8973:47:0;;7655:2:1;8973:47:0::1;::::0;::::1;7637:21:1::0;7694:2;7674:18;;;7667:30;7733:25;7713:18;;;7706:53;7776:18;;8973:47:0::1;7453:347:1::0;8973:47:0::1;9142:15;:34:::0;;-1:-1:-1;;;;;;9142:34:0::1;9088:42;9142:34:::0;;::::1;::::0;;;9187:58:::1;9204:4;9088:42:::0;4019:15:::1;9187:8;:58::i;:::-;9290:16;-1:-1:-1::0;;;;;9290:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9272:56:0::1;;9337:4;9344:16;-1:-1:-1::0;;;;;9344:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9272:96;::::0;-1:-1:-1;;;;;;9272:96:0::1;::::0;;;;;;-1:-1:-1;;;;;2941:15:1;;;9272:96:0::1;::::0;::::1;2923:34:1::0;2993:15;;2973:18;;;2966:43;2858:18;;9272:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9256:13;:112:::0;;-1:-1:-1;;;;;;9256:112:0::1;-1:-1:-1::0;;;;;9256:112:0;;::::1;;::::0;;9379:15:::1;::::0;::::1;:31;9418:21;9449:4;9455:24;9449:4:::0;9455:9:::1;:24::i;:::-;9480:1;9482::::0;9484:7:::1;2422::::0;2449:6;-1:-1:-1;;;;;2449:6:0;;2384:79;9484:7:::1;9379:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9379:129:0;;;-1:-1:-1;;;;;3658:15:1;;;9379:129:0::1;::::0;::::1;3640:34:1::0;3690:18;;;3683:34;;;;3733:18;;;3726:34;;;;3776:18;;;3769:34;3840:15;;;3819:19;;;3812:44;9492:15:0::1;3872:19:1::0;;;3865:35;3574:19;;9379:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9519:11:0::1;:18:::0;;9596:15:::1;9581:12;:30:::0;-1:-1:-1;;;;9622:18:0;;-1:-1:-1;;;9622:18:0;;;;9689:15:::1;::::0;9651:71:::1;::::0;-1:-1:-1;;;9651:71:0;;-1:-1:-1;;;;;9689:15:0;;::::1;9651:71;::::0;::::1;3194:51:1::0;-1:-1:-1;;3261:18:1;;;3254:34;9658:13:0;;;-1:-1:-1;9651:29:0::1;::::0;3167:18:1;;9651:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8962:768;8918:812::o:0;6906:335::-;-1:-1:-1;;;;;6999:19:0;;6991:68;;;;-1:-1:-1;;;6991:68:0;;7250:2:1;6991:68:0;;;7232:21:1;7289:2;7269:18;;;7262:30;7328:34;7308:18;;;7301:62;-1:-1:-1;;;7379:18:1;;;7372:34;7423:19;;6991:68:0;7048:400:1;6991:68:0;-1:-1:-1;;;;;7078:21:0;;7070:68;;;;-1:-1:-1;;;7070:68:0;;5318:2:1;7070:68:0;;;5300:21:1;5357:2;5337:18;;;5330:30;5396:34;5376:18;;;5369:62;-1:-1:-1;;;5447:18:1;;;5440:32;5489:19;;7070:68:0;5116:398:1;7070:68:0;-1:-1:-1;;;;;7149:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7201:32;;7951:25:1;;;7201:32:0;;7924:18:1;7201:32:0;;;;;;;6906:335;;;:::o;7249:968::-;7346:1;7337:6;:10;7329:64;;;;-1:-1:-1;;;7329:64:0;;6840:2:1;7329:64:0;;;6822:21:1;6879:2;6859:18;;;6852:30;6918:34;6898:18;;;6891:62;-1:-1:-1;;;6969:18:1;;;6962:39;7018:19;;7329:64:0;6638:405:1;7329:64:0;-1:-1:-1;;;;;7413:10:0;;;;;;:4;:10;;;;;;;;7412:11;7404:20;;;;;;-1:-1:-1;;;;;7439:21:0;;7455:4;7439:21;7435:730;;7489:1;7477:9;:13;7517:1;7505:9;:13;7545;;-1:-1:-1;;;;;7537:21:0;;;7545:13;;7537:21;:55;;;;-1:-1:-1;7576:15:0;;-1:-1:-1;;;;;7562:30:0;;;7576:15;;7562:30;;7537:55;:83;;;;-1:-1:-1;;;;;;7598:22:0;;;;;;:18;:22;;;;;;;;7596:24;7537:83;:102;;;;-1:-1:-1;7624:15:0;;-1:-1:-1;;;7624:15:0;;;;7537:102;7533:203;;;7707:12;;7697:6;:22;;7689:31;;;;;;7752:28;7783:24;7801:4;7783:9;:24::i;:::-;7827:6;;7752:55;;-1:-1:-1;;;;7827:6:0;;;;7826:7;:32;;;;-1:-1:-1;7845:13:0;;-1:-1:-1;;;;;7837:21:0;;;7845:13;;7837:21;;7826:32;:47;;;;-1:-1:-1;7862:11:0;;-1:-1:-1;;;7862:11:0;;;;7826:47;7822:332;;;7894:38;7911:20;7894:16;:38::i;:::-;7980:21;8044:15;8023:36;;8020:119;;;8084:35;8097:21;8084:12;:35::i;:::-;7875:279;7822:332;7462:703;7435:730;8179:30;8194:4;8199:2;8202:6;8179:14;:30::i;:::-;7249:968;;;:::o;1239:190::-;1325:7;1361:12;1353:6;;;;1345:29;;;;-1:-1:-1;;;1345:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1385:9:0;1397:5;1401:1;1397;:5;:::i;:::-;1385:17;1239:190;-1:-1:-1;;;;;1239:190:0:o;8800:106::-;8857:15;;:32;;-1:-1:-1;;;;;8857:15:0;;;;:32;;;;;8882:6;;8857:15;:32;:15;:32;8882:6;8857:15;:32;;;;;;;;;;;;;;;;;;;6644:254;6711:7;6750;;6739;:18;;6731:73;;;;-1:-1:-1;;;6731:73:0;;4907:2:1;6731:73:0;;;4889:21:1;4946:2;4926:18;;;4919:30;4985:34;4965:18;;;4958:62;-1:-1:-1;;;5036:18:1;;;5029:40;5086:19;;6731:73:0;4705:406:1;6731:73:0;6815:19;6838:10;:8;:10::i;:::-;6815:33;-1:-1:-1;6866:24:0;:7;6815:33;6866:11;:24::i;:::-;6859:31;6644:254;-1:-1:-1;;;6644:254:0:o;8225:483::-;4754:6;:13;;-1:-1:-1;;;;4754:13:0;-1:-1:-1;;;4754:13:0;;;8327:16:::1;::::0;;8341:1:::1;8327:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8327:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8327:16:0::1;8303:40;;8372:4;8354;8359:1;8354:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8354:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8398:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8398:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8354:7;;8398:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8388:4;8393:1;8388:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8388:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8463:15:::1;::::0;8431:62:::1;::::0;8448:4:::1;::::0;8463:15:::1;8481:11:::0;8431:8:::1;:62::i;:::-;8504:15;::::0;:196:::1;::::0;-1:-1:-1;;;8504:196:0;;-1:-1:-1;;;;;8504:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;8585:11;;8504:15:::1;::::0;8627:4;;8654::::1;::::0;8674:15:::1;::::0;8504:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4790:6:0;:14;;-1:-1:-1;;;;4790:14:0;;;-1:-1:-1;;;;8225:483:0:o;9752:146::-;9846:44;9864:6;9872:9;9883:6;9846:17;:44::i;12485:163::-;12526:7;12547:15;12564;12583:19;:17;:19::i;:::-;12546:56;;-1:-1:-1;12546:56:0;-1:-1:-1;12620:20:0;12546:56;;12620:11;:20::i;:::-;12613:27;;;;12485:163;:::o;1691:132::-;1749:7;1776:39;1780:1;1783;1776:39;;;;;;;;;;;;;;;;;:3;:39::i;9906:488::-;10005:15;10022:23;10047:12;10061:23;10086:12;10100:13;10117:19;10128:7;10117:10;:19::i;:::-;-1:-1:-1;;;;;10165:15:0;;;;;;:7;:15;;;;;;10004:132;;-1:-1:-1;10004:132:0;;-1:-1:-1;10004:132:0;;-1:-1:-1;10004:132:0;-1:-1:-1;10004:132:0;-1:-1:-1;10004:132:0;-1:-1:-1;10165:28:0;;10004:132;10165:19;:28::i;:::-;-1:-1:-1;;;;;10147:15:0;;;;;;;:7;:15;;;;;;:46;;;;10225:18;;;;;;;:39;;10248:15;10225:22;:39::i;:::-;-1:-1:-1;;;;;10204:18:0;;;;;;:7;:18;;;;;:60;10276:16;10286:5;10276:9;:16::i;:::-;10303:23;10315:4;10321;10303:11;:23::i;:::-;10359:9;-1:-1:-1;;;;;10342:44:0;10351:6;-1:-1:-1;;;;;10342:44:0;;10370:15;10342:44;;;;7951:25:1;;7939:2;7924:18;;7805:177;10342:44:0;;;;;;;;9993:401;;;;;;9906:488;;;:::o;12656:262::-;12753:7;;12706;;;;4019:15;12827:20;12753:7;4019:15;12827:11;:20::i;:::-;12817:7;:30;12813:61;;;-1:-1:-1;;12857:7:0;;;4019:15;;-1:-1:-1;12656:262:0;-1:-1:-1;12656:262:0:o;12813:61::-;12893:7;;12902;;-1:-1:-1;12656:262:0;-1:-1:-1;12656:262:0:o;1831:189::-;1917:7;1952:12;1945:5;1937:28;;;;-1:-1:-1;;;1937:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1976:9:0;1988:5;1992:1;1988;:5;:::i;11233:471::-;11292:7;11301;11310;11319;11328;11337;11358:23;11383:12;11397:13;11414:42;11426:7;11435:9;;11446;;11414:11;:42::i;:::-;11357:99;;;;;;11467:19;11490:10;:8;:10::i;:::-;11467:33;;11512:15;11529:23;11554:12;11570:46;11582:7;11591:4;11597:5;11604:11;11570;:46::i;:::-;11511:105;;-1:-1:-1;11511:105:0;-1:-1:-1;11511:105:0;-1:-1:-1;11667:15:0;;-1:-1:-1;11684:4:0;;-1:-1:-1;11690:5:0;;-1:-1:-1;;;;;11233:471:0;;;;;;;:::o;1095:136::-;1153:7;1180:43;1184:1;1187;1180:43;;;;;;;;;;;;;;;;;:3;:43::i;908:179::-;966:7;;998:5;1002:1;998;:5;:::i;:::-;986:17;;1027:1;1022;:6;;1014:46;;;;-1:-1:-1;;;1014:46:0;;5721:2:1;1014:46:0;;;5703:21:1;5760:2;5740:18;;;5733:30;5799:29;5779:18;;;5772:57;5846:18;;1014:46:0;5519:351:1;10402:212:0;10455:19;10478:10;:8;:10::i;:::-;10455:33;-1:-1:-1;10499:13:0;10515:22;:5;10455:33;10515:9;:22::i;:::-;10589:4;10573:22;;;;:7;:22;;;;;;10499:38;;-1:-1:-1;10573:33:0;;10499:38;10573:26;:33::i;:::-;10564:4;10548:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;10402:212:0:o;10622:147::-;10700:7;;:17;;10712:4;10700:11;:17::i;:::-;10690:7;:27;10741:10;;:20;;10756:4;10741:14;:20::i;:::-;10728:10;:33;-1:-1:-1;;10622:147:0:o;11712:351::-;11805:7;;;;11858:28;11882:3;11858:19;:7;11870:6;11858:11;:19::i;:::-;:23;;:28::i;:::-;11843:43;-1:-1:-1;11897:13:0;11913:29;11938:3;11913:20;:7;11925;11913:11;:20::i;:29::-;11897:45;-1:-1:-1;11953:23:0;11979:28;11897:45;11979:17;:7;11991:4;11979:11;:17::i;:::-;:21;;:28::i;:::-;11953:54;12043:4;;-1:-1:-1;12049:5:0;;-1:-1:-1;11712:351:0;;-1:-1:-1;;;;;11712:351:0:o;12071:409::-;12181:7;;;;12237:24;:7;12249:11;12237;:24::i;:::-;12219:42;-1:-1:-1;12272:12:0;12287:21;:4;12296:11;12287:8;:21::i;:::-;12272:36;-1:-1:-1;12319:13:0;12335:22;:5;12345:11;12335:9;:22::i;:::-;12319:38;-1:-1:-1;12368:23:0;12394:28;12319:38;12394:17;:7;12406:4;12394:11;:17::i;:28::-;12441:7;;;;-1:-1:-1;12467:4:0;;-1:-1:-1;12071:409:0;;-1:-1:-1;;;;;;;12071:409:0:o;1437:246::-;1495:7;1519:6;1515:47;;-1:-1:-1;1549:1:0;1542:8;;1515:47;1572:9;1584:5;1588:1;1584;:5;:::i;:::-;1572:17;-1:-1:-1;1617:1:0;1608:5;1612:1;1572:17;1608:5;:::i;:::-;:10;1600:56;;;;-1:-1:-1;;;1600:56:0;;6077:2:1;1600:56:0;;;6059:21:1;6116:2;6096:18;;;6089:30;6155:34;6135:18;;;6128:62;-1:-1:-1;;;6206:18:1;;;6199:31;6247:19;;1600:56:0;5875:397:1;14:247;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:52;;;667:1;664;657:12;619:52;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;522:388;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:52;;;1077:1;1074;1067:12;1029:52;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;915:456;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;915:456::o;1376:315::-;1444:6;1452;1505:2;1493:9;1484:7;1480:23;1476:32;1473:52;;;1521:1;1518;1511:12;1473:52;1560:9;1547:23;1579:31;1604:5;1579:31;:::i;:::-;1629:5;1681:2;1666:18;;;;1653:32;;-1:-1:-1;;;1376:315:1:o;1696:241::-;1752:6;1805:2;1793:9;1784:7;1780:23;1776:32;1773:52;;;1821:1;1818;1811:12;1773:52;1860:9;1847:23;1879:28;1901:5;1879:28;:::i;1942:245::-;2009:6;2062:2;2050:9;2041:7;2037:23;2033:32;2030:52;;;2078:1;2075;2068:12;2030:52;2110:9;2104:16;2129:28;2151:5;2129:28;:::i;2192:306::-;2280:6;2288;2296;2349:2;2337:9;2328:7;2324:23;2320:32;2317:52;;;2365:1;2362;2355:12;2317:52;2394:9;2388:16;2378:26;;2444:2;2433:9;2429:18;2423:25;2413:35;;2488:2;2477:9;2473:18;2467:25;2457:35;;2192:306;;;;;:::o;4103:597::-;4215:4;4244:2;4273;4262:9;4255:21;4305:6;4299:13;4348:6;4343:2;4332:9;4328:18;4321:34;4373:1;4383:140;4397:6;4394:1;4391:13;4383:140;;;4492:14;;;4488:23;;4482:30;4458:17;;;4477:2;4454:26;4447:66;4412:10;;4383:140;;;4541:6;4538:1;4535:13;4532:91;;;4611:1;4606:2;4597:6;4586:9;4582:22;4578:31;4571:42;4532:91;-1:-1:-1;4684:2:1;4663:15;-1:-1:-1;;4659:29:1;4644:45;;;;4691:2;4640:54;;4103:597;-1:-1:-1;;;4103:597:1:o;6277:356::-;6479:2;6461:21;;;6498:18;;;6491:30;6557:34;6552:2;6537:18;;6530:62;6624:2;6609:18;;6277:356::o;7987:980::-;8249:4;8297:3;8286:9;8282:19;8328:6;8317:9;8310:25;8354:2;8392:6;8387:2;8376:9;8372:18;8365:34;8435:3;8430:2;8419:9;8415:18;8408:31;8459:6;8494;8488:13;8525:6;8517;8510:22;8563:3;8552:9;8548:19;8541:26;;8602:2;8594:6;8590:15;8576:29;;8623:1;8633:195;8647:6;8644:1;8641:13;8633:195;;;8712:13;;-1:-1:-1;;;;;8708:39:1;8696:52;;8803:15;;;;8768:12;;;;8744:1;8662:9;8633:195;;;-1:-1:-1;;;;;;;8884:32:1;;;;8879:2;8864:18;;8857:60;-1:-1:-1;;;8948:3:1;8933:19;8926:35;8845:3;7987:980;-1:-1:-1;;;7987:980:1:o;9161:128::-;9201:3;9232:1;9228:6;9225:1;9222:13;9219:39;;;9238:18;;:::i;:::-;-1:-1:-1;9274:9:1;;9161:128::o;9294:217::-;9334:1;9360;9350:132;;9404:10;9399:3;9395:20;9392:1;9385:31;9439:4;9436:1;9429:15;9467:4;9464:1;9457:15;9350:132;-1:-1:-1;9496:9:1;;9294:217::o;9516:168::-;9556:7;9622:1;9618;9614:6;9610:14;9607:1;9604:21;9599:1;9592:9;9585:17;9581:45;9578:71;;;9629:18;;:::i;:::-;-1:-1:-1;9669:9:1;;9516:168::o;9689:125::-;9729:4;9757:1;9754;9751:8;9748:34;;;9762:18;;:::i;:::-;-1:-1:-1;9799:9:1;;9689:125::o;9819:127::-;9880:10;9875:3;9871:20;9868:1;9861:31;9911:4;9908:1;9901:15;9935:4;9932:1;9925:15;9951:127;10012:10;10007:3;10003:20;10000:1;9993:31;10043:4;10040:1;10033:15;10067:4;10064:1;10057:15;10215:131;-1:-1:-1;;;;;10290:31:1;;10280:42;;10270:70;;10336:1;10333;10326:12;10351:118;10437:5;10430:13;10423:21;10416:5;10413:32;10403:60;;10459:1;10456;10449:12

Swarm Source

ipfs://4fe5326394d364414ec9c801715be9e476f433113eae7d0e951d4de84a4438ba

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.