ETH Price: $2,643.40 (-0.37%)

Contract

0xa4909D65E55c24287578F110564bEc99cf45790A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Manual Send158800212022-11-02 4:42:47717 days ago1667364167IN
0xa4909D65...9cf45790A
0 ETH0.0003255910.74196759
Manual Send157871422022-10-20 5:12:47730 days ago1666242767IN
0xa4909D65...9cf45790A
0 ETH0.0005899819.46443238
Approve156049722022-09-24 18:20:11755 days ago1664043611IN
0xa4909D65...9cf45790A
0 ETH0.000346577.45235405
Approve156015652022-09-24 6:56:23756 days ago1664002583IN
0xa4909D65...9cf45790A
0 ETH0.000240125.16331013
Approve155939232022-09-23 5:21:35757 days ago1663910495IN
0xa4909D65...9cf45790A
0 ETH0.000255165.4867541
Approve155924592022-09-23 0:26:59757 days ago1663892819IN
0xa4909D65...9cf45790A
0 ETH0.00032486.98413936
Approve155907972022-09-22 18:53:47757 days ago1663872827IN
0xa4909D65...9cf45790A
0 ETH0.0008840719.00993182
Approve155849642022-09-21 23:17:47758 days ago1663802267IN
0xa4909D65...9cf45790A
0 ETH0.000434329.3391953
Approve155813732022-09-21 11:11:47759 days ago1663758707IN
0xa4909D65...9cf45790A
0 ETH0.000429799.24177883
Approve155812962022-09-21 10:56:23759 days ago1663757783IN
0xa4909D65...9cf45790A
0 ETH0.000073172.75037271
Approve155812942022-09-21 10:55:59759 days ago1663757759IN
0xa4909D65...9cf45790A
0 ETH0.000078252.94122159
Approve155812942022-09-21 10:55:59759 days ago1663757759IN
0xa4909D65...9cf45790A
0 ETH0.000136782.94122159
Approve155810692022-09-21 10:09:11759 days ago1663754951IN
0xa4909D65...9cf45790A
0 ETH0.000249975.37507569
Approve155810592022-09-21 10:06:59759 days ago1663754819IN
0xa4909D65...9cf45790A
0 ETH0.000198154.26075493
Approve155810322022-09-21 10:01:11759 days ago1663754471IN
0xa4909D65...9cf45790A
0 ETH0.000448349.6406442
Approve155797672022-09-21 5:31:47759 days ago1663738307IN
0xa4909D65...9cf45790A
0 ETH0.000180933.89067032
Approve155791342022-09-21 3:23:59759 days ago1663730639IN
0xa4909D65...9cf45790A
0 ETH0.000330337.10296089
Approve155786042022-09-21 1:37:23759 days ago1663724243IN
0xa4909D65...9cf45790A
0 ETH0.000363357.81305587
Manual Send155785772022-09-21 1:31:59759 days ago1663723919IN
0xa4909D65...9cf45790A
0 ETH0.00025258.33052481
Approve155785702022-09-21 1:30:35759 days ago1663723835IN
0xa4909D65...9cf45790A
0 ETH0.000446059.59138622
Approve155771582022-09-20 20:46:11759 days ago1663706771IN
0xa4909D65...9cf45790A
0 ETH0.0006968114.98335096
Approve155771312022-09-20 20:40:47759 days ago1663706447IN
0xa4909D65...9cf45790A
0 ETH0.0008022217.25
Approve155768892022-09-20 19:51:59759 days ago1663703519IN
0xa4909D65...9cf45790A
0 ETH0.000438359.42573159
Approve155768872022-09-20 19:51:35759 days ago1663703495IN
0xa4909D65...9cf45790A
0 ETH0.000384648.27089667
Approve155767652022-09-20 19:27:11759 days ago1663702031IN
0xa4909D65...9cf45790A
0 ETH0.000703115.1185775
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
158800212022-11-02 4:42:47717 days ago1667364167
0xa4909D65...9cf45790A
0.00668105 ETH
158800172022-11-02 4:41:59717 days ago1667364119
0xa4909D65...9cf45790A
0.00668105 ETH
157871422022-10-20 5:12:47730 days ago1666242767
0xa4909D65...9cf45790A
0.1447607 ETH
156049782022-09-24 18:21:35755 days ago1664043695
0xa4909D65...9cf45790A
0.00685768 ETH
155924792022-09-23 0:30:59757 days ago1663893059
0xa4909D65...9cf45790A
0.01550164 ETH
155860442022-09-22 2:56:11758 days ago1663815371
0xa4909D65...9cf45790A
0.01038477 ETH
155837432022-09-21 19:11:35758 days ago1663787495
0xa4909D65...9cf45790A
0.01081516 ETH
155815782022-09-21 11:53:47759 days ago1663761227
0xa4909D65...9cf45790A
0.01683215 ETH
155812752022-09-21 10:52:11759 days ago1663757531
0xa4909D65...9cf45790A
0.03562677 ETH
155804332022-09-21 7:53:59759 days ago1663746839
0xa4909D65...9cf45790A
0.01253732 ETH
155790912022-09-21 3:15:23759 days ago1663730123
0xa4909D65...9cf45790A
0.03620516 ETH
155785772022-09-21 1:31:59759 days ago1663723919
0xa4909D65...9cf45790A
0.14320737 ETH
155778162022-09-20 22:58:59759 days ago1663714739
0xa4909D65...9cf45790A
0.0216665 ETH
155773152022-09-20 21:17:47759 days ago1663708667
0xa4909D65...9cf45790A
0.01305291 ETH
155771992022-09-20 20:54:23759 days ago1663707263
0xa4909D65...9cf45790A
0.02478439 ETH
155769172022-09-20 19:57:35759 days ago1663703855
0xa4909D65...9cf45790A
0.02377689 ETH
155768012022-09-20 19:34:23759 days ago1663702463
0xa4909D65...9cf45790A
0.03798625 ETH
155766122022-09-20 18:55:59759 days ago1663700159
0xa4909D65...9cf45790A
0.03499331 ETH
155765192022-09-20 18:37:23759 days ago1663699043
0xa4909D65...9cf45790A
0.10201124 ETH
155765192022-09-20 18:37:23759 days ago1663699043
0xa4909D65...9cf45790A
0.05024434 ETH
155765192022-09-20 18:37:23759 days ago1663699043
0xa4909D65...9cf45790A
0.03494662 ETH
155765072022-09-20 18:34:59759 days ago1663698899
0xa4909D65...9cf45790A
0.08750179 ETH
155763872022-09-20 18:10:59759 days ago1663697459
0xa4909D65...9cf45790A
0.02980717 ETH
155762972022-09-20 17:52:47759 days ago1663696367
0xa4909D65...9cf45790A
0.11970504 ETH
155762972022-09-20 17:52:47759 days ago1663696367
0xa4909D65...9cf45790A
0.0589592 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Bishamonten

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// https://t.me/BishamontenOfficialChat
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
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;
    }
}

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

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Bishamonten is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Bishamonten";
    string constant _symbol = unicode"毘沙門天";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = _totalSupply * 2 / 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping(address => bool) public isBot;

    uint256 marketingFee = 5;
    address public marketingFeeReceiver = 0xe6F97cCA04F98681D00E34A811a5bBc82958D6ba;
    address public devFeeReceiver = msg.sender;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 10000 * 30; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        address _owner = owner;
        isFeeExempt[_owner] = true;
        isFeeExempt[address(this)] = true;
        isTxLimitExempt[_owner] = true;
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(!isBot[sender] && !isBot[recipient], "Bot Address");

        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!isBot[sender] && !isBot[recipient], "Bot Address");

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!isBot[sender] && !isBot[recipient], "Bot Address");
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(marketingFee).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = _balances[address(this)];
        uint256 amountToSwap = contractTokenBalance;
        if (amountToSwap >= swapThreshold * 3)
            amountToSwap = swapThreshold * 3;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

          router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
	
	  if (address(this).balance >= 150000000000000000){
            uint256 amountETH = address(this).balance;
            uint256 amountETHDev = amountETH * 33 / 100;
            uint256 amountETHMarketing = amountETH - amountETHDev;
            payable(devFeeReceiver).transfer(amountETHDev);
            payable(marketingFeeReceiver).transfer(amountETHMarketing);
        }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function manualSend() external {
        payable(devFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 100;
    }

    function setmarketingFee(uint256 _marketingFee) external onlyOwner {
        marketingFee = _marketingFee;
        require(marketingFee <=10,"Fee should be less than 10%");
    }

    function manageBots(address[] memory bots_, bool status) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            isBot[bots_[i]] = status;
        }
    }
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setmarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a62000462565b6200005890633b9aca006200047a565b600355606460035460026200006e91906200047a565b6200007a919062000494565b6004556005600a55600b80546001600160a01b031990811673e6f97cca04f98681d00e34a811a5bbc82958d6ba17909155600c805490911633179055600e805460ff60a01b1916600160a01b179055600354620000db906127109062000494565b620000e890601e6200047a565b600f55348015620000f857600080fd5b5060008054336001600160a01b031991821617909155600154600d80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000165573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018b9190620004b7565b6001600160a01b031663c9c65396600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002139190620004b7565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000260573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002869190620004b7565b600e80546001600160a01b0319166001600160a01b03928316179055306000818152600660209081526040808320600d548616845282528083206000199055825490941680835260078252848320805460ff199081166001908117909255948452858420805486168217905581845260088352858420805490951617909355600354600582528483208190559351938452919283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620004e2565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003a45781600019048211156200038857620003886200034d565b808516156200039657918102915b93841c939080029062000368565b509250929050565b600082620003bd575060016200045c565b81620003cc575060006200045c565b8160018114620003e55760028114620003f05762000410565b60019150506200045c565b60ff8411156200040457620004046200034d565b50506001821b6200045c565b5060208310610133831016604e8410600b841016171562000435575081810a6200045c565b62000441838362000363565b80600019048211156200045857620004586200034d565b0290505b92915050565b60006200047360ff841683620003ac565b9392505050565b80820281158282048414176200045c576200045c6200034d565b600082620004b257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004ca57600080fd5b81516001600160a01b03811681146200047357600080fd5b6115b180620004f26000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063c5377ae51161008a578063e96fada211610064578063e96fada2146104ad578063f1d5f517146104cd578063f4293890146104ed578063f887ea401461050257600080fd5b8063c5377ae514610427578063dab84ee714610447578063dd62ed3e1461046757600080fd5b8063715018a614610349578063893d20e8146103605780638c9a5a311461039257806395d89b41146103b2578063a8aa1b31146103e7578063a9059cbb1461040757600080fd5b8063313ce56711610123578063313ce567146102705780633bbac5791461028c578063571ac8b0146102bc5780636c0a24eb146102dc5780636ddd1713146102f257806370a082311461031357600080fd5b80630445b6671461017657806306fdde031461019f578063095ea7b3146101dc57806318160ddd1461020c57806323b872dd146102215780632f54bf6e1461024157600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018c600f5481565b6040519081526020015b60405180910390f35b3480156101ab57600080fd5b5060408051808201909152600b81526a2134b9b430b6b7b73a32b760a91b60208201525b60405161019691906111b8565b3480156101e857600080fd5b506101fc6101f736600461122b565b610522565b6040519015158152602001610196565b34801561021857600080fd5b5060035461018c565b34801561022d57600080fd5b506101fc61023c366004611257565b61058f565b34801561024d57600080fd5b506101fc61025c366004611298565b6000546001600160a01b0391821691161490565b34801561027c57600080fd5b5060405160098152602001610196565b34801561029857600080fd5b506101fc6102a7366004611298565b60096020526000908152604090205460ff1681565b3480156102c857600080fd5b506101fc6102d7366004611298565b6106b8565b3480156102e857600080fd5b5061018c60045481565b3480156102fe57600080fd5b50600e546101fc90600160a01b900460ff1681565b34801561031f57600080fd5b5061018c61032e366004611298565b6001600160a01b031660009081526005602052604090205490565b34801561035557600080fd5b5061035e6106c6565b005b34801561036c57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610196565b34801561039e57600080fd5b5061035e6103ad3660046112b5565b610735565b3480156103be57600080fd5b5060408051808201909152600c81526be6af98e6b299e99680e5a4a960a01b60208201526101cf565b3480156103f357600080fd5b50600e5461037a906001600160a01b031681565b34801561041357600080fd5b506101fc61042236600461122b565b6107b6565b34801561043357600080fd5b5061035e6104423660046112f4565b6107c3565b34801561045357600080fd5b50600c5461037a906001600160a01b031681565b34801561047357600080fd5b5061018c6104823660046113cb565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156104b957600080fd5b50600b5461037a906001600160a01b031681565b3480156104d957600080fd5b5061035e6104e83660046112b5565b610859565b3480156104f957600080fd5b5061035e6108a3565b34801561050e57600080fd5b50600d5461037a906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061057d9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526009602052604081205460ff161580156105d157506001600160a01b03831660009081526009602052604090205460ff16155b6105f65760405162461bcd60e51b81526004016105ed90611404565b60405180910390fd5b6001600160a01b0384166000908152600660209081526040808320338452909152902054600019146106a3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461067e9184906108dc565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6106ae848484610916565b90505b9392505050565b600061058982600019610522565b6000546001600160a01b031633146106f05760405162461bcd60e51b81526004016105ed90611429565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b0316331461075f5760405162461bcd60e51b81526004016105ed90611429565b600a8181558111156107b35760405162461bcd60e51b815260206004820152601b60248201527f4665652073686f756c64206265206c657373207468616e20313025000000000060448201526064016105ed565b50565b60006106b1338484610916565b6000546001600160a01b031633146107ed5760405162461bcd60e51b81526004016105ed90611429565b60005b825181101561085457816009600085848151811061081057610810611449565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061084c81611475565b9150506107f0565b505050565b6000546001600160a01b031633146108835760405162461bcd60e51b81526004016105ed90611429565b606481600354610893919061148e565b61089d91906114a5565b60045550565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156107b3573d6000803e3d6000fd5b600081848411156109005760405162461bcd60e51b81526004016105ed91906111b8565b50600061090d84866114c7565b95945050505050565b6001600160a01b03831660009081526009602052604081205460ff1615801561095857506001600160a01b03831660009081526009602052604090205460ff16155b6109745760405162461bcd60e51b81526004016105ed90611404565b60105460ff16156109915761098a848484610b9b565b90506106b1565b600e546001600160a01b038481169116148015906109bd57506002546001600160a01b03848116911614155b15610a68576001600160a01b03831660009081526008602052604090205460ff1680610a0e57506004546001600160a01b038416600090815260056020526040902054610a0b9084906114da565b11155b610a685760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105ed565b610a70610ce0565b15610a7d57610a7d610d38565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054610acf9184906108dc565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff1615610b045782610b0e565b610b0e8584610f7a565b6001600160a01b038516600090815260056020526040902054909150610b349082611025565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b889085815260200190565b60405180910390a3506001949350505050565b6001600160a01b03831660009081526009602052604081205460ff16158015610bdd57506001600160a01b03831660009081526009602052604090205460ff16155b610bf95760405162461bcd60e51b81526004016105ed90611404565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054610c4b9184906108dc565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610c7a9083611025565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cce9086815260200190565b60405180910390a35060019392505050565b600e546000906001600160a01b03163314801590610d01575060105460ff16155b8015610d165750600e54600160a01b900460ff165b8015610d335750600f543060009081526005602052604090205410155b905090565b6010805460ff1916600117905530600090815260056020526040902054600f548190610d6590600361148e565b8110610d7c57600f54610d7990600361148e565b90505b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610db157610db1611449565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e91906114ed565b81600181518110610e4157610e41611449565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b815291169063791ac94790610e8790859060009086903090429060040161150a565b600060405180830381600087803b158015610ea157600080fd5b505af1158015610eb5573d6000803e3d6000fd5b50505050670214e8348c4f00004710610f6b574760006064610ed883602161148e565b610ee291906114a5565b90506000610ef082846114c7565b600c546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015610f2b573d6000803e3d6000fd5b50600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f66573d6000803e3d6000fd5b505050505b50506010805460ff1916905550565b600080610f9d6064610f97600a548661108490919063ffffffff16565b90611106565b30600090815260056020526040902054909150610fba9082611025565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061100b9085815260200190565b60405180910390a361101d8382611148565b949350505050565b60008061103283856114da565b9050838110156106b15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ed565b60008260000361109657506000610589565b60006110a2838561148e565b9050826110af85836114a5565b146106b15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ed565b60006106b183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061118a565b60006106b183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506108dc565b600081836111ab5760405162461bcd60e51b81526004016105ed91906111b8565b50600061090d84866114a5565b600060208083528351808285015260005b818110156111e5578581018301518582016040015282016111c9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107b357600080fd5b803561122681611206565b919050565b6000806040838503121561123e57600080fd5b823561124981611206565b946020939093013593505050565b60008060006060848603121561126c57600080fd5b833561127781611206565b9250602084013561128781611206565b929592945050506040919091013590565b6000602082840312156112aa57600080fd5b81356106b181611206565b6000602082840312156112c757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b8035801515811461122657600080fd5b6000806040838503121561130757600080fd5b823567ffffffffffffffff8082111561131f57600080fd5b818501915085601f83011261133357600080fd5b8135602082821115611347576113476112ce565b8160051b604051601f19603f8301168101818110868211171561136c5761136c6112ce565b60405292835281830193508481018201928984111561138a57600080fd5b948201945b838610156113af576113a08661121b565b8552948201949382019361138f565b96506113be90508782016112e4565b9450505050509250929050565b600080604083850312156113de57600080fd5b82356113e981611206565b915060208301356113f981611206565b809150509250929050565b6020808252600b908201526a426f74204164647265737360a81b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016114875761148761145f565b5060010190565b80820281158282048414176105895761058961145f565b6000826114c257634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156105895761058961145f565b808201808211156105895761058961145f565b6000602082840312156114ff57600080fd5b81516106b181611206565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561155a5784516001600160a01b031683529383019391830191600101611535565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220fbe051397715919a4ad518061e8dcf04b4e6324c15da40d9fc4daf86afc18e5f64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063c5377ae51161008a578063e96fada211610064578063e96fada2146104ad578063f1d5f517146104cd578063f4293890146104ed578063f887ea401461050257600080fd5b8063c5377ae514610427578063dab84ee714610447578063dd62ed3e1461046757600080fd5b8063715018a614610349578063893d20e8146103605780638c9a5a311461039257806395d89b41146103b2578063a8aa1b31146103e7578063a9059cbb1461040757600080fd5b8063313ce56711610123578063313ce567146102705780633bbac5791461028c578063571ac8b0146102bc5780636c0a24eb146102dc5780636ddd1713146102f257806370a082311461031357600080fd5b80630445b6671461017657806306fdde031461019f578063095ea7b3146101dc57806318160ddd1461020c57806323b872dd146102215780632f54bf6e1461024157600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018c600f5481565b6040519081526020015b60405180910390f35b3480156101ab57600080fd5b5060408051808201909152600b81526a2134b9b430b6b7b73a32b760a91b60208201525b60405161019691906111b8565b3480156101e857600080fd5b506101fc6101f736600461122b565b610522565b6040519015158152602001610196565b34801561021857600080fd5b5060035461018c565b34801561022d57600080fd5b506101fc61023c366004611257565b61058f565b34801561024d57600080fd5b506101fc61025c366004611298565b6000546001600160a01b0391821691161490565b34801561027c57600080fd5b5060405160098152602001610196565b34801561029857600080fd5b506101fc6102a7366004611298565b60096020526000908152604090205460ff1681565b3480156102c857600080fd5b506101fc6102d7366004611298565b6106b8565b3480156102e857600080fd5b5061018c60045481565b3480156102fe57600080fd5b50600e546101fc90600160a01b900460ff1681565b34801561031f57600080fd5b5061018c61032e366004611298565b6001600160a01b031660009081526005602052604090205490565b34801561035557600080fd5b5061035e6106c6565b005b34801561036c57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610196565b34801561039e57600080fd5b5061035e6103ad3660046112b5565b610735565b3480156103be57600080fd5b5060408051808201909152600c81526be6af98e6b299e99680e5a4a960a01b60208201526101cf565b3480156103f357600080fd5b50600e5461037a906001600160a01b031681565b34801561041357600080fd5b506101fc61042236600461122b565b6107b6565b34801561043357600080fd5b5061035e6104423660046112f4565b6107c3565b34801561045357600080fd5b50600c5461037a906001600160a01b031681565b34801561047357600080fd5b5061018c6104823660046113cb565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156104b957600080fd5b50600b5461037a906001600160a01b031681565b3480156104d957600080fd5b5061035e6104e83660046112b5565b610859565b3480156104f957600080fd5b5061035e6108a3565b34801561050e57600080fd5b50600d5461037a906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061057d9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526009602052604081205460ff161580156105d157506001600160a01b03831660009081526009602052604090205460ff16155b6105f65760405162461bcd60e51b81526004016105ed90611404565b60405180910390fd5b6001600160a01b0384166000908152600660209081526040808320338452909152902054600019146106a3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461067e9184906108dc565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6106ae848484610916565b90505b9392505050565b600061058982600019610522565b6000546001600160a01b031633146106f05760405162461bcd60e51b81526004016105ed90611429565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b0316331461075f5760405162461bcd60e51b81526004016105ed90611429565b600a8181558111156107b35760405162461bcd60e51b815260206004820152601b60248201527f4665652073686f756c64206265206c657373207468616e20313025000000000060448201526064016105ed565b50565b60006106b1338484610916565b6000546001600160a01b031633146107ed5760405162461bcd60e51b81526004016105ed90611429565b60005b825181101561085457816009600085848151811061081057610810611449565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061084c81611475565b9150506107f0565b505050565b6000546001600160a01b031633146108835760405162461bcd60e51b81526004016105ed90611429565b606481600354610893919061148e565b61089d91906114a5565b60045550565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156107b3573d6000803e3d6000fd5b600081848411156109005760405162461bcd60e51b81526004016105ed91906111b8565b50600061090d84866114c7565b95945050505050565b6001600160a01b03831660009081526009602052604081205460ff1615801561095857506001600160a01b03831660009081526009602052604090205460ff16155b6109745760405162461bcd60e51b81526004016105ed90611404565b60105460ff16156109915761098a848484610b9b565b90506106b1565b600e546001600160a01b038481169116148015906109bd57506002546001600160a01b03848116911614155b15610a68576001600160a01b03831660009081526008602052604090205460ff1680610a0e57506004546001600160a01b038416600090815260056020526040902054610a0b9084906114da565b11155b610a685760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105ed565b610a70610ce0565b15610a7d57610a7d610d38565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054610acf9184906108dc565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff1615610b045782610b0e565b610b0e8584610f7a565b6001600160a01b038516600090815260056020526040902054909150610b349082611025565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b889085815260200190565b60405180910390a3506001949350505050565b6001600160a01b03831660009081526009602052604081205460ff16158015610bdd57506001600160a01b03831660009081526009602052604090205460ff16155b610bf95760405162461bcd60e51b81526004016105ed90611404565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054610c4b9184906108dc565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610c7a9083611025565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cce9086815260200190565b60405180910390a35060019392505050565b600e546000906001600160a01b03163314801590610d01575060105460ff16155b8015610d165750600e54600160a01b900460ff165b8015610d335750600f543060009081526005602052604090205410155b905090565b6010805460ff1916600117905530600090815260056020526040902054600f548190610d6590600361148e565b8110610d7c57600f54610d7990600361148e565b90505b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610db157610db1611449565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e91906114ed565b81600181518110610e4157610e41611449565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b815291169063791ac94790610e8790859060009086903090429060040161150a565b600060405180830381600087803b158015610ea157600080fd5b505af1158015610eb5573d6000803e3d6000fd5b50505050670214e8348c4f00004710610f6b574760006064610ed883602161148e565b610ee291906114a5565b90506000610ef082846114c7565b600c546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015610f2b573d6000803e3d6000fd5b50600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f66573d6000803e3d6000fd5b505050505b50506010805460ff1916905550565b600080610f9d6064610f97600a548661108490919063ffffffff16565b90611106565b30600090815260056020526040902054909150610fba9082611025565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061100b9085815260200190565b60405180910390a361101d8382611148565b949350505050565b60008061103283856114da565b9050838110156106b15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ed565b60008260000361109657506000610589565b60006110a2838561148e565b9050826110af85836114a5565b146106b15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ed565b60006106b183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061118a565b60006106b183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506108dc565b600081836111ab5760405162461bcd60e51b81526004016105ed91906111b8565b50600061090d84866114a5565b600060208083528351808285015260005b818110156111e5578581018301518582016040015282016111c9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107b357600080fd5b803561122681611206565b919050565b6000806040838503121561123e57600080fd5b823561124981611206565b946020939093013593505050565b60008060006060848603121561126c57600080fd5b833561127781611206565b9250602084013561128781611206565b929592945050506040919091013590565b6000602082840312156112aa57600080fd5b81356106b181611206565b6000602082840312156112c757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b8035801515811461122657600080fd5b6000806040838503121561130757600080fd5b823567ffffffffffffffff8082111561131f57600080fd5b818501915085601f83011261133357600080fd5b8135602082821115611347576113476112ce565b8160051b604051601f19603f8301168101818110868211171561136c5761136c6112ce565b60405292835281830193508481018201928984111561138a57600080fd5b948201945b838610156113af576113a08661121b565b8552948201949382019361138f565b96506113be90508782016112e4565b9450505050509250929050565b600080604083850312156113de57600080fd5b82356113e981611206565b915060208301356113f981611206565b809150509250929050565b6020808252600b908201526a426f74204164647265737360a81b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016114875761148761145f565b5060010190565b80820281158282048414176105895761058961145f565b6000826114c257634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156105895761058961145f565b808201808211156105895761058961145f565b6000602082840312156114ff57600080fd5b81516106b181611206565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561155a5784516001600160a01b031683529383019391830191600101611535565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220fbe051397715919a4ad518061e8dcf04b4e6324c15da40d9fc4daf86afc18e5f64736f6c63430008110033

Deployed Bytecode Sourcemap

4124:7358:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5120:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5120:56:0;;;;;;;;6088:80;;;;;;;;;;-1:-1:-1;6160:5:0;;;;;;;;;;;;-1:-1:-1;;;6160:5:0;;;;6088:80;;;;;;;:::i;6510:216::-;;;;;;;;;;-1:-1:-1;6510:216:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;6510:216:0;1344:187:1;5818:88:0;;;;;;;;;;-1:-1:-1;5891:12:0;;5818:88;;7028:442;;;;;;;;;;-1:-1:-1;7028:442:0;;;;;:::i;:::-;;:::i;2362:103::-;;;;;;;;;;-1:-1:-1;2362:103:0;;;;;:::i;:::-;2417:4;2452:5;-1:-1:-1;;;;;2441:16:0;;;2452:5;;2441:16;;2362:103;5912:80;;;;;;;;;;-1:-1:-1;5912:80:0;;4466:1;2391:36:1;;2379:2;2364:18;5912:80:0;2249:184:1;4809:37:0;;;;;;;;;;-1:-1:-1;4809:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6734:122;;;;;;;;;;-1:-1:-1;6734:122:0;;;;;:::i;:::-;;:::i;4537:56::-;;;;;;;;;;;;;;;;5083:30;;;;;;;;;;-1:-1:-1;5083:30:0;;;;-1:-1:-1;;;5083:30:0;;;;;;6258:105;;;;;;;;;;-1:-1:-1;6258:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6342:18:0;6324:7;6342:18;;;:9;:18;;;;;;;6258:105;2471:131;;;;;;;;;;;;;:::i;:::-;;6174:78;;;;;;;;;;-1:-1:-1;6226:7:0;6244:5;-1:-1:-1;;;;;6244:5:0;6174:78;;;-1:-1:-1;;;;;2602:32:1;;;2584:51;;2572:2;2557:18;6174:78:0;2438:203:1;11036:181:0;;;;;;;;;;-1:-1:-1;11036:181:0;;;;;:::i;:::-;;:::i;5998:84::-;;;;;;;;;;-1:-1:-1;6072:7:0;;;;;;;;;;;;-1:-1:-1;;;6072:7:0;;;;5998:84;;5055:19;;;;;;;;;;-1:-1:-1;5055:19:0;;;;-1:-1:-1;;;;;5055:19:0;;;6864:156;;;;;;;;;;-1:-1:-1;6864:156:0;;;;;:::i;:::-;;:::i;11225:186::-;;;;;;;;;;-1:-1:-1;11225:186:0;;;;;:::i;:::-;;:::i;4973:42::-;;;;;;;;;;-1:-1:-1;4973:42:0;;;;-1:-1:-1;;;;;4973:42:0;;;6369:133;;;;;;;;;;-1:-1:-1;6369:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6471:19:0;;;6453:7;6471:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6369:133;4886:80;;;;;;;;;;-1:-1:-1;4886:80:0;;;;-1:-1:-1;;;;;4886:80:0;;;10887:141;;;;;;;;;;-1:-1:-1;10887:141:0;;;;;:::i;:::-;;:::i;10774:105::-;;;;;;;;;;;;;:::i;5024:24::-;;;;;;;;;;-1:-1:-1;5024:24:0;;;;-1:-1:-1;;;;;5024:24:0;;;6510:216;6614:10;6585:4;6602:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6602:32:0;;;;;;;;;;:41;;;6659:37;6585:4;;6602:32;;6659:37;;;;6637:6;160:25:1;;148:2;133:18;;14:177;6659:37:0;;;;;;;;-1:-1:-1;6714:4:0;6510:216;;;;;:::o;7028:442::-;-1:-1:-1;;;;;7154:13:0;;7128:4;7154:13;;;:5;:13;;;;;;;;7153:14;:35;;;;-1:-1:-1;;;;;;7172:16:0;;;;;;:5;:16;;;;;;;;7171:17;7153:35;7145:59;;;;-1:-1:-1;;;7145:59:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7220:19:0;;;;;;:11;:19;;;;;;;;7240:10;7220:31;;;;;;;;-1:-1:-1;;7220:52:0;7217:186;;7322:69;;;;;;;;;;;-1:-1:-1;;;7322:69:0;;;;;;;;-1:-1:-1;;;;;7322:19:0;;-1:-1:-1;7322:19:0;;;:11;:19;;;;;7342:10;7322:31;;;;;;;;;;:69;;7358:6;;7322:35;:69::i;:::-;-1:-1:-1;;;;;7288:19:0;;;;;;:11;:19;;;;;;;;7308:10;7288:31;;;;;;;:103;7217:186;7422:40;7436:6;7444:9;7455:6;7422:13;:40::i;:::-;7415:47;;7028:442;;;;;;:::o;6734:122::-;6789:4;6813:35;6821:7;-1:-1:-1;;6813:7:0;:35::i;2471:131::-;2417:4;2452:5;-1:-1:-1;;;;;2452:5:0;2323:10;2441:16;2307:38;;;;-1:-1:-1;;;2307:38:0;;;;;;;:::i;:::-;2544:1:::1;2528:18:::0;;-1:-1:-1;;;;;;2528:18:0::1;::::0;;2562:32:::1;::::0;2584:51:1;;;2562:32:0::1;::::0;2572:2:1;2557:18;2562:32:0::1;;;;;;;2471:131::o:0;11036:181::-;2417:4;2452:5;-1:-1:-1;;;;;2452:5:0;2323:10;2441:16;2307:38;;;;-1:-1:-1;;;2307:38:0;;;;;;;:::i;:::-;11114:12:::1;:28:::0;;;11161:17;::::1;;11153:56;;;::::0;-1:-1:-1;;;11153:56:0;;5819:2:1;11153:56:0::1;::::0;::::1;5801:21:1::0;5858:2;5838:18;;;5831:30;5897:29;5877:18;;;5870:57;5944:18;;11153:56:0::1;5617:351:1::0;11153:56:0::1;11036:181:::0;:::o;6864:156::-;6944:4;6968:44;6982:10;6994:9;7005:6;6968:13;:44::i;11225:186::-;2417:4;2452:5;-1:-1:-1;;;;;2452:5:0;2323:10;2441:16;2307:38;;;;-1:-1:-1;;;2307:38:0;;;;;;;:::i;:::-;11315:9:::1;11310:94;11334:5;:12;11330:1;:16;11310:94;;;11386:6;11368:5;:15;11374:5;11380:1;11374:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11368:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11368:15:0;:24;;-1:-1:-1;;11368:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11348:3;::::1;::::0;::::1;:::i;:::-;;;;11310:94;;;;11225:186:::0;;:::o;10887:141::-;2417:4;2452:5;-1:-1:-1;;;;;2452:5:0;2323:10;2441:16;2307:38;;;;-1:-1:-1;;;2307:38:0;;;;;;;:::i;:::-;11017:3:::1;10999:13;10984:12;;:28;;;;:::i;:::-;10983:37;;;;:::i;:::-;10964:16;:56:::0;-1:-1:-1;10887:141:0:o;10774:105::-;10824:14;;10816:55;;-1:-1:-1;;;;;10824:14:0;;;;10849:21;10816:55;;;;;10824:14;10816:55;10824:14;10816:55;10849:21;10824:14;10816:55;;;;;;;;;;;;;;;;;;;451:190;537:7;573:12;565:6;;;;557:29;;;;-1:-1:-1;;;557:29:0;;;;;;;;:::i;:::-;-1:-1:-1;597:9:0;609:5;613:1;609;:5;:::i;:::-;597:17;451:190;-1:-1:-1;;;;;451:190:0:o;7478:864::-;-1:-1:-1;;;;;7596:13:0;;7570:4;7596:13;;;:5;:13;;;;;;;;7595:14;:35;;;;-1:-1:-1;;;;;;7614:16:0;;;;;;:5;:16;;;;;;;;7613:17;7595:35;7587:59;;;;-1:-1:-1;;;7587:59:0;;;;;;;:::i;:::-;7662:6;;;;7659:63;;;7678:41;7693:6;7701:9;7712:6;7678:14;:41::i;:::-;7671:48;;;;7659:63;7759:4;;-1:-1:-1;;;;;7746:17:0;;;7759:4;;7746:17;;;;:38;;-1:-1:-1;7780:4:0;;-1:-1:-1;;;;;7767:17:0;;;7780:4;;7767:17;;7746:38;7742:200;;;-1:-1:-1;;;;;7809:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;7872:16:0;;-1:-1:-1;;;;;7839:20:0;;;;;;:9;:20;;;;;;:29;;7862:6;;7839:29;:::i;:::-;:49;;7809:79;7801:129;;;;-1:-1:-1;;;7801:129:0;;7237:2:1;7801:129:0;;;7219:21:1;7276:2;7256:18;;;7249:30;7315:34;7295:18;;;7288:62;-1:-1:-1;;;7366:18:1;;;7359:35;7411:19;;7801:129:0;7035:401:1;7801:129:0;7965:16;:14;:16::i;:::-;7962:35;;;7984:10;:8;:10::i;:::-;8030:53;;;;;;;;;;;-1:-1:-1;;;8030:53:0;;;;;;;;-1:-1:-1;;;;;8030:17:0;;-1:-1:-1;8030:17:0;;;:9;:17;;;;;;;;:53;;8052:6;;8030:21;:53::i;:::-;-1:-1:-1;;;;;8010:17:0;;;;;;:9;:17;;;;;;;;:73;;;;8849:11;:19;;;;;;;;8848:20;8121:56;;8171:6;8121:56;;;8145:23;8153:6;8161;8145:7;:23::i;:::-;-1:-1:-1;;;;;8211:20:0;;;;;;:9;:20;;;;;;8096:81;;-1:-1:-1;8211:40:0;;8096:81;8211:24;:40::i;:::-;-1:-1:-1;;;;;8188:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8269:43;;;;;;;;;;8297:14;160:25:1;;148:2;133:18;;14:177;8269:43:0;;;;;;;;-1:-1:-1;8330:4:0;;7478:864;-1:-1:-1;;;;7478:864:0:o;8354:400::-;-1:-1:-1;;;;;8473:13:0;;8447:4;8473:13;;;:5;:13;;;;;;;;8472:14;:35;;;;-1:-1:-1;;;;;;8491:16:0;;;;;;:5;:16;;;;;;;;8490:17;8472:35;8464:59;;;;-1:-1:-1;;;8464:59:0;;;;;;;:::i;:::-;8554:53;;;;;;;;;;;-1:-1:-1;;;8554:53:0;;;;;;;;-1:-1:-1;;;;;8554:17:0;;-1:-1:-1;8554:17:0;;;:9;:17;;;;;;;;:53;;8576:6;;8554:21;:53::i;:::-;-1:-1:-1;;;;;8534:17:0;;;;;;;:9;:17;;;;;;:73;;;;8641:20;;;;;;;:32;;8666:6;8641:24;:32::i;:::-;-1:-1:-1;;;;;8618:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8689:35;;;;;;;;;;8717:6;160:25:1;;148:2;133:18;;14:177;8689:35:0;;;;;;;;-1:-1:-1;8742:4:0;8354:400;;;;;:::o;9214:197::-;9301:4;;9263;;-1:-1:-1;;;;;9301:4:0;9287:10;:18;;;;:38;;-1:-1:-1;9319:6:0;;;;9318:7;9287:38;:62;;;;-1:-1:-1;9338:11:0;;-1:-1:-1;;;9338:11:0;;;;9287:62;:116;;;;-1:-1:-1;9390:13:0;;9380:4;9362:24;;;;:9;:24;;;;;;:41;;9287:116;9280:123;;9214:197;:::o;9419:969::-;5224:6;:13;;-1:-1:-1;;5224:13:0;5233:4;5224:13;;;9517:4:::1;5224:6:::0;9499:24;;;:9:::1;:24;::::0;;;;;9608:13:::1;::::0;9499:24;;9608:17:::1;::::0;9624:1:::1;9608:17;:::i;:::-;9592:12;:33;9588:84;;9655:13;::::0;:17:::1;::::0;9671:1:::1;9655:17;:::i;:::-;9640:32;;9588:84;9709:16;::::0;;9723:1:::1;9709:16:::0;;;;;::::1;::::0;;9685:21:::1;::::0;9709:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9709:16:0::1;9685:40;;9754:4;9736;9741:1;9736:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9736:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9780:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;9780:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;9736:7;;9780:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9770:4;9775:1;9770:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9770:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;9808:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;9808:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;9880:12;;9808:6:::1;::::0;9923:4;;9950::::1;::::0;9970:15:::1;::::0;9808:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10034:18;10009:21;:43;10005:376;;10088:21;10068:17;10164:3;10147:14;10088:21:::0;10159:2:::1;10147:14;:::i;:::-;:20;;;;:::i;:::-;10124:43:::0;-1:-1:-1;10182:26:0::1;10211:24;10124:43:::0;10211:9;:24:::1;:::i;:::-;10258:14;::::0;10250:46:::1;::::0;10182:53;;-1:-1:-1;;;;;;10258:14:0::1;::::0;10250:46;::::1;;;::::0;10283:12;;10258:14:::1;10250:46:::0;10258:14;10250:46;10283:12;10258:14;10250:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;10319:20:0::1;::::0;10311:58:::1;::::0;-1:-1:-1;;;;;10319:20:0;;::::1;::::0;10311:58;::::1;;;::::0;10350:18;;10319:20:::1;10311:58:::0;10319:20;10311:58;10350:18;10319:20;10311:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10053:328;;;10005:376;-1:-1:-1::0;;5242:6:0;:14;;-1:-1:-1;;5242:14:0;;;-1:-1:-1;9419:969:0:o;8884:322::-;8951:7;8971:17;8991:33;9020:3;8991:24;9002:12;;8991:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;9080:4;9062:24;;;;:9;:24;;;;;;8971:53;;-1:-1:-1;9062:39:0;;8971:53;9062:28;:39::i;:::-;9053:4;9035:24;;;;:9;:24;;;;;;;:66;;;;9117:42;;-1:-1:-1;;;;;9117:42:0;;;;;;;9149:9;160:25:1;;148:2;133:18;;14:177;9117:42:0;;;;;;;;9177:21;:6;9188:9;9177:10;:21::i;:::-;9170:28;8884:322;-1:-1:-1;;;;8884:322:0:o;124:179::-;182:7;;214:5;218:1;214;:5;:::i;:::-;202:17;;243:1;238;:6;;230:46;;;;-1:-1:-1;;;230:46:0;;8884:2:1;230:46:0;;;8866:21:1;8923:2;8903:18;;;8896:30;8962:29;8942:18;;;8935:57;9009:18;;230:46:0;8682:351:1;647:246:0;705:7;729:1;734;729:6;725:47;;-1:-1:-1;759:1:0;752:8;;725:47;782:9;794:5;798:1;794;:5;:::i;:::-;782:17;-1:-1:-1;827:1:0;818:5;822:1;782:17;818:5;:::i;:::-;:10;810:56;;;;-1:-1:-1;;;810:56:0;;9240:2:1;810:56:0;;;9222:21:1;9279:2;9259:18;;;9252:30;9318:34;9298:18;;;9291:62;-1:-1:-1;;;9369:18:1;;;9362:31;9410:19;;810:56:0;9038:397:1;899:132:0;957:7;984:39;988:1;991;984:39;;;;;;;;;;;;;;;;;:3;:39::i;309:136::-;367:7;394:43;398:1;401;394:43;;;;;;;;;;;;;;;;;:3;:43::i;1037:189::-;1123:7;1158:12;1151:5;1143:28;;;;-1:-1:-1;;;1143:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1182:9:0;1194:5;1198:1;1194;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:134;953:20;;982:31;953:20;982:31;:::i;:::-;885:134;;;:::o;1024:315::-;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;1329:2;1314:18;;;;1301:32;;-1:-1:-1;;;1024:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;1997:247::-;2056:6;2109:2;2097:9;2088:7;2084:23;2080:32;2077:52;;;2125:1;2122;2115:12;2077:52;2164:9;2151:23;2183:31;2208:5;2183:31;:::i;2646:180::-;2705:6;2758:2;2746:9;2737:7;2733:23;2729:32;2726:52;;;2774:1;2771;2764:12;2726:52;-1:-1:-1;2797:23:1;;2646:180;-1:-1:-1;2646:180:1:o;2831:127::-;2892:10;2887:3;2883:20;2880:1;2873:31;2923:4;2920:1;2913:15;2947:4;2944:1;2937:15;2963:160;3028:20;;3084:13;;3077:21;3067:32;;3057:60;;3113:1;3110;3103:12;3128:1191;3218:6;3226;3279:2;3267:9;3258:7;3254:23;3250:32;3247:52;;;3295:1;3292;3285:12;3247:52;3335:9;3322:23;3364:18;3405:2;3397:6;3394:14;3391:34;;;3421:1;3418;3411:12;3391:34;3459:6;3448:9;3444:22;3434:32;;3504:7;3497:4;3493:2;3489:13;3485:27;3475:55;;3526:1;3523;3516:12;3475:55;3562:2;3549:16;3584:4;3607:2;3603;3600:10;3597:36;;;3613:18;;:::i;:::-;3659:2;3656:1;3652:10;3691:2;3685:9;3754:2;3750:7;3745:2;3741;3737:11;3733:25;3725:6;3721:38;3809:6;3797:10;3794:22;3789:2;3777:10;3774:18;3771:46;3768:72;;;3820:18;;:::i;:::-;3856:2;3849:22;3906:18;;;3940:15;;;;-1:-1:-1;3982:11:1;;;3978:20;;;4010:19;;;4007:39;;;4042:1;4039;4032:12;4007:39;4066:11;;;;4086:148;4102:6;4097:3;4094:15;4086:148;;;4168:23;4187:3;4168:23;:::i;:::-;4156:36;;4119:12;;;;4212;;;;4086:148;;;4253:6;-1:-1:-1;4278:35:1;;-1:-1:-1;4294:18:1;;;4278:35;:::i;:::-;4268:45;;;;;;3128:1191;;;;;:::o;4324:388::-;4392:6;4400;4453:2;4441:9;4432:7;4428:23;4424:32;4421:52;;;4469:1;4466;4459:12;4421:52;4508:9;4495:23;4527:31;4552:5;4527:31;:::i;:::-;4577:5;-1:-1:-1;4634:2:1;4619:18;;4606:32;4647:33;4606:32;4647:33;:::i;:::-;4699:7;4689:17;;;4324:388;;;;;:::o;4943:335::-;5145:2;5127:21;;;5184:2;5164:18;;;5157:30;-1:-1:-1;;;5218:2:1;5203:18;;5196:41;5269:2;5254:18;;4943:335::o;5283:329::-;5485:2;5467:21;;;5524:1;5504:18;;;5497:29;-1:-1:-1;;;5557:2:1;5542:18;;5535:36;5603:2;5588:18;;5283:329::o;5973:127::-;6034:10;6029:3;6025:20;6022:1;6015:31;6065:4;6062:1;6055:15;6089:4;6086:1;6079:15;6105:127;6166:10;6161:3;6157:20;6154:1;6147:31;6197:4;6194:1;6187:15;6221:4;6218:1;6211:15;6237:135;6276:3;6297:17;;;6294:43;;6317:18;;:::i;:::-;-1:-1:-1;6364:1:1;6353:13;;6237:135::o;6377:168::-;6450:9;;;6481;;6498:15;;;6492:22;;6478:37;6468:71;;6519:18;;:::i;6550:217::-;6590:1;6616;6606:132;;6660:10;6655:3;6651:20;6648:1;6641:31;6695:4;6692:1;6685:15;6723:4;6720:1;6713:15;6606:132;-1:-1:-1;6752:9:1;;6550:217::o;6772:128::-;6839:9;;;6860:11;;;6857:37;;;6874:18;;:::i;6905:125::-;6970:9;;;6991:10;;;6988:36;;;7004:18;;:::i;7441:251::-;7511:6;7564:2;7552:9;7543:7;7539:23;7535:32;7532:52;;;7580:1;7577;7570:12;7532:52;7612:9;7606:16;7631:31;7656:5;7631:31;:::i;7697:980::-;7959:4;8007:3;7996:9;7992:19;8038:6;8027:9;8020:25;8064:2;8102:6;8097:2;8086:9;8082:18;8075:34;8145:3;8140:2;8129:9;8125:18;8118:31;8169:6;8204;8198:13;8235:6;8227;8220:22;8273:3;8262:9;8258:19;8251:26;;8312:2;8304:6;8300:15;8286:29;;8333:1;8343:195;8357:6;8354:1;8351:13;8343:195;;;8422:13;;-1:-1:-1;;;;;8418:39:1;8406:52;;8513:15;;;;8478:12;;;;8454:1;8372:9;8343:195;;;-1:-1:-1;;;;;;;8594:32:1;;;;8589:2;8574:18;;8567:60;-1:-1:-1;;;8658:3:1;8643:19;8636:35;8555:3;7697:980;-1:-1:-1;;;7697:980:1:o

Swarm Source

ipfs://fbe051397715919a4ad518061e8dcf04b4e6324c15da40d9fc4daf86afc18e5f

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.