ETH Price: $2,546.55 (+3.35%)

Contract

0xD7Dadb6088665F30C28d92120b6283c8E52eFE93
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve205474932024-08-17 9:37:1111 days ago1723887431IN
0xD7Dadb60...8E52eFE93
0 ETH0.000028711.18066909
Approve157362362022-10-13 2:33:35686 days ago1665628415IN
0xD7Dadb60...8E52eFE93
0 ETH0.0005255817.98230744
Approve155778222022-09-20 23:00:11708 days ago1663714811IN
0xD7Dadb60...8E52eFE93
0 ETH0.000330457.09063245
Approve155532622022-09-17 12:20:35711 days ago1663417235IN
0xD7Dadb60...8E52eFE93
0 ETH0.000240055.15087312
Approve153366052022-08-14 0:34:14746 days ago1660437254IN
0xD7Dadb60...8E52eFE93
0 ETH0.0004823110.34923726
Approve152792442022-08-05 1:02:32755 days ago1659661352IN
0xD7Dadb60...8E52eFE93
0 ETH0.000311896.6924956
Transfer149823312022-06-18 1:25:35803 days ago1655515535IN
0xD7Dadb60...8E52eFE93
0 ETH0.0045489533.63270514
Transfer149809742022-06-17 19:50:17803 days ago1655495417IN
0xD7Dadb60...8E52eFE93
0 ETH0.0038027728.11332405
Transfer149794672022-06-17 13:40:52803 days ago1655473252IN
0xD7Dadb60...8E52eFE93
0 ETH0.0031758223.48046959
Transfer149790952022-06-17 12:08:24803 days ago1655467704IN
0xD7Dadb60...8E52eFE93
0 ETH0.0043207231.94241149
Transfer149788842022-06-17 11:16:38803 days ago1655464598IN
0xD7Dadb60...8E52eFE93
0 ETH0.0022106216.34427431
Transfer149772922022-06-17 4:49:18804 days ago1655441358IN
0xD7Dadb60...8E52eFE93
0 ETH0.0034095725.20868787
Transfer149762032022-06-17 0:18:55804 days ago1655425135IN
0xD7Dadb60...8E52eFE93
0 ETH0.0056042541.43506773
Transfer149745852022-06-16 17:31:25804 days ago1655400685IN
0xD7Dadb60...8E52eFE93
0 ETH0.0065762448.6214373
Transfer149720002022-06-16 6:58:24805 days ago1655362704IN
0xD7Dadb60...8E52eFE93
0 ETH0.0028084420.76423693
Transfer149620752022-06-14 13:53:27806 days ago1655214807IN
0xD7Dadb60...8E52eFE93
0 ETH0.0084797862.68972573
Transfer149619922022-06-14 13:31:35806 days ago1655213495IN
0xD7Dadb60...8E52eFE93
0 ETH0.004099130.3093829
Transfer149619762022-06-14 13:28:30806 days ago1655213310IN
0xD7Dadb60...8E52eFE93
0 ETH0.0045515333.64877767
Transfer149619682022-06-14 13:26:54806 days ago1655213214IN
0xD7Dadb60...8E52eFE93
0 ETH0.0042611931.50513897
Transfer149598242022-06-14 4:20:07807 days ago1655180407IN
0xD7Dadb60...8E52eFE93
0 ETH0.0053330139.42614458
Transfer149581582022-06-13 21:23:51807 days ago1655155431IN
0xD7Dadb60...8E52eFE93
0 ETH0.0039225328.99865142
Transfer149541952022-06-13 5:00:52808 days ago1655096452IN
0xD7Dadb60...8E52eFE93
0 ETH0.0047476635.09875103
Transfer149538662022-06-13 3:44:00808 days ago1655091840IN
0xD7Dadb60...8E52eFE93
0 ETH0.01522965112.5904278
Transfer149538492022-06-13 3:39:36808 days ago1655091576IN
0xD7Dadb60...8E52eFE93
0 ETH0.0108678780.34444286
Transfer149466282022-06-11 21:54:44809 days ago1654984484IN
0xD7Dadb60...8E52eFE93
0 ETH0.0035770526.44457172
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
157362572022-10-13 2:37:59686 days ago1665628679
0xD7Dadb60...8E52eFE93
0.00033319 ETH
157362572022-10-13 2:37:59686 days ago1665628679
0xD7Dadb60...8E52eFE93
0.00033319 ETH
157362572022-10-13 2:37:59686 days ago1665628679
0xD7Dadb60...8E52eFE93
0.00066639 ETH
157361762022-10-13 2:21:35686 days ago1665627695
0xD7Dadb60...8E52eFE93
0.00033319 ETH
157361762022-10-13 2:21:35686 days ago1665627695
0xD7Dadb60...8E52eFE93
0.00033319 ETH
157361762022-10-13 2:21:35686 days ago1665627695
0xD7Dadb60...8E52eFE93
0.00066639 ETH
155532672022-09-17 12:21:35711 days ago1663417295
0xD7Dadb60...8E52eFE93
0.00137626 ETH
155532672022-09-17 12:21:35711 days ago1663417295
0xD7Dadb60...8E52eFE93
0.00137626 ETH
155532672022-09-17 12:21:35711 days ago1663417295
0xD7Dadb60...8E52eFE93
0.00275252 ETH
154674292022-09-03 20:17:21725 days ago1662236241
0xD7Dadb60...8E52eFE93
0.00009041 ETH
154674292022-09-03 20:17:21725 days ago1662236241
0xD7Dadb60...8E52eFE93
0.00009041 ETH
154674292022-09-03 20:17:21725 days ago1662236241
0xD7Dadb60...8E52eFE93
0.00018083 ETH
153366342022-08-14 0:38:34746 days ago1660437514
0xD7Dadb60...8E52eFE93
0.00055696 ETH
153366342022-08-14 0:38:34746 days ago1660437514
0xD7Dadb60...8E52eFE93
0.00055696 ETH
153366342022-08-14 0:38:34746 days ago1660437514
0xD7Dadb60...8E52eFE93
0.00111393 ETH
152881342022-08-06 10:17:15753 days ago1659781035
0xD7Dadb60...8E52eFE93
0.00142471 ETH
152881342022-08-06 10:17:15753 days ago1659781035
0xD7Dadb60...8E52eFE93
0.00142471 ETH
152881342022-08-06 10:17:15753 days ago1659781035
0xD7Dadb60...8E52eFE93
0.00284942 ETH
149363772022-06-10 3:55:44811 days ago1654833344
0xD7Dadb60...8E52eFE93
0.01173132 ETH
149363772022-06-10 3:55:44811 days ago1654833344
0xD7Dadb60...8E52eFE93
0.01173132 ETH
149363772022-06-10 3:55:44811 days ago1654833344
0xD7Dadb60...8E52eFE93
0.02346265 ETH
149072332022-06-05 5:10:49816 days ago1654405849
0xD7Dadb60...8E52eFE93
0.01444912 ETH
149072332022-06-05 5:10:49816 days ago1654405849
0xD7Dadb60...8E52eFE93
0.01444912 ETH
149072332022-06-05 5:10:49816 days ago1654405849
0xD7Dadb60...8E52eFE93
0.02889824 ETH
149065992022-06-05 2:26:23816 days ago1654395983
0xD7Dadb60...8E52eFE93
0.04969247 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x0Dfde940...Cd3F44B45
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Miner

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-04-17
*/

/** 
 * SPDX-License-Identifier: Unlicensed

Welcome to SHIB MINER

Empowering the Ethereum blockchain.

A new unique reward token and future ecosystem from miners on the ethereum blockchain.

Buy on Uniswap

Website: www.shib-miner.com

Telegram: https://t.me/ShibMinerToken

Twitter: @MinerShib




 * */

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;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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);
}

interface AntiSnipe {
    function checkUser(address from, address to, uint256 amt) external returns (bool);
    function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external;
    function setLpPair(address pair, bool enabled) external;
    function setProtections(bool _as, bool _ag, bool _ab, bool _algo) external;
    function setGasPriceLimit(uint256 gas) external;
    function removeSniper(address account) external;
    function getSniperAmt() external view returns (uint256);
    function removeBlacklisted(address account) external;
    function isBlacklisted(address account) external view returns (bool);
    function setBlacklistEnabled(address account, bool enabled) external;
    function setBlacklistEnabledMultiple(address[] memory accounts, bool enabled) external;
}
contract Miner 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 _isExcluded;
    address[] private _excluded;
    mapping (address => bool) private _isBlackListedBot;
    address[] private _blackListedBots;
    
    mapping (address => User) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1 * 1e18 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    string private constant _name = unicode"Shib Miner";
    string private constant _symbol = unicode"MINER";
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 2;
    uint256 private _teamFee = 10;
    uint256 private _launchTime;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    uint256 private _maxBuyAmount;
    uint256 public maxWallet =  20000000000000001 * 10**9; 

    uint256 private _BuytaxFee = 2;
    uint256 private _BuyteamFee = 10;
   
    uint256 private _SelltaxFee = 2;
    uint256 private _SellteamFee = 10;
    
    address payable private _FeeAddress;
    address payable private _FeeAddress2;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private _cooldownEnabled = true;
    bool private inSwap = false;
    uint256 private buyLimitEnd;
    AntiSnipe antiSnipe;

    

    struct User {
        uint256 buy;
        uint256 sell;
        bool exists;
    }

    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event CooldownEnabledUpdated(bool _cooldown);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable FeeAddress, address payable FeeAddress2) {
        _FeeAddress = FeeAddress;
        _FeeAddress2 = FeeAddress2;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        
        _isExcludedFromFee[FeeAddress] = true;
        _isExcludedFromFee[FeeAddress2] = true;
        
        _isBlackListedBot[address(0x66f049111958809841Bbe4b81c034Da2D953AA0c)] = true;
        _blackListedBots.push(address(0x66f049111958809841Bbe4b81c034Da2D953AA0c));
        
        _isBlackListedBot[address(0x000000005736775Feb0C8568e7DEe77222a26880)] = true;
        _blackListedBots.push(address(0x000000005736775Feb0C8568e7DEe77222a26880));
        
        _isBlackListedBot[address(0x00000000003b3cc22aF3aE1EAc0440BcEe416B40)] = true;
        _blackListedBots.push(address(0x00000000003b3cc22aF3aE1EAc0440BcEe416B40));
        
        _isBlackListedBot[address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D)] = true;
        _blackListedBots.push(address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D));

        _isBlackListedBot[address(0xbcC7f6355bc08f6b7d3a41322CE4627118314763)] = true;
        _blackListedBots.push(address(0xbcC7f6355bc08f6b7d3a41322CE4627118314763));

        _isBlackListedBot[address(0x1d6E8BAC6EA3730825bde4B005ed7B2B39A2932d)] = true;
        _blackListedBots.push(address(0x1d6E8BAC6EA3730825bde4B005ed7B2B39A2932d));

        _isBlackListedBot[address(0x000000000035B5e5ad9019092C665357240f594e)] = true;
        _blackListedBots.push(address(0x000000000035B5e5ad9019092C665357240f594e));

        _isBlackListedBot[address(0x1315c6C26123383a2Eb369a53Fb72C4B9f227EeC)] = true;
        _blackListedBots.push(address(0x1315c6C26123383a2Eb369a53Fb72C4B9f227EeC));

        _isBlackListedBot[address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D)] = true;
        _blackListedBots.push(address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D));

        _isBlackListedBot[address(0x90484Bb9bc05fD3B5FF1fe412A492676cd81790C)] = true;
        _blackListedBots.push(address(0x90484Bb9bc05fD3B5FF1fe412A492676cd81790C));

        _isBlackListedBot[address(0xA62c5bA4D3C95b3dDb247EAbAa2C8E56BAC9D6dA)] = true;
        _blackListedBots.push(address(0xA62c5bA4D3C95b3dDb247EAbAa2C8E56BAC9D6dA));
        
        _isBlackListedBot[address(0x42c1b5e32d625b6C618A02ae15189035e0a92FE7)] = true;
        _blackListedBots.push(address(0x42c1b5e32d625b6C618A02ae15189035e0a92FE7));

        _isBlackListedBot[address(0xA94E56EFc384088717bb6edCccEc289A72Ec2381)] = true;
        _blackListedBots.push(address(0xA94E56EFc384088717bb6edCccEc289A72Ec2381));

        _isBlackListedBot[address(0xf13FFadd3682feD42183AF8F3f0b409A9A0fdE31)] = true;
        _blackListedBots.push(address(0xf13FFadd3682feD42183AF8F3f0b409A9A0fdE31));

        _isBlackListedBot[address(0x376a6EFE8E98f3ae2af230B3D45B8Cc5e962bC27)] = true;
        _blackListedBots.push(address(0x376a6EFE8E98f3ae2af230B3D45B8Cc5e962bC27));

        _isBlackListedBot[address(0xEE2A9147ffC94A73f6b945A6DB532f8466B78830)] = true;
        _blackListedBots.push(address(0xEE2A9147ffC94A73f6b945A6DB532f8466B78830));

        _isBlackListedBot[address(0xdE2a6d80989C3992e11B155430c3F59792FF8Bb7)] = true;
        _blackListedBots.push(address(0xdE2a6d80989C3992e11B155430c3F59792FF8Bb7));

        _isBlackListedBot[address(0x1e62A12D4981e428D3F4F28DF261fdCB2CE743Da)] = true;
        _blackListedBots.push(address(0x1e62A12D4981e428D3F4F28DF261fdCB2CE743Da));

        _isBlackListedBot[address(0x5136a9A5D077aE4247C7706b577F77153C32A01C)] = true;
        _blackListedBots.push(address(0x5136a9A5D077aE4247C7706b577F77153C32A01C));

        _isBlackListedBot[address(0x0E388888309d64e97F97a4740EC9Ed3DADCA71be)] = true;
        _blackListedBots.push(address(0x0E388888309d64e97F97a4740EC9Ed3DADCA71be));

        _isBlackListedBot[address(0x255D9BA73a51e02d26a5ab90d534DB8a80974a12)] = true;
        _blackListedBots.push(address(0x255D9BA73a51e02d26a5ab90d534DB8a80974a12));

        _isBlackListedBot[address(0xA682A66Ea044Aa1DC3EE315f6C36414F73054b47)] = true;
        _blackListedBots.push(address(0xA682A66Ea044Aa1DC3EE315f6C36414F73054b47));

        _isBlackListedBot[address(0x80e09203480A49f3Cf30a4714246f7af622ba470)] = true;
        _blackListedBots.push(address(0x80e09203480A49f3Cf30a4714246f7af622ba470));

        _isBlackListedBot[address(0x12e48B837AB8cB9104C5B95700363547bA81c8a4)] = true;
        _blackListedBots.push(address(0x12e48B837AB8cB9104C5B95700363547bA81c8a4));

        _isBlackListedBot[address(0xa57Bd00134B2850B2a1c55860c9e9ea100fDd6CF)] = true;
        _blackListedBots.push(address(0xa57Bd00134B2850B2a1c55860c9e9ea100fDd6CF));

        _isBlackListedBot[address(0x0000000000007F150Bd6f54c40A34d7C3d5e9f56)] = true;
        _blackListedBots.push(address(0x0000000000007F150Bd6f54c40A34d7C3d5e9f56));

    

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return 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 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 removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!_isBlackListedBot[to], "You have no power here!");
        require(!_isBlackListedBot[msg.sender], "You have no power here!");

        if(from != owner() && to != owner()) {
            if(_cooldownEnabled) {
                if(!cooldown[msg.sender].exists) {
                    cooldown[msg.sender] = User(0,0,true);
                }
            }

            // buy
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                _taxFee = _BuytaxFee;
                _teamFee = _BuyteamFee;
                if(_cooldownEnabled) {
                    if(buyLimitEnd > block.timestamp) {
                        require(amount <= _maxBuyAmount);
                        require(cooldown[to].buy < block.timestamp, "Your buy cooldown has not expired.");
                        cooldown[to].buy = block.timestamp + (15 seconds);
                    }
                }
            }

            // sell
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _taxFee = _SelltaxFee;
                _teamFee = _SellteamFee;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            
            if(!inSwap && from != uniswapV2Pair && tradingOpen) {
                if(contractTokenBalance > 0) {
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    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 sendETHToFee(uint256 amount) private {
        _FeeAddress.transfer(amount.div(2));
        _FeeAddress2.transfer(amount.div(2));
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
        if(!takeFee || sender == uniswapV2Pair || recipient == uniswapV2Pair)
            restoreAllFee();
    }

    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 _transferToExcluded(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);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);    
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        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 _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;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    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 _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 addLiquidity() 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);
        _maxBuyAmount = 20000000000000001 * 10**9; // 2% TX LIMIT 
        _launchTime = block.timestamp;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
        buyLimitEnd = block.timestamp + (300 seconds);
    }

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        _cooldownEnabled = onoff;
        emit CooldownEnabledUpdated(_cooldownEnabled);
    }
    
    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }
    
    function excludeAccount(address account) external onlyOwner() {
        require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude Uniswap router.');
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }
    
    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }
    
    function isBlackListed(address account) public view returns (bool) {
        return _isBlackListedBot[account];
    }
    
    function addBotToBlackList(address account) external {
        require(_msgSender() == _FeeAddress);
        require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, "We can not blacklist Uniswap router.");
        require(!_isBlackListedBot[account], "Account is already blacklisted");
        _isBlackListedBot[account] = true;
        _blackListedBots.push(account);
    }


    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 2 / 100)/1e9, "Cannot set maxWallet lower than 2%");
        maxWallet = newNum * (10**9);
    }
    
    function removeBotFromBlackList(address account) external {
        require(_msgSender() == _FeeAddress);
        require(_isBlackListedBot[account], "Account is not blacklisted");
        for (uint256 i = 0; i < _blackListedBots.length; i++) {
            if (_blackListedBots[i] == account) {
                _blackListedBots[i] = _blackListedBots[_blackListedBots.length - 1];
                _isBlackListedBot[account] = false;
                _blackListedBots.pop();
                break;
            }
        }
    }

    function getSniperAmt(address account) external onlyOwner {
        (account);
    }
    

    function removeSniper(address account) external onlyOwner {
        (account);
    }
    
    function setExcludeFromFee(address account, bool excluded) external onlyOwner() {
        _isExcludedFromFee[account] = excluded;
    }

    function cooldownEnabled() public view returns (bool) {
        return _cooldownEnabled;
    }

    function timeToBuy(address buyer) public view returns (uint) {
        return block.timestamp - cooldown[buyer].buy;
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"},{"internalType":"address payable","name":"FeeAddress2","type":"address"}],"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":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","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":"account","type":"address"}],"name":"addBotToBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","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":"cooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getSniperAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBotFromBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"timeToBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106101f25760003560e01c80637ded4d6a1161010d578063c9567bf9116100a0578063e47d60601161006f578063e47d6060146105dd578063e8078d9414610616578063f2cc0c181461062b578063f84354f11461064b578063f8b45b051461066b57600080fd5b8063c9567bf914610534578063cba0e99614610549578063db92dbb614610582578063dd62ed3e1461059757600080fd5b8063a985ceef116100dc578063a985ceef146104c0578063af9549e0146104df578063c18bc195146104ff578063c3c8cd801461051f57600080fd5b80637ded4d6a146104345780638da5cb5b1461045457806395d89b4114610472578063a9059cbb146104a057600080fd5b80634303443d1161018557806368a3a6a51161015457806368a3a6a5146103ca5780636fc3eaec146103ea57806370a08231146103ff578063715018a61461041f57600080fd5b80634303443d1461033157806349bd5a5e146103515780635342acb4146103715780635932ead1146103aa57600080fd5b806323b872dd116101c157806323b872dd146102d35780632e097335146102f3578063313ce5671461031557806333251a0b146102f357600080fd5b806306fdde03146101fe578063095ea7b3146102435780631694505e1461027357806318160ddd146102ab57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5060408051808201909152600a81526929b434b11026b4b732b960b11b60208201525b60405161023a91906128bf565b60405180910390f35b34801561024f57600080fd5b5061026361025e366004612812565b610681565b604051901515815260200161023a565b34801561027f57600080fd5b50601a54610293906001600160a01b031681565b6040516001600160a01b03909116815260200161023a565b3480156102b757600080fd5b50676765c793fa10079d601b1b5b60405190815260200161023a565b3480156102df57600080fd5b506102636102ee3660046127a3565b610698565b3480156102ff57600080fd5b5061031361030e366004612730565b610701565b005b34801561032157600080fd5b506040516009815260200161023a565b34801561033d57600080fd5b5061031361034c366004612730565b610737565b34801561035d57600080fd5b50601b54610293906001600160a01b031681565b34801561037d57600080fd5b5061026361038c366004612730565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156103b657600080fd5b506103136103c536600461283e565b61089f565b3480156103d657600080fd5b506102c56103e5366004612730565b610924565b3480156103f657600080fd5b50610313610947565b34801561040b57600080fd5b506102c561041a366004612730565b610971565b34801561042b57600080fd5b50610313610993565b34801561044057600080fd5b5061031361044f366004612730565b610a07565b34801561046057600080fd5b506000546001600160a01b0316610293565b34801561047e57600080fd5b5060408051808201909152600581526426a4a722a960d91b602082015261022d565b3480156104ac57600080fd5b506102636104bb366004612812565b610bab565b3480156104cc57600080fd5b50601b54600160a81b900460ff16610263565b3480156104eb57600080fd5b506103136104fa3660046127e4565b610bb8565b34801561050b57600080fd5b5061031361051a366004612878565b610c0d565b34801561052b57600080fd5b50610313610cd6565b34801561054057600080fd5b50610313610d0c565b34801561055557600080fd5b50610263610564366004612730565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561058e57600080fd5b506102c5610d5a565b3480156105a357600080fd5b506102c56105b236600461276a565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105e957600080fd5b506102636105f8366004612730565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561062257600080fd5b50610313610d77565b34801561063757600080fd5b50610313610646366004612730565b61112b565b34801561065757600080fd5b50610313610666366004612730565b6112f6565b34801561067757600080fd5b506102c560135481565b600061068e338484611483565b5060015b92915050565b60006106a58484846115a7565b6106f784336106f285604051806060016040528060288152602001612aab602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611b40565b611483565b5060019392505050565b6000546001600160a01b031633146107345760405162461bcd60e51b815260040161072b90612914565b60405180910390fd5b50565b6018546001600160a01b0316336001600160a01b03161461075757600080fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03821614156107d05760405162461bcd60e51b8152602060048201526024808201527f57652063616e206e6f7420626c61636b6c69737420556e697377617020726f756044820152633a32b91760e11b606482015260840161072b565b6001600160a01b03811660009081526008602052604090205460ff16156108395760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920626c61636b6c69737465640000604482015260640161072b565b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6000546001600160a01b031633146108c95760405162461bcd60e51b815260040161072b90612914565b601b805460ff60a81b1916600160a81b8315158102919091179182905560405160ff9190920416151581527f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f287069060200160405180910390a150565b6001600160a01b0381166000908152600a60205260408120546106929042612a13565b6018546001600160a01b0316336001600160a01b03161461096757600080fd5b4761073481611b7a565b6001600160a01b03811660009081526002602052604081205461069290611bff565b6000546001600160a01b031633146109bd5760405162461bcd60e51b815260040161072b90612914565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6018546001600160a01b0316336001600160a01b031614610a2757600080fd5b6001600160a01b03811660009081526008602052604090205460ff16610a8f5760405162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c6973746564000000000000604482015260640161072b565b60005b600954811015610ba757816001600160a01b031660098281548110610ab957610ab9612a71565b6000918252602090912001546001600160a01b03161415610b955760098054610ae490600190612a13565b81548110610af457610af4612a71565b600091825260209091200154600980546001600160a01b039092169183908110610b2057610b20612a71565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600890915260409020805460ff191690556009805480610b6f57610b6f612a5b565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610b9f81612a2a565b915050610a92565b5050565b600061068e3384846115a7565b6000546001600160a01b03163314610be25760405162461bcd60e51b815260040161072b90612914565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c375760405162461bcd60e51b815260040161072b90612914565b633b9aca006064610c54676765c793fa10079d601b1b60026129f4565b610c5e91906129d2565b610c6891906129d2565b811015610cc25760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261322560f01b606482015260840161072b565b610cd081633b9aca006129f4565b60135550565b6018546001600160a01b0316336001600160a01b031614610cf657600080fd5b6000610d0130610971565b905061073481611c83565b6000546001600160a01b03163314610d365760405162461bcd60e51b815260040161072b90612914565b601b805460ff60a01b1916600160a01b179055610d554261012c6129ba565b601c55565b601b54600090610d72906001600160a01b0316610971565b905090565b6000546001600160a01b03163314610da15760405162461bcd60e51b815260040161072b90612914565b601b54600160a01b900460ff1615610dfb5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161072b565b601a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610e3a3082676765c793fa10079d601b1b611483565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e7357600080fd5b505afa158015610e87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eab919061274d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ef357600080fd5b505afa158015610f07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2b919061274d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fab919061274d565b601b80546001600160a01b0319166001600160a01b03928316179055601a541663f305d7194730610fdb81610971565b600080610ff06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561105357600080fd5b505af1158015611067573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061108c9190612891565b50506a108b2a2c280290cf9aca006012555042600f55601b54601a5460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b1580156110f357600080fd5b505af1158015611107573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba7919061285b565b6000546001600160a01b031633146111555760405162461bcd60e51b815260040161072b90612914565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03821614156111cd5760405162461bcd60e51b815260206004820152602260248201527f57652063616e206e6f74206578636c75646520556e697377617020726f757465604482015261391760f11b606482015260840161072b565b6001600160a01b03811660009081526006602052604090205460ff16156112365760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161072b565b6001600160a01b03811660009081526002602052604090205415611290576001600160a01b03811660009081526002602052604090205461127690611bff565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031633146113205760405162461bcd60e51b815260040161072b90612914565b6001600160a01b03811660009081526006602052604090205460ff166113885760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161072b565b60005b600754811015610ba757816001600160a01b0316600782815481106113b2576113b2612a71565b6000918252602090912001546001600160a01b0316141561147157600780546113dd90600190612a13565b815481106113ed576113ed612a71565b600091825260209091200154600780546001600160a01b03909216918390811061141957611419612a71565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600382526040808220829055600690925220805460ff191690556007805480610b6f57610b6f612a5b565b8061147b81612a2a565b91505061138b565b6001600160a01b0383166114e55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161072b565b6001600160a01b0382166115465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161072b565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661160b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161072b565b6001600160a01b03821661166d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161072b565b600081116116cf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161072b565b6001600160a01b03821660009081526008602052604090205460ff16156117325760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b604482015260640161072b565b3360009081526008602052604090205460ff161561178c5760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b604482015260640161072b565b6000546001600160a01b038481169116148015906117b857506000546001600160a01b03838116911614155b15611ae357601b54600160a81b900460ff161561183857336000908152600a602052604090206002015460ff166118385760408051606081018252600080825260208083018281526001848601818152338552600a909352949092209251835590519282019290925590516002909101805460ff19169115159190911790555b601b546001600160a01b0384811691161480156118635750601a546001600160a01b03838116911614155b801561188857506001600160a01b03821660009081526005602052604090205460ff16155b15611a0e57601b54600160a01b900460ff166118e65760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e0000000000000000604482015260640161072b565b6013546118f283610971565b6118fc90836129ba565b11156119405760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161072b565b601454600d55601554600e55601b54600160a81b900460ff1615611a0e5742601c541115611a0e5760125481111561197757600080fd5b6001600160a01b0382166000908152600a602052604090205442116119e95760405162461bcd60e51b815260206004820152602260248201527f596f75722062757920636f6f6c646f776e20686173206e6f7420657870697265604482015261321760f11b606482015260840161072b565b6119f442600f6129ba565b6001600160a01b0383166000908152600a60205260409020555b601b546001600160a01b038381169116148015611a395750601a546001600160a01b03848116911614155b8015611a5e57506001600160a01b03831660009081526005602052604090205460ff16155b15611a7057601654600d55601754600e555b6000611a7b30610971565b601b54909150600160b01b900460ff16158015611aa65750601b546001600160a01b03858116911614155b8015611abb5750601b54600160a01b900460ff165b15611ae1578015611acf57611acf81611c83565b478015611adf57611adf47611b7a565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff1680611b2557506001600160a01b03831660009081526005602052604090205460ff165b15611b2e575060005b611b3a84848484611e0c565b50505050565b60008184841115611b645760405162461bcd60e51b815260040161072b91906128bf565b506000611b718486612a13565b95945050505050565b6018546001600160a01b03166108fc611b94836002611fb5565b6040518115909202916000818181858888f19350505050158015611bbc573d6000803e3d6000fd5b506019546001600160a01b03166108fc611bd7836002611fb5565b6040518115909202916000818181858888f19350505050158015610ba7573d6000803e3d6000fd5b6000600b54821115611c665760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161072b565b6000611c70611ff7565b9050611c7c8382611fb5565b9392505050565b601b805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611ccb57611ccb612a71565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d1f57600080fd5b505afa158015611d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d57919061274d565b81600181518110611d6a57611d6a612a71565b6001600160a01b039283166020918202929092010152601a54611d909130911684611483565b601a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dc9908590600090869030904290600401612949565b600060405180830381600087803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b5050601b805460ff60b01b1916905550505050565b80611e1957611e1961201a565b6001600160a01b03841660009081526006602052604090205460ff168015611e5a57506001600160a01b03831660009081526006602052604090205460ff16155b15611e6f57611e6a848484612048565b611f6d565b6001600160a01b03841660009081526006602052604090205460ff16158015611eb057506001600160a01b03831660009081526006602052604090205460ff165b15611ec057611e6a84848461216e565b6001600160a01b03841660009081526006602052604090205460ff16158015611f0257506001600160a01b03831660009081526006602052604090205460ff16155b15611f1257611e6a848484612217565b6001600160a01b03841660009081526006602052604090205460ff168015611f5257506001600160a01b03831660009081526006602052604090205460ff165b15611f6257611e6a84848461225b565b611f6d848484612217565b801580611f875750601b546001600160a01b038581169116145b80611f9f5750601b546001600160a01b038481169116145b15611b3a57611b3a601054600d55601154600e55565b6000611c7c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ce565b60008060006120046122fc565b90925090506120138282611fb5565b9250505090565b600d5415801561202a5750600e54155b1561203157565b600d8054601055600e805460115560009182905555565b60008060008060008061205a876124a0565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061208c90886124fd565b6001600160a01b038a166000908152600360209081526040808320939093556002905220546120bb90876124fd565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546120ea908661253f565b6001600160a01b03891660009081526002602052604090205561210c8161259e565b61211684836125e8565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161215b91815260200190565b60405180910390a3505050505050505050565b600080600080600080612180876124a0565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506121b290876124fd565b6001600160a01b03808b16600090815260026020908152604080832094909455918b168152600390915220546121e8908461253f565b6001600160a01b0389166000908152600360209081526040808320939093556002905220546120ea908661253f565b600080600080600080612229876124a0565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506120bb90876124fd565b60008060008060008061226d876124a0565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061229f90886124fd565b6001600160a01b038a166000908152600360209081526040808320939093556002905220546121b290876124fd565b600081836122ef5760405162461bcd60e51b815260040161072b91906128bf565b506000611b7184866129d2565b600b546000908190676765c793fa10079d601b1b825b60075481101561245f5782600260006007848154811061233457612334612a71565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061239f575081600360006007848154811061237857612378612a71565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156123bd575050600b5493676765c793fa10079d601b1b9350915050565b61240360026000600784815481106123d7576123d7612a71565b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906124fd565b925061244b600360006007848154811061241f5761241f612a71565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906124fd565b91508061245781612a2a565b915050612312565b50600b5461247890676765c793fa10079d601b1b611fb5565b821015612497575050600b5492676765c793fa10079d601b1b92509050565b90939092509050565b60008060008060008060008060006124bd8a600d54600e5461260c565b92509250925060006124cd611ff7565b905060008060006124e08e878787612661565b919e509c509a509598509396509194505050505091939550919395565b6000611c7c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b40565b60008061254c83856129ba565b905083811015611c7c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161072b565b60006125a8611ff7565b905060006125b683836126b1565b306000908152600260205260409020549091506125d3908261253f565b30600090815260026020526040902055505050565b600b546125f590836124fd565b600b55600c54612605908261253f565b600c555050565b6000808080612626606461262089896126b1565b90611fb5565b9050600061263960646126208a896126b1565b905060006126518261264b8b866124fd565b906124fd565b9992985090965090945050505050565b600080808061267088866126b1565b9050600061267e88876126b1565b9050600061268c88886126b1565b9050600061269e8261264b86866124fd565b939b939a50919850919650505050505050565b6000826126c057506000610692565b60006126cc83856129f4565b9050826126d985836129d2565b14611c7c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161072b565b60006020828403121561274257600080fd5b8135611c7c81612a87565b60006020828403121561275f57600080fd5b8151611c7c81612a87565b6000806040838503121561277d57600080fd5b823561278881612a87565b9150602083013561279881612a87565b809150509250929050565b6000806000606084860312156127b857600080fd5b83356127c381612a87565b925060208401356127d381612a87565b929592945050506040919091013590565b600080604083850312156127f757600080fd5b823561280281612a87565b9150602083013561279881612a9c565b6000806040838503121561282557600080fd5b823561283081612a87565b946020939093013593505050565b60006020828403121561285057600080fd5b8135611c7c81612a9c565b60006020828403121561286d57600080fd5b8151611c7c81612a9c565b60006020828403121561288a57600080fd5b5035919050565b6000806000606084860312156128a657600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156128ec578581018301518582016040015282016128d0565b818111156128fe576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129995784516001600160a01b031683529383019391830191600101612974565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156129cd576129cd612a45565b500190565b6000826129ef57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612a0e57612a0e612a45565b500290565b600082821015612a2557612a25612a45565b500390565b6000600019821415612a3e57612a3e612a45565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461073457600080fd5b801515811461073457600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d2158d64e1b0d31f407c433f326bbd66a650338d39c99da473839f416f81a95c64736f6c63430008070033

Deployed Bytecode Sourcemap

4956:22619:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12038:83;;;;;;;;;;-1:-1:-1;12108:5:0;;;;;;;;;;;;-1:-1:-1;;;12108:5:0;;;;12038:83;;;;;;;:::i;:::-;;;;;;;;12890:161;;;;;;;;;;-1:-1:-1;12890:161:0;;;;;:::i;:::-;;:::i;:::-;;;4648:14:1;;4641:22;4623:41;;4611:2;4596:18;12890:161:0;4483:187:1;6419:41:0;;;;;;;;;;-1:-1:-1;6419:41:0;;;;-1:-1:-1;;;;;6419:41:0;;;;;;-1:-1:-1;;;;;3239:32:1;;;3221:51;;3209:2;3194:18;6419:41:0;3075:203:1;12315:95:0;;;;;;;;;;-1:-1:-1;;;;12315:95:0;;;13304:25:1;;;13292:2;13277:18;12315:95:0;13158:177:1;13059:313:0;;;;;;;;;;-1:-1:-1;13059:313:0;;;;;:::i;:::-;;:::i;26886:86::-;;;;;;;;;;-1:-1:-1;26886:86:0;;;;;:::i;:::-;;:::i;:::-;;12224:83;;;;;;;;;;-1:-1:-1;12224:83:0;;5860:1;14467:36:1;;14455:2;14440:18;12224:83:0;14325:184:1;25724:387:0;;;;;;;;;;-1:-1:-1;25724:387:0;;;;;:::i;:::-;;:::i;6467:28::-;;;;;;;;;;-1:-1:-1;6467:28:0;;;;-1:-1:-1;;;;;6467:28:0;;;25458:123;;;;;;;;;;-1:-1:-1;25458:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;25546:27:0;25522:4;25546:27;;;:18;:27;;;;;;;;;25458:123;24223:160;;;;;;;;;;-1:-1:-1;24223:160:0;;;;;:::i;:::-;;:::i;27333:124::-;;;;;;;;;;-1:-1:-1;27333:124:0;;;;;:::i;:::-;;:::i;24025:190::-;;;;;;;;;;;;;:::i;12418:138::-;;;;;;;;;;-1:-1:-1;12418:138:0;;;;;:::i;:::-;;:::i;3195:148::-;;;;;;;;;;;;;:::i;26343:535::-;;;;;;;;;;-1:-1:-1;26343:535:0;;;;;:::i;:::-;;:::i;2981:79::-;;;;;;;;;;-1:-1:-1;3019:7:0;3046:6;-1:-1:-1;;;;;3046:6:0;2981:79;;12129:87;;;;;;;;;;-1:-1:-1;12201:7:0;;;;;;;;;;;;-1:-1:-1;;;12201:7:0;;;;12129:87;;12564:167;;;;;;;;;;-1:-1:-1;12564:167:0;;;;;:::i;:::-;;:::i;27229:96::-;;;;;;;;;;-1:-1:-1;27301:16:0;;-1:-1:-1;;;27301:16:0;;;;27229:96;;27084:137;;;;;;;;;;-1:-1:-1;27084:137:0;;;;;:::i;:::-;;:::i;26121:210::-;;;;;;;;;;-1:-1:-1;26121:210:0;;;;;:::i;:::-;;:::i;23822:191::-;;;;;;;;;;;;;:::i;23681:133::-;;;;;;;;;;;;;:::i;24395:110::-;;;;;;;;;;-1:-1:-1;24395:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;24477:20:0;24453:4;24477:20;;;:11;:20;;;;;;;;;24395:110;27465:101;;;;;;;;;;;;;:::i;12739:143::-;;;;;;;;;;-1:-1:-1;12739:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;12847:18:0;;;12820:7;12847:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12739:143;25593:119;;;;;;;;;;-1:-1:-1;25593:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;25678:26:0;25654:4;25678:26;;;:17;:26;;;;;;;;;25593:119;22884:789;;;;;;;;;;;;;:::i;24517:443::-;;;;;;;;;;-1:-1:-1;24517:443:0;;;;;:::i;:::-;;:::i;24968:478::-;;;;;;;;;;-1:-1:-1;24968:478:0;;;;;:::i;:::-;;:::i;6106:53::-;;;;;;;;;;;;;;;;12890:161;12965:4;12982:39;470:10;13005:7;13014:6;12982:8;:39::i;:::-;-1:-1:-1;13039:4:0;12890:161;;;;;:::o;13059:313::-;13157:4;13174:36;13184:6;13192:9;13203:6;13174:9;:36::i;:::-;13221:121;13230:6;470:10;13252:89;13290:6;13252:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13252:19:0;;;;;;:11;:19;;;;;;;;470:10;13252:33;;;;;;;;;;:37;:89::i;:::-;13221:8;:121::i;:::-;-1:-1:-1;13360:4:0;13059:313;;;;;:::o;26886:86::-;3108:6;;-1:-1:-1;;;;;3108:6:0;470:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;;;;;;:::i;:::-;;;;;;;;;26886:86;:::o;25724:387::-;25812:11;;-1:-1:-1;;;;;25812:11:0;470:10;-1:-1:-1;;;;;25796:27:0;;25788:36;;;;;;25854:42;-1:-1:-1;;;;;25843:53:0;;;;25835:102;;;;-1:-1:-1;;;25835:102:0;;9933:2:1;25835:102:0;;;9915:21:1;9972:2;9952:18;;;9945:30;10011:34;9991:18;;;9984:62;-1:-1:-1;;;10062:18:1;;;10055:34;10106:19;;25835:102:0;9731:400:1;25835:102:0;-1:-1:-1;;;;;25957:26:0;;;;;;:17;:26;;;;;;;;25956:27;25948:70;;;;-1:-1:-1;;;25948:70:0;;8046:2:1;25948:70:0;;;8028:21:1;8085:2;8065:18;;;8058:30;8124:32;8104:18;;;8097:60;8174:18;;25948:70:0;7844:354:1;25948:70:0;-1:-1:-1;;;;;26029:26:0;;;;;:17;:26;;;;;:33;;-1:-1:-1;;26029:33:0;26058:4;26029:33;;;;;;26073:16;:30;;;;;;;;;;;;;;-1:-1:-1;;;;;;26073:30:0;;;;;;25724:387::o;24223:160::-;3108:6;;-1:-1:-1;;;;;3108:6:0;470:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;;;;;;:::i;:::-;24295:16:::1;:24:::0;;-1:-1:-1;;;;24295:24:0::1;-1:-1:-1::0;;;24295:24:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;24335:40:::1;::::0;24295:24:::1;24358:16:::0;;;::::1;;4648:14:1::0;4641:22;4623:41;;24335:40:0::1;::::0;4611:2:1;4596:18;24335:40:0::1;;;;;;;24223:160:::0;:::o;27333:124::-;-1:-1:-1;;;;;27430:15:0;;27388:4;27430:15;;;:8;:15;;;;;:19;27412:37;;:15;:37;:::i;24025:190::-;24091:11;;-1:-1:-1;;;;;24091:11:0;470:10;-1:-1:-1;;;;;24075:27:0;;24067:36;;;;;;24143:21;24175:32;24143:21;24175:12;:32::i;12418:138::-;-1:-1:-1;;;;;12531:16:0;;12484:7;12531:16;;;:7;:16;;;;;;12511:37;;:19;:37::i;3195:148::-;3108:6;;-1:-1:-1;;;;;3108:6:0;470:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;;;;;;:::i;:::-;3302:1:::1;3286:6:::0;;3265:40:::1;::::0;-1:-1:-1;;;;;3286:6:0;;::::1;::::0;3265:40:::1;::::0;3302:1;;3265:40:::1;3333:1;3316:19:::0;;-1:-1:-1;;;;;;3316:19:0::1;::::0;;3195:148::o;26343:535::-;26436:11;;-1:-1:-1;;;;;26436:11:0;470:10;-1:-1:-1;;;;;26420:27:0;;26412:36;;;;;;-1:-1:-1;;;;;26467:26:0;;;;;;:17;:26;;;;;;;;26459:65;;;;-1:-1:-1;;;26459:65:0;;9578:2:1;26459:65:0;;;9560:21:1;9617:2;9597:18;;;9590:30;9656:28;9636:18;;;9629:56;9702:18;;26459:65:0;9376:350:1;26459:65:0;26540:9;26535:336;26559:16;:23;26555:27;;26535:336;;;26631:7;-1:-1:-1;;;;;26608:30:0;:16;26625:1;26608:19;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;26608:19:0;:30;26604:256;;;26681:16;26698:23;;:27;;26724:1;;26698:27;:::i;:::-;26681:45;;;;;;;;:::i;:::-;;;;;;;;;;;26659:16;:19;;-1:-1:-1;;;;;26681:45:0;;;;26676:1;;26659:19;;;;;;:::i;:::-;;;;;;;;;;;;;:67;;-1:-1:-1;;;;;;26659:67:0;-1:-1:-1;;;;;26659:67:0;;;;;;26745:26;;;;;:17;:26;;;;;;:34;;-1:-1:-1;;26745:34:0;;;26798:16;:22;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;26798:22:0;;;;;-1:-1:-1;;;;;;26798:22:0;;;;;;26535:336;26343:535;:::o;26604:256::-;26584:3;;;;:::i;:::-;;;;26535:336;;;;26343:535;:::o;12564:167::-;12642:4;12659:42;470:10;12683:9;12694:6;12659:9;:42::i;27084:137::-;3108:6;;-1:-1:-1;;;;;3108:6:0;470:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27175:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;27175:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27084:137::o;26121:210::-;3108:6;;-1:-1:-1;;;;;3108:6:0;470:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;;;;;;:::i;:::-;26242:3:::1;26237;26217:17;-1:-1:-1::0;;;26233:1:0::1;26217:17;:::i;:::-;:23;;;;:::i;:::-;26216:29;;;;:::i;:::-;26206:6;:39;;26198:86;;;::::0;-1:-1:-1;;;26198:86:0;;11849:2:1;26198:86:0::1;::::0;::::1;11831:21:1::0;11888:2;11868:18;;;11861:30;11927:34;11907:18;;;11900:62;-1:-1:-1;;;11978:18:1;;;11971:32;12020:19;;26198:86:0::1;11647:398:1::0;26198:86:0::1;26307:16;:6:::0;26317:5:::1;26307:16;:::i;:::-;26295:9;:28:::0;-1:-1:-1;26121:210:0:o;23822:191::-;23888:11;;-1:-1:-1;;;;;23888:11:0;470:10;-1:-1:-1;;;;;23872:27:0;;23864:36;;;;;;23911:23;23937:24;23955:4;23937:9;:24::i;:::-;23911:50;;23972:33;23989:15;23972:16;:33::i;23681:133::-;3108:6;;-1:-1:-1;;;;;3108:6:0;470:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;;;;;;:::i;:::-;23732:11:::1;:18:::0;;-1:-1:-1;;;;23732:18:0::1;-1:-1:-1::0;;;23732:18:0::1;::::0;;23775:31:::1;:15;23794:11;23775:31;:::i;:::-;23761:11;:45:::0;23681:133::o;27465:101::-;27544:13;;27510:4;;27534:24;;-1:-1:-1;;;;;27544:13:0;27534:9;:24::i;:::-;27527:31;;27465:101;:::o;22884:789::-;3108:6;;-1:-1:-1;;;;;3108:6:0;470:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;;;;;;:::i;:::-;22949:11:::1;::::0;-1:-1:-1;;;22949:11:0;::::1;;;22948:12;22940:47;;;::::0;-1:-1:-1;;;22940:47:0;;11149:2:1;22940:47:0::1;::::0;::::1;11131:21:1::0;11188:2;11168:18;;;11161:30;11227:25;11207:18;;;11200:53;11270:18;;22940:47:0::1;10947:347:1::0;22940:47:0::1;23109:15;:34:::0;;-1:-1:-1;;;;;;23109:34:0::1;23055:42;23109:34:::0;;::::1;::::0;;;23154:58:::1;23171:4;23055:42:::0;-1:-1:-1;;;23154:8:0::1;:58::i;:::-;23257:16;-1:-1:-1::0;;;;;23257:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23239:56:0::1;;23304:4;23311:16;-1:-1:-1::0;;;;;23311:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23239:96;::::0;-1:-1:-1;;;;;;23239:96:0::1;::::0;;;;;;-1:-1:-1;;;;;3513:15:1;;;23239:96:0::1;::::0;::::1;3495:34:1::0;3565:15;;3545:18;;;3538:43;3430:18;;23239:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23223:13;:112:::0;;-1:-1:-1;;;;;;23223:112:0::1;-1:-1:-1::0;;;;;23223:112:0;;::::1;;::::0;;23346:15:::1;::::0;::::1;:31;23385:21;23416:4;23422:24;23416:4:::0;23422:9:::1;:24::i;:::-;23447:1;23449::::0;23451:7:::1;3019::::0;3046:6;-1:-1:-1;;;;;3046:6:0;;2981:79;23451:7:::1;23346:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;23346:129:0;;;-1:-1:-1;;;;;4230:15:1;;;23346:129:0::1;::::0;::::1;4212:34:1::0;4262:18;;;4255:34;;;;4305:18;;;4298:34;;;;4348:18;;;4341:34;4412:15;;;4391:19;;;4384:44;23459:15:0::1;4444:19:1::0;;;4437:35;4146:19;;23346:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;23502:25:0::1;23486:13;:41:::0;-1:-1:-1;23568:15:0::1;23554:11;:29:::0;23601:13:::1;::::0;23632:15:::1;::::0;23594:71:::1;::::0;-1:-1:-1;;;23594:71:0;;-1:-1:-1;;;;;23632:15:0;;::::1;23594:71;::::0;::::1;3766:51:1::0;-1:-1:-1;;3833:18:1;;;3826:34;23601:13:0;::::1;::::0;23594:29:::1;::::0;3739:18:1;;23594:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;24517:443::-:0;3108:6;;-1:-1:-1;;;;;3108:6:0;470:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;;;;;;:::i;:::-;24609:42:::1;-1:-1:-1::0;;;;;24598:53:0;::::1;;;24590:100;;;::::0;-1:-1:-1;;;24590:100:0;;12605:2:1;24590:100:0::1;::::0;::::1;12587:21:1::0;12644:2;12624:18;;;12617:30;12683:34;12663:18;;;12656:62;-1:-1:-1;;;12734:18:1;;;12727:32;12776:19;;24590:100:0::1;12403:398:1::0;24590:100:0::1;-1:-1:-1::0;;;;;24710:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;24709:21;24701:61;;;::::0;-1:-1:-1;;;24701:61:0;;7690:2:1;24701:61:0::1;::::0;::::1;7672:21:1::0;7729:2;7709:18;;;7702:30;7768:29;7748:18;;;7741:57;7815:18;;24701:61:0::1;7488:351:1::0;24701:61:0::1;-1:-1:-1::0;;;;;24776:16:0;::::1;24795:1;24776:16:::0;;;:7:::1;:16;::::0;;;;;:20;24773:108:::1;;-1:-1:-1::0;;;;;24852:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;24832:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;24813:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;24773:108:::1;-1:-1:-1::0;;;;;24891:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;24891:27:0::1;24914:4;24891:27:::0;;::::1;::::0;;;24929:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;24929:23:0::1;::::0;;::::1;::::0;;24517:443::o;24968:478::-;3108:6;;-1:-1:-1;;;;;3108:6:0;470:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25049:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;25041:60;;;::::0;-1:-1:-1;;;25041:60:0;;7690:2:1;25041:60:0::1;::::0;::::1;7672:21:1::0;7729:2;7709:18;;;7702:30;7768:29;7748:18;;;7741:57;7815:18;;25041:60:0::1;7488:351:1::0;25041:60:0::1;25117:9;25112:327;25136:9;:16:::0;25132:20;::::1;25112:327;;;25194:7;-1:-1:-1::0;;;;;25178:23:0::1;:9;25188:1;25178:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;25178:12:0::1;:23;25174:254;;;25237:9;25247:16:::0;;:20:::1;::::0;25266:1:::1;::::0;25247:20:::1;:::i;:::-;25237:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;25222:9:::1;:12:::0;;-1:-1:-1;;;;;25237:31:0;;::::1;::::0;25232:1;;25222:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;25222:46:0::1;-1:-1:-1::0;;;;;25222:46:0;;::::1;;::::0;;25287:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;25326:11:::1;:20:::0;;;;:28;;-1:-1:-1;;25326:28:0::1;::::0;;25373:9:::1;:15:::0;;;::::1;;;;:::i;25174:254::-;25154:3:::0;::::1;::::0;::::1;:::i;:::-;;;;25112:327;;13987:335:::0;-1:-1:-1;;;;;14080:19:0;;14072:68;;;;-1:-1:-1;;;14072:68:0;;10744:2:1;14072:68:0;;;10726:21:1;10783:2;10763:18;;;10756:30;10822:34;10802:18;;;10795:62;-1:-1:-1;;;10873:18:1;;;10866:34;10917:19;;14072:68:0;10542:400:1;14072:68:0;-1:-1:-1;;;;;14159:21:0;;14151:68;;;;-1:-1:-1;;;14151:68:0;;6528:2:1;14151:68:0;;;6510:21:1;6567:2;6547:18;;;6540:30;6606:34;6586:18;;;6579:62;-1:-1:-1;;;6657:18:1;;;6650:32;6699:19;;14151:68:0;6326:398:1;14151:68:0;-1:-1:-1;;;;;14230:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14282:32;;13304:25:1;;;14282:32:0;;13277:18:1;14282:32:0;;;;;;;13987:335;;;:::o;14330:2360::-;-1:-1:-1;;;;;14418:18:0;;14410:68;;;;-1:-1:-1;;;14410:68:0;;10338:2:1;14410:68:0;;;10320:21:1;10377:2;10357:18;;;10350:30;10416:34;10396:18;;;10389:62;-1:-1:-1;;;10467:18:1;;;10460:35;10512:19;;14410:68:0;10136:401:1;14410:68:0;-1:-1:-1;;;;;14497:16:0;;14489:64;;;;-1:-1:-1;;;14489:64:0;;5713:2:1;14489:64:0;;;5695:21:1;5752:2;5732:18;;;5725:30;5791:34;5771:18;;;5764:62;-1:-1:-1;;;5842:18:1;;;5835:33;5885:19;;14489:64:0;5511:399:1;14489:64:0;14581:1;14572:6;:10;14564:64;;;;-1:-1:-1;;;14564:64:0;;9168:2:1;14564:64:0;;;9150:21:1;9207:2;9187:18;;;9180:30;9246:34;9226:18;;;9219:62;-1:-1:-1;;;9297:18:1;;;9290:39;9346:19;;14564:64:0;8966:405:1;14564:64:0;-1:-1:-1;;;;;14648:21:0;;;;;;:17;:21;;;;;;;;14647:22;14639:58;;;;-1:-1:-1;;;14639:58:0;;13008:2:1;14639:58:0;;;12990:21:1;13047:2;13027:18;;;13020:30;-1:-1:-1;;;13066:18:1;;;13059:53;13129:18;;14639:58:0;12806:347:1;14639:58:0;14735:10;14717:29;;;;:17;:29;;;;;;;;14716:30;14708:66;;;;-1:-1:-1;;;14708:66:0;;13008:2:1;14708:66:0;;;12990:21:1;13047:2;13027:18;;;13020:30;-1:-1:-1;;;13066:18:1;;;13059:53;13129:18;;14708:66:0;12806:347:1;14708:66:0;3019:7;3046:6;-1:-1:-1;;;;;14790:15:0;;;3046:6;;14790:15;;;;:32;;-1:-1:-1;3019:7:0;3046:6;-1:-1:-1;;;;;14809:13:0;;;3046:6;;14809:13;;14790:32;14787:1699;;;14842:16;;-1:-1:-1;;;14842:16:0;;;;14839:168;;;14892:10;14883:20;;;;:8;:20;;;;;:27;;;;;14879:113;;14958:14;;;;;;;;-1:-1:-1;14958:14:0;;;;;;;;;;14967:4;14958:14;;;;;;14944:10;14935:20;;:8;:20;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14935:37:0;;;;;;;;;;14879:113;15054:13;;-1:-1:-1;;;;;15046:21:0;;;15054:13;;15046:21;:55;;;;-1:-1:-1;15085:15:0;;-1:-1:-1;;;;;15071:30:0;;;15085:15;;15071:30;;15046:55;:82;;;;-1:-1:-1;;;;;;15106:22:0;;;;;;:18;:22;;;;;;;;15105:23;15046:82;15043:718;;;15157:11;;-1:-1:-1;;;15157:11:0;;;;15149:48;;;;-1:-1:-1;;;15149:48:0;;12252:2:1;15149:48:0;;;12234:21:1;12291:2;12271:18;;;12264:30;12330:26;12310:18;;;12303:54;12374:18;;15149:48:0;12050:348:1;15149:48:0;15250:9;;15233:13;15243:2;15233:9;:13::i;:::-;15224:22;;:6;:22;:::i;:::-;:35;;15216:67;;;;-1:-1:-1;;;15216:67:0;;11501:2:1;15216:67:0;;;11483:21:1;11540:2;11520:18;;;11513:30;-1:-1:-1;;;11559:18:1;;;11552:49;11618:18;;15216:67:0;11299:343:1;15216:67:0;15312:10;;15302:7;:20;15352:11;;15341:8;:22;15385:16;;-1:-1:-1;;;15385:16:0;;;;15382:364;;;15443:15;15429:11;;:29;15426:301;;;15505:13;;15495:6;:23;;15487:32;;;;;;-1:-1:-1;;;;;15554:12:0;;;;;;:8;:12;;;;;:16;15573:15;-1:-1:-1;15546:81:0;;;;-1:-1:-1;;;15546:81:0;;6931:2:1;15546:81:0;;;6913:21:1;6970:2;6950:18;;;6943:30;7009:34;6989:18;;;6982:62;-1:-1:-1;;;7060:18:1;;;7053:32;7102:19;;15546:81:0;6729:398:1;15546:81:0;15673:30;:15;15692:10;15673:30;:::i;:::-;-1:-1:-1;;;;;15654:12:0;;;;;;:8;:12;;;;;:49;15426:301;15808:13;;-1:-1:-1;;;;;15802:19:0;;;15808:13;;15802:19;:55;;;;-1:-1:-1;15841:15:0;;-1:-1:-1;;;;;15825:32:0;;;15841:15;;15825:32;;15802:55;:85;;;;-1:-1:-1;;;;;;15863:24:0;;;;;;:18;:24;;;;;;;;15861:26;15802:85;15798:189;;;15918:11;;15908:7;:21;15959:12;;15948:8;:23;15798:189;16003:28;16034:24;16052:4;16034:9;:24::i;:::-;16091:6;;16003:55;;-1:-1:-1;;;;16091:6:0;;;;16090:7;:32;;;;-1:-1:-1;16109:13:0;;-1:-1:-1;;;;;16101:21:0;;;16109:13;;16101:21;;16090:32;:47;;;;-1:-1:-1;16126:11:0;;-1:-1:-1;;;16126:11:0;;;;16090:47;16087:388;;;16161:24;;16158:110;;16210:38;16227:20;16210:16;:38::i;:::-;16315:21;16358:22;;16355:105;;16405:35;16418:21;16405:12;:35::i;:::-;16139:336;16087:388;14824:1662;14787:1699;-1:-1:-1;;;;;16531:24:0;;16496:12;16531:24;;;:18;:24;;;;;;16511:4;;16531:24;;;:50;;-1:-1:-1;;;;;;16559:22:0;;;;;;:18;:22;;;;;;;;16531:50;16528:96;;;-1:-1:-1;16607:5:0;16528:96;16644:38;16659:4;16664:2;16667:6;16674:7;16644:14;:38::i;:::-;14399:2291;14330:2360;;;:::o;1527:190::-;1613:7;1649:12;1641:6;;;;1633:29;;;;-1:-1:-1;;;1633:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1673:9:0;1685:5;1689:1;1685;:5;:::i;:::-;1673:17;1527:190;-1:-1:-1;;;;;1527:190:0:o;17197:147::-;17254:11;;-1:-1:-1;;;;;17254:11:0;:35;17275:13;:6;17286:1;17275:10;:13::i;:::-;17254:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17300:12:0;;-1:-1:-1;;;;;17300:12:0;:36;17322:13;:6;17333:1;17322:10;:13::i;:::-;17300:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13380:254;13447:7;13486;;13475;:18;;13467:73;;;;-1:-1:-1;;;13467:73:0;;6117:2:1;13467:73:0;;;6099:21:1;6156:2;6136:18;;;6129:30;6195:34;6175:18;;;6168:62;-1:-1:-1;;;6246:18:1;;;6239:40;6296:19;;13467:73:0;5915:406:1;13467:73:0;13551:19;13574:10;:8;:10::i;:::-;13551:33;-1:-1:-1;13602:24:0;:7;13551:33;13602:11;:24::i;:::-;13595:31;13380:254;-1:-1:-1;;;13380:254:0:o;16698:483::-;6912:6;:13;;-1:-1:-1;;;;6912:13:0;-1:-1:-1;;;6912:13:0;;;16800:16:::1;::::0;;16814:1:::1;16800:16:::0;;;;;::::1;::::0;;-1:-1:-1;;16800:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16800:16:0::1;16776:40;;16845:4;16827;16832:1;16827:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16827:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;16871:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;16871:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;16827:7;;16871:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16861:4;16866:1;16861:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16861:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;16936:15:::1;::::0;16904:62:::1;::::0;16921:4:::1;::::0;16936:15:::1;16954:11:::0;16904:8:::1;:62::i;:::-;16977:15;::::0;:196:::1;::::0;-1:-1:-1;;;16977:196:0;;-1:-1:-1;;;;;16977:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;17058:11;;16977:15:::1;::::0;17100:4;;17127::::1;::::0;17147:15:::1;::::0;16977:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6948:6:0;:14;;-1:-1:-1;;;;6948:14:0;;;-1:-1:-1;;;;16698:483:0:o;17352:872::-;17464:7;17460:40;;17486:14;:12;:14::i;:::-;-1:-1:-1;;;;;17515:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;17539:22:0;;;;;;:11;:22;;;;;;;;17538:23;17515:46;17511:597;;;17578:48;17600:6;17608:9;17619:6;17578:21;:48::i;:::-;17511:597;;;-1:-1:-1;;;;;17649:19:0;;;;;;:11;:19;;;;;;;;17648:20;:46;;;;-1:-1:-1;;;;;;17672:22:0;;;;;;:11;:22;;;;;;;;17648:46;17644:464;;;17711:46;17731:6;17739:9;17750:6;17711:19;:46::i;17644:464::-;-1:-1:-1;;;;;17780:19:0;;;;;;:11;:19;;;;;;;;17779:20;:47;;;;-1:-1:-1;;;;;;17804:22:0;;;;;;:11;:22;;;;;;;;17803:23;17779:47;17775:333;;;17843:44;17861:6;17869:9;17880:6;17843:17;:44::i;17775:333::-;-1:-1:-1;;;;;17909:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;17932:22:0;;;;;;:11;:22;;;;;;;;17909:45;17905:203;;;17971:48;17993:6;18001:9;18012:6;17971:21;:48::i;17905:203::-;18052:44;18070:6;18078:9;18089:6;18052:17;:44::i;:::-;18122:7;18121:8;:35;;;-1:-1:-1;18143:13:0;;-1:-1:-1;;;;;18133:23:0;;;18143:13;;18133:23;18121:35;:65;;;-1:-1:-1;18173:13:0;;-1:-1:-1;;;;;18160:26:0;;;18173:13;;18160:26;18121:65;18118:98;;;18201:15;13918;;13908:7;:25;13955:16;;13944:8;:27;13864:115;1978:132;2036:7;2063:39;2067:1;2070;2063:39;;;;;;;;;;;;;;;;;:3;:39::i;21316:163::-;21357:7;21378:15;21395;21414:19;:17;:19::i;:::-;21377:56;;-1:-1:-1;21377:56:0;-1:-1:-1;21451:20:0;21377:56;;21451:11;:20::i;:::-;21444:27;;;;21316:163;:::o;13642:210::-;13688:7;;:12;:29;;;;-1:-1:-1;13704:8:0;;:13;13688:29;13685:41;;;13642:210::o;13685:41::-;13754:7;;;13736:15;:25;13791:8;;;13772:16;:27;-1:-1:-1;13810:11:0;;;;13832:12;13642:210::o;19296:549::-;19399:15;19416:23;19441:12;19455:23;19480:12;19494:13;19511:19;19522:7;19511:10;:19::i;:::-;-1:-1:-1;;;;;19559:15:0;;;;;;:7;:15;;;;;;19398:132;;-1:-1:-1;19398:132:0;;-1:-1:-1;19398:132:0;;-1:-1:-1;19398:132:0;-1:-1:-1;19398:132:0;-1:-1:-1;19398:132:0;-1:-1:-1;19559:28:0;;19579:7;19559:19;:28::i;:::-;-1:-1:-1;;;;;19541:15:0;;;;;;:7;:15;;;;;;;;:46;;;;19616:7;:15;;;;:28;;19636:7;19616:19;:28::i;:::-;-1:-1:-1;;;;;19598:15:0;;;;;;;:7;:15;;;;;;:46;;;;19676:18;;;;;;;:39;;19699:15;19676:22;:39::i;:::-;-1:-1:-1;;;;;19655:18:0;;;;;;:7;:18;;;;;:60;19727:16;19737:5;19727:9;:16::i;:::-;19754:23;19766:4;19772;19754:11;:23::i;:::-;19810:9;-1:-1:-1;;;;;19793:44:0;19802:6;-1:-1:-1;;;;;19793:44:0;;19821:15;19793:44;;;;13304:25:1;;13292:2;13277:18;;13158:177;19793:44:0;;;;;;;;19387:458;;;;;;19296:549;;;:::o;18726:564::-;18827:15;18844:23;18869:12;18883:23;18908:12;18922:13;18939:19;18950:7;18939:10;:19::i;:::-;-1:-1:-1;;;;;18987:15:0;;;;;;:7;:15;;;;;;18826:132;;-1:-1:-1;18826:132:0;;-1:-1:-1;18826:132:0;;-1:-1:-1;18826:132:0;-1:-1:-1;18826:132:0;-1:-1:-1;18826:132:0;-1:-1:-1;18987:28:0;;18826:132;18987:19;:28::i;:::-;-1:-1:-1;;;;;18969:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;19047:18;;;;;:7;:18;;;;;:39;;19070:15;19047:22;:39::i;:::-;-1:-1:-1;;;;;19026:18:0;;;;;;:7;:18;;;;;;;;:60;;;;19118:7;:18;;;;:39;;19141:15;19118:22;:39::i;18232:488::-;18331:15;18348:23;18373:12;18387:23;18412:12;18426:13;18443:19;18454:7;18443:10;:19::i;:::-;-1:-1:-1;;;;;18491:15:0;;;;;;:7;:15;;;;;;18330:132;;-1:-1:-1;18330:132:0;;-1:-1:-1;18330:132:0;;-1:-1:-1;18330:132:0;-1:-1:-1;18330:132:0;-1:-1:-1;18330:132:0;-1:-1:-1;18491:28:0;;18330:132;18491:19;:28::i;19851:622::-;19954:15;19971:23;19996:12;20010:23;20035:12;20049:13;20066:19;20077:7;20066:10;:19::i;:::-;-1:-1:-1;;;;;20114:15:0;;;;;;:7;:15;;;;;;19953:132;;-1:-1:-1;19953:132:0;;-1:-1:-1;19953:132:0;;-1:-1:-1;19953:132:0;-1:-1:-1;19953:132:0;-1:-1:-1;19953:132:0;-1:-1:-1;20114:28:0;;20134:7;20114:19;:28::i;:::-;-1:-1:-1;;;;;20096:15:0;;;;;;:7;:15;;;;;;;;:46;;;;20171:7;:15;;;;:28;;20191:7;20171:19;:28::i;2118:189::-;2204:7;2239:12;2232:5;2224:28;;;;-1:-1:-1;;;2224:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2263:9:0;2275:5;2279:1;2275;:5;:::i;21487:554::-;21584:7;;21537;;;;-1:-1:-1;;;21537:7:0;21638:289;21662:9;:16;21658:20;;21638:289;;;21728:7;21704;:21;21712:9;21722:1;21712:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;21712:12:0;21704:21;;;;;;;;;;;;;:31;;:66;;;21763:7;21739;:21;21747:9;21757:1;21747:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;21747:12:0;21739:21;;;;;;;;;;;;;:31;21704:66;21700:97;;;-1:-1:-1;;21780:7:0;;;-1:-1:-1;;;5600:16:0;-1:-1:-1;21487:554:0;-1:-1:-1;;21487:554:0:o;21700:97::-;21822:34;21834:7;:21;21842:9;21852:1;21842:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;21842:12:0;21834:21;;;;;;;;;;;;;21822:7;;:11;:34::i;:::-;21812:44;;21881:34;21893:7;:21;21901:9;21911:1;21901:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;21901:12:0;21893:21;;;;;;;;;;;;;21881:7;;:11;:34::i;:::-;21871:44;-1:-1:-1;21680:3:0;;;;:::i;:::-;;;;21638:289;;;-1:-1:-1;21950:7:0;;:20;;-1:-1:-1;;;21950:11:0;:20::i;:::-;21940:7;:30;21937:60;;;-1:-1:-1;;21980:7:0;;;-1:-1:-1;;;5600:16:0;-1:-1:-1;21487:554:0;-1:-1:-1;21487:554:0:o;21937:60::-;22016:7;;22025;;-1:-1:-1;21487:554:0;-1:-1:-1;21487:554:0:o;20481:468::-;20540:7;20549;20558;20567;20576;20585;20606:23;20631:12;20645:13;20662:39;20674:7;20683;;20692:8;;20662:11;:39::i;:::-;20605:96;;;;;;20712:19;20735:10;:8;:10::i;:::-;20712:33;;20757:15;20774:23;20799:12;20815:46;20827:7;20836:4;20842:5;20849:11;20815;:46::i;:::-;20756:105;;-1:-1:-1;20756:105:0;-1:-1:-1;20756:105:0;-1:-1:-1;20912:15:0;;-1:-1:-1;20929:4:0;;-1:-1:-1;20935:5:0;;-1:-1:-1;;;;;20481:468:0;;;;;;;:::o;1383:136::-;1441:7;1468:43;1472:1;1475;1468:43;;;;;;;;;;;;;;;;;:3;:43::i;1196:179::-;1254:7;;1286:5;1290:1;1286;:5;:::i;:::-;1274:17;;1315:1;1310;:6;;1302:46;;;;-1:-1:-1;;;1302:46:0;;7334:2:1;1302:46:0;;;7316:21:1;7373:2;7353:18;;;7346:30;7412:29;7392:18;;;7385:57;7459:18;;1302:46:0;7132:351:1;22466:214:0;22519:19;22542:10;:8;:10::i;:::-;22519:33;-1:-1:-1;22563:13:0;22579:22;:5;22519:33;22579:9;:22::i;:::-;22655:4;22639:22;;;;:7;:22;;;;;;22563:38;;-1:-1:-1;22639:33:0;;22563:38;22639:26;:33::i;:::-;22630:4;22614:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;22466:214:0:o;22688:147::-;22766:7;;:17;;22778:4;22766:11;:17::i;:::-;22756:7;:27;22807:10;;:20;;22822:4;22807:14;:20::i;:::-;22794:10;:33;-1:-1:-1;;22688:147:0:o;20957:351::-;21050:7;;;;21103:28;21127:3;21103:19;:7;21115:6;21103:11;:19::i;:::-;:23;;:28::i;:::-;21088:43;-1:-1:-1;21142:13:0;21158:29;21183:3;21158:20;:7;21170;21158:11;:20::i;:29::-;21142:45;-1:-1:-1;21198:23:0;21224:28;21142:45;21224:17;:7;21236:4;21224:11;:17::i;:::-;:21;;:28::i;:::-;21198:54;21288:4;;-1:-1:-1;21294:5:0;;-1:-1:-1;20957:351:0;;-1:-1:-1;;;;;20957:351:0:o;22049:409::-;22159:7;;;;22215:24;:7;22227:11;22215;:24::i;:::-;22197:42;-1:-1:-1;22250:12:0;22265:21;:4;22274:11;22265:8;:21::i;:::-;22250:36;-1:-1:-1;22297:13:0;22313:22;:5;22323:11;22313:9;:22::i;:::-;22297:38;-1:-1:-1;22346:23:0;22372:28;22297:38;22372:17;:7;22384:4;22372:11;:17::i;:28::-;22419:7;;;;-1:-1:-1;22445:4:0;;-1:-1:-1;22049:409:0;;-1:-1:-1;;;;;;;22049:409:0:o;1725:245::-;1783:7;1806:6;1803:46;;-1:-1:-1;1836:1:0;1829:8;;1803:46;1859:9;1871:5;1875:1;1871;:5;:::i;:::-;1859:17;-1:-1:-1;1904:1:0;1895:5;1899:1;1859:17;1895:5;:::i;:::-;:10;1887:56;;;;-1:-1:-1;;;1887:56:0;;8405:2:1;1887:56:0;;;8387:21:1;8444:2;8424:18;;;8417:30;8483:34;8463:18;;;8456:62;-1:-1:-1;;;8534:18:1;;;8527:31;8575:19;;1887:56:0;8203: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:382::-;1441:6;1449;1502:2;1490:9;1481:7;1477:23;1473:32;1470:52;;;1518:1;1515;1508:12;1470:52;1557:9;1544:23;1576:31;1601:5;1576:31;:::i;:::-;1626:5;-1:-1:-1;1683:2:1;1668:18;;1655:32;1696:30;1655:32;1696:30;:::i;1763:315::-;1831:6;1839;1892:2;1880:9;1871:7;1867:23;1863:32;1860:52;;;1908:1;1905;1898:12;1860:52;1947:9;1934:23;1966:31;1991:5;1966:31;:::i;:::-;2016:5;2068:2;2053:18;;;;2040:32;;-1:-1:-1;;;1763:315:1:o;2083:241::-;2139:6;2192:2;2180:9;2171:7;2167:23;2163:32;2160:52;;;2208:1;2205;2198:12;2160:52;2247:9;2234:23;2266:28;2288:5;2266:28;:::i;2329:245::-;2396:6;2449:2;2437:9;2428:7;2424:23;2420:32;2417:52;;;2465:1;2462;2455:12;2417:52;2497:9;2491:16;2516:28;2538:5;2516:28;:::i;2579:180::-;2638:6;2691:2;2679:9;2670:7;2666:23;2662:32;2659:52;;;2707:1;2704;2697:12;2659:52;-1:-1:-1;2730:23:1;;2579:180;-1:-1:-1;2579:180:1:o;2764:306::-;2852:6;2860;2868;2921:2;2909:9;2900:7;2896:23;2892:32;2889:52;;;2937:1;2934;2927:12;2889:52;2966:9;2960:16;2950:26;;3016:2;3005:9;3001:18;2995:25;2985:35;;3060:2;3049:9;3045:18;3039:25;3029:35;;2764:306;;;;;:::o;4909:597::-;5021:4;5050:2;5079;5068:9;5061:21;5111:6;5105:13;5154:6;5149:2;5138:9;5134:18;5127:34;5179:1;5189:140;5203:6;5200:1;5197:13;5189:140;;;5298:14;;;5294:23;;5288:30;5264:17;;;5283:2;5260:26;5253:66;5218:10;;5189:140;;;5347:6;5344:1;5341:13;5338:91;;;5417:1;5412:2;5403:6;5392:9;5388:22;5384:31;5377:42;5338:91;-1:-1:-1;5490:2:1;5469:15;-1:-1:-1;;5465:29:1;5450:45;;;;5497:2;5446:54;;4909:597;-1:-1:-1;;;4909:597:1:o;8605:356::-;8807:2;8789:21;;;8826:18;;;8819:30;8885:34;8880:2;8865:18;;8858:62;8952:2;8937:18;;8605:356::o;13340:980::-;13602:4;13650:3;13639:9;13635:19;13681:6;13670:9;13663:25;13707:2;13745:6;13740:2;13729:9;13725:18;13718:34;13788:3;13783:2;13772:9;13768:18;13761:31;13812:6;13847;13841:13;13878:6;13870;13863:22;13916:3;13905:9;13901:19;13894:26;;13955:2;13947:6;13943:15;13929:29;;13976:1;13986:195;14000:6;13997:1;13994:13;13986:195;;;14065:13;;-1:-1:-1;;;;;14061:39:1;14049:52;;14156:15;;;;14121:12;;;;14097:1;14015:9;13986:195;;;-1:-1:-1;;;;;;;14237:32:1;;;;14232:2;14217:18;;14210:60;-1:-1:-1;;;14301:3:1;14286:19;14279:35;14198:3;13340:980;-1:-1:-1;;;13340:980:1:o;14514:128::-;14554:3;14585:1;14581:6;14578:1;14575:13;14572:39;;;14591:18;;:::i;:::-;-1:-1:-1;14627:9:1;;14514:128::o;14647:217::-;14687:1;14713;14703:132;;14757:10;14752:3;14748:20;14745:1;14738:31;14792:4;14789:1;14782:15;14820:4;14817:1;14810:15;14703:132;-1:-1:-1;14849:9:1;;14647:217::o;14869:168::-;14909:7;14975:1;14971;14967:6;14963:14;14960:1;14957:21;14952:1;14945:9;14938:17;14934:45;14931:71;;;14982:18;;:::i;:::-;-1:-1:-1;15022:9:1;;14869:168::o;15042:125::-;15082:4;15110:1;15107;15104:8;15101:34;;;15115:18;;:::i;:::-;-1:-1:-1;15152:9:1;;15042:125::o;15172:135::-;15211:3;-1:-1:-1;;15232:17:1;;15229:43;;;15252:18;;:::i;:::-;-1:-1:-1;15299:1:1;15288:13;;15172:135::o;15312:127::-;15373:10;15368:3;15364:20;15361:1;15354:31;15404:4;15401:1;15394:15;15428:4;15425:1;15418:15;15444:127;15505:10;15500:3;15496:20;15493:1;15486:31;15536:4;15533:1;15526:15;15560:4;15557:1;15550:15;15576:127;15637:10;15632:3;15628:20;15625:1;15618:31;15668:4;15665:1;15658:15;15692:4;15689:1;15682:15;15840:131;-1:-1:-1;;;;;15915:31:1;;15905:42;;15895:70;;15961:1;15958;15951:12;15976:118;16062:5;16055:13;16048:21;16041:5;16038:32;16028:60;;16084:1;16081;16074:12

Swarm Source

ipfs://d2158d64e1b0d31f407c433f326bbd66a650338d39c99da473839f416f81a95c

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.