ETH Price: $3,262.75 (+1.28%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve205716372024-08-20 18:31:47163 days ago1724178707IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.000080791.75044782
Approve201131242024-06-17 17:54:23227 days ago1718646863IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.000421249.06503027
Approve198439442024-05-11 2:55:47265 days ago1715396147IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0004669110.03483488
Approve196016652024-04-07 5:14:47299 days ago1712466887IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.000239619.15075196
Approve196016632024-04-07 5:14:23299 days ago1712466863IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.000223069.22344557
Approve194984482024-03-23 16:19:59313 days ago1711210799IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0009024919.42136858
Approve194984362024-03-23 16:17:23313 days ago1711210643IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0005136921.24022462
Approve194311382024-03-14 5:20:23323 days ago1710393623IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0011292442.50221701
Approve194311382024-03-14 5:20:23323 days ago1710393623IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0019750342.50221701
Approve190244152024-01-17 5:07:35380 days ago1705468055IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0007209629.81057052
Approve190230152024-01-17 0:25:23380 days ago1705451123IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.000770431.77593466
Approve190179142024-01-16 7:19:47381 days ago1705389587IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0010993623.81797606
Approve189998722024-01-13 18:51:35383 days ago1705171895IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0005202421.51118302
Approve189103002024-01-01 4:45:23396 days ago1704084323IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.000482410.38125307
Approve184234282023-10-24 23:35:47464 days ago1698190547IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0004945620.39867154
Transfer182637502023-10-02 15:29:35486 days ago1696260575IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0020133722.19307831
Approve181807472023-09-21 0:41:11498 days ago1695256871IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.000250578.64508661
Approve181750752023-09-20 5:39:11499 days ago1695188351IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.000233798.06613299
Approve180914522023-09-08 11:38:47510 days ago1694173127IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0002767111.44144195
Approve180012682023-08-26 20:36:23523 days ago1693082183IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0002985212.34342166
Transfer179825622023-08-24 5:45:23526 days ago1692855923IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0013047414.32484102
Transfer179758382023-08-23 7:12:11527 days ago1692774731IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0009371612.66727224
Transfer179753462023-08-23 5:33:23527 days ago1692768803IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0012203213.39790943
Approve179672602023-08-22 2:25:47528 days ago1692671147IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0008294717.85
Approve179642152023-08-21 16:13:35528 days ago1692634415IN
Harry Potter Obama : Old ETHEREUM Token
0 ETH0.0026835857.75
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
179371972023-08-17 21:24:59532 days ago1692307499
Harry Potter Obama : Old ETHEREUM Token
0.02215052 ETH
179371972023-08-17 21:24:59532 days ago1692307499
Harry Potter Obama : Old ETHEREUM Token
0.02215052 ETH
179305402023-08-16 23:02:35533 days ago1692226955
Harry Potter Obama : Old ETHEREUM Token
0.04455086 ETH
179305402023-08-16 23:02:35533 days ago1692226955
Harry Potter Obama : Old ETHEREUM Token
0.04455086 ETH
179296412023-08-16 20:02:23533 days ago1692216143
Harry Potter Obama : Old ETHEREUM Token
0.03694506 ETH
179253722023-08-16 5:41:23534 days ago1692164483
Harry Potter Obama : Old ETHEREUM Token
0.0262608 ETH
179253722023-08-16 5:41:23534 days ago1692164483
Harry Potter Obama : Old ETHEREUM Token
0.0262608 ETH
179223952023-08-15 19:42:23534 days ago1692128543
Harry Potter Obama : Old ETHEREUM Token
0.04751586 ETH
179223952023-08-15 19:42:23534 days ago1692128543
Harry Potter Obama : Old ETHEREUM Token
0.04751586 ETH
179175422023-08-15 3:24:35535 days ago1692069875
Harry Potter Obama : Old ETHEREUM Token
0.05172082 ETH
179175422023-08-15 3:24:35535 days ago1692069875
Harry Potter Obama : Old ETHEREUM Token
0.05172082 ETH
179162852023-08-14 23:11:35535 days ago1692054695
Harry Potter Obama : Old ETHEREUM Token
0.06927843 ETH
179162852023-08-14 23:11:35535 days ago1692054695
Harry Potter Obama : Old ETHEREUM Token
0.06927843 ETH
179152132023-08-14 19:35:47535 days ago1692041747
Harry Potter Obama : Old ETHEREUM Token
0.09100183 ETH
179152132023-08-14 19:35:47535 days ago1692041747
Harry Potter Obama : Old ETHEREUM Token
0.09100183 ETH
179075432023-08-13 17:51:11536 days ago1691949071
Harry Potter Obama : Old ETHEREUM Token
0.11738622 ETH
179075432023-08-13 17:51:11536 days ago1691949071
Harry Potter Obama : Old ETHEREUM Token
0.11738622 ETH
179050732023-08-13 9:34:23537 days ago1691919263
Harry Potter Obama : Old ETHEREUM Token
0.24215117 ETH
179050732023-08-13 9:34:23537 days ago1691919263
Harry Potter Obama : Old ETHEREUM Token
0.24215117 ETH
179021962023-08-12 23:55:59537 days ago1691884559
Harry Potter Obama : Old ETHEREUM Token
0.34195179 ETH
179021962023-08-12 23:55:59537 days ago1691884559
Harry Potter Obama : Old ETHEREUM Token
0.34195179 ETH
179005342023-08-12 18:21:35537 days ago1691864495
Harry Potter Obama : Old ETHEREUM Token
0.30172452 ETH
179005342023-08-12 18:21:35537 days ago1691864495
Harry Potter Obama : Old ETHEREUM Token
0.30172452 ETH
178983782023-08-12 11:07:35537 days ago1691838455
Harry Potter Obama : Old ETHEREUM Token
0.48310479 ETH
178983782023-08-12 11:07:35537 days ago1691838455
Harry Potter Obama : Old ETHEREUM Token
0.48310479 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Ethereum

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-11
*/

/*********************************************************************************************************
⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⣀⣠⣤⣤⣶⣶⣶⣶⣶⣤⣤⣀⡀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀ ⠀⠀⠀⢀⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣄⠀⠀⠀⠀
⠀⠀⠀⠀ ⠀⠀⢠⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀
⠀⠀⠀ ⠀⠀⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆
⠀⠀ ⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣋⣩⣭⣭⣭⣉⡻⣿⣿⣿⣿⣿⣿
  ⣠⣴⣭⣹⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⢣⣼⣿⣿⠛⠁⠘⠿⠿⢻⣿⣿⣿⣿⣿
   ⠛⠛⠁⣿⣿⡯⣫⣤⣴⣶⣶⣤⣭⣛⡸⣿⣿⣇⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿
⠀ ⠀⢀⣴⣷⠬⣉⣀⣈⣹⣿⣿⣿⣿⣿⣷⣮⣝⣛⣯⣤⣤⣤⣤⣭⣛⠿⣿⣿⣿
⠀ ⠈⠉⣽⣶⣶⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⢛⡛⠛⠿⣿⣿⣷⡌⢻⣿
 ⣀⢰⣿⣦⡝⠛⢷⣮⡛⠻⣿⣿⣿⠿⢛⣫⣵⣶⣿⣿⣿⣿⣿⣿⣿⠿⠛⣣⣾⣿
 ⣿⢸⣿⡿⠀⣿⣶⣝⢿⣿⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⡿⠟⣩⣵⣶⠇⣿⣿⣿⢹
 ⣿⢸⣿⠀⡇⢹⣿⣿⡶⠎⣙⠿⠿⠿⠿⠿⢟⣛⣩⣴⣾⣿⣿⣿⡟⣸⣿⣿⠇⣸
 ⣿⡇⠛⢠⣿⡀⣿⣿⠀⠀⠀⠈⠛⠻⠿⠿⣿⣿⠿⠿⠛⠛⠛⠁⠀⣿⡿⠃⠀⣿
 ⣿⣿⣧⣿⣿⣷⡘⢿⡇⢸⣦⣤⣀⣀⡀⠀⠀⠀⠀⠀⣀⣀⣤⡄⠼⢋⣴⡇⠸⢋
 ⣿⣿⣿⣿⣿⣿⣷⣮⡃⣸⣿⣿⣿⣿⣿⣿⣿⣶⣾⣿⣿⣿⣿⣷⣶⣿⡿⢀⣠⣾
 HarryPotterObamaKnuckles10Inu (ETHEREUM)
 Telegram: http://t.me/hpok10i
 Website:  https://hpok10i.com/
 Twitter:  https://twitter.com/hpok10i
 TikTok:   https://www.tiktok.com/@hpok10i
 Medium:   https://hpok10i.medium.com/
 Discord:  https://discord.gg/W46XWyzK6g
 Instagram:https://www.instagram.com/hpok10i

**********************************************************************************************************
*/

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.13;

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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * IERC20 standard interface.
 */
interface IERC20 {
    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);
}


/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal _intAddr;

    constructor(address _owner) {
        owner = _owner;
        _intAddr[_owner] = true;
    }

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        _intAddr[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    
    function unauthorize(address adr) public onlyOwner {
        _intAddr[adr] = false;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) internal view returns (bool) {
        return _intAddr[adr];
    }

    /**
     * 
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        _intAddr[adr] = true;
        emit OwnershipTransferred(adr);
    }

    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 Ethereum is IERC20, Auth { using SafeMath for uint256;

    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // MAINNET

    string constant _name = "HarryPotterObamaKnuckles10Inu ";
    string constant _symbol = "ETHEREUM";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = (_totalSupply * 100) / 100; 
    uint256 public _maxWalletSize = (_totalSupply * 100) / 100; 

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isTimelockExempt;
    mapping (address => bool) public isBlacklisted;

    uint256 liquidityFee = 0;
    uint256 buybackFee = 0;
    uint256 devFee = 0;
    uint256 totalFee = 0;
    uint256 feeDenominator = 100;
    uint256 public _sellMultiplier = 1;
    
    address public devFeeReceiver = 0xFBd476E91A4f2F5b7Ce48819AA159c142883300B;
    address public buybackFeeReceiver = 0x6E84f68b17E73DE70c9c76a440ed48eC0581C1c9;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;

    bool public tradingOpen = true;
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 3; // 0.3%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

        // Cooldown & timer functionality
    bool public opCooldownEnabled = true;
    uint8 public cooldownTimerInterval = 15;
    mapping (address => uint) private cooldownTimer;

    constructor () Auth(msg.sender) {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[msg.sender] = true;
        
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[routerAddress] = true;

        // No timelock for these people
        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = 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) {
        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) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if(!_intAddr[sender] && !_intAddr[recipient]){
            require(tradingOpen,"Trading not open yet");
        }
        checkTxLimit(sender, amount);
        // Check if address is blacklisted
        require(!isBlacklisted[recipient] && !isBlacklisted[sender], 'Address is blacklisted');
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletSize, "Transfer amount exceeds the bag size.");
        }
        if (sender == pair &&
            opCooldownEnabled &&
            !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"Please wait for 1min between two operations");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
        }
        if(shouldSwapBack()){ swapBack(); }

        if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); }

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

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, recipient, 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) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }
    
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + 1 >= block.number){ return feeDenominator.sub(1); }
        if(selling) { return totalFee.mul(_sellMultiplier); }
        return totalFee;
    }

    function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(getTotalFee(receiver == pair)).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

        // switch Trading
    function tradingStatus(bool _status) public authorized {
        tradingOpen = _status;
        if(tradingOpen){
            launchedAt = block.number;
        }
    }

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

    function swapBack() internal swapping {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee);
        uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee);


        (bool DevSuccess, /* bytes memory data */) = payable(devFeeReceiver).call{value: amountETHDev, gas: 30000}("");
        require(DevSuccess, "receiver rejected ETH transfer");
        (bool BuyBackSuccess, /* bytes memory data */) = payable(buybackFeeReceiver).call{value: amountETHbuyback, gas: 30000}("");
        require(BuyBackSuccess, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                devFeeReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

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

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

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

   function setMaxWallet(uint256 amount) external onlyOwner() {
        require(amount >= _totalSupply / 1000 );
        _maxWalletSize = amount;
    }
    

    function setFees(uint256 _liquidityFee, uint256 _devFee, uint256 _buybackFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        devFee = _devFee;
        buybackFee = _buybackFee;
        totalFee = _liquidityFee.add(_devFee).add(_buybackFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/3);
    }
        // enable cooldown between trades
    function cooldownEnabled(bool _status, uint8 _interval) public authorized {
        opCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }
    

    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;
    }
    function setSellMultiplier(uint256 multiplier) external authorized{
        _sellMultiplier = multiplier;        
    }
    function setFeeReceiver(address _devFeeReceiver, address _buybackFeeReceiver) external authorized {
        devFeeReceiver = _devFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;
    }
    // Set the maximum transaction limit
    function setTxLimit(uint256 amountBuy) external authorized {
        _maxTxAmount = amountBuy;
        
    }
    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }
    // Blacklist/unblacklist an address
    function blacklistAddress(address _address, bool _value) public authorized{
        isBlacklisted[_address] = _value;
    }
    function manualSend() external authorized {
        uint256 contractETHBalance = address(this).balance;
        payable(devFeeReceiver).transfer(contractETHBalance);
    }

    function transferForeignToken(address _token) public authorized {
        require(_token != address(this), "Can't let you take all native token");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        payable(devFeeReceiver).transfer(_contractBalance);
    }
        
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }
    
    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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMultiplier","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buybackFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","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":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"opCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"multiplier","type":"uint256"}],"name":"setSellMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"}],"name":"setTxLimit","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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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":"_token","type":"address"}],"name":"transferForeignToken","outputs":[],"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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790915560038054821661dead179055600480548216905560058054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556200006e6009600a620004bf565b6200007e906305f5e100620004d7565b60065560646006546064620000949190620004d7565b620000a09190620004f9565b60075560646006546064620000b69190620004d7565b620000c29190620004f9565b6008556000600f8190556010819055601181905560125560646013556001601455601580546001600160a01b031990811673fbd476e91a4f2f5b7ce48819aa159c142883300b1790915560168054909116736e84f68b17e73de70c9c76a440ed48ec0581c1c9179055601a805461010161ffff199091161790556006546200014e906103e890620004f9565b6200015b906003620004d7565b601b55601c805462ffff001916620f01001790553480156200017c57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155600554601780546001600160a01b03909216919093168117909255825163c45a015560e01b81529251919263c45a015592600480830193928290030181865afa158015620001ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022591906200051c565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d91906200051c565b601880546001600160a01b0319166001600160a01b03928316179055306000818152600a602090815260408083206017548616845282528083206000199055825433808552600b8452828520805460ff199081166001908117909255600c865284872080548216831790558787528487208054821683179055600554891687528487208054821683179055918652600d8552838620805483168217905560035488168652838620805483168217905595855282852080549091169095179094556006549390941680835260098252848320849055935192835283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000547565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000401578160001904821115620003e557620003e5620003aa565b80851615620003f357918102915b93841c9390800290620003c5565b509250929050565b6000826200041a57506001620004b9565b816200042957506000620004b9565b81600181146200044257600281146200044d576200046d565b6001915050620004b9565b60ff841115620004615762000461620003aa565b50506001821b620004b9565b5060208310610133831016604e8410600b841016171562000492575081810a620004b9565b6200049e8383620003c0565b8060001904821115620004b557620004b5620003aa565b0290505b92915050565b6000620004d060ff84168362000409565b9392505050565b6000816000190483118215151615620004f457620004f4620003aa565b500290565b6000826200051757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200052f57600080fd5b81516001600160a01b0381168114620004d057600080fd5b61220180620005576000396000f3fe6080604052600436106102815760003560e01c8063893d20e81161014f578063dc93cf70116100c1578063f2fde38b1161007a578063f2fde38b1461080b578063f42938901461082b578063f84ba65d14610840578063f887ea4014610860578063fe575a8714610880578063ffb54a99146108b057600080fd5b8063dc93cf7014610725578063dd62ed3e14610745578063df20fd491461078b578063e66db25e146107ab578063f0b37c04146107cb578063f1f3bca3146107eb57600080fd5b8063a9059cbb11610113578063a9059cbb14610670578063b6a5d7de14610690578063ba344dc4146106b0578063bf56b371146106cf578063d51ed1c8146106e5578063dab84ee71461070557600080fd5b8063893d20e8146105cb5780638f9a55c0146105e957806395d89b41146105ff578063a7bc1de014610630578063a8aa1b311461065057600080fd5b8063313ce567116101f35780636ddd1713116101ac5780636ddd1713146104e85780636fcba3771461050757806370a0823114610527578063722b62ad1461055d5780637d1db4a51461057d57806384b1d1ef1461059357600080fd5b8063313ce56714610426578063455a439614610448578063571ac8b0146104685780635c85974f146104885780635d0044ca146104a8578063658d4b7f146104c857600080fd5b806318160ddd1161024557806318160ddd1461037757806323b872dd1461038c57806324e9bafb146103ac5780632b112e49146103c25780632d594567146103d75780632f54bf6e146103f757600080fd5b80630445b6671461028d57806306fdde03146102b6578063095ea7b3146103055780630d295980146103355780631161ae391461035757600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a3601b5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b5060408051808201909152601e81527f4861727279506f747465724f62616d614b6e75636b6c65733130496e7520000060208201525b6040516102ad9190611de5565b34801561031157600080fd5b50610325610320366004611e4f565b6108ca565b60405190151581526020016102ad565b34801561034157600080fd5b50610355610350366004611e90565b610937565b005b34801561036357600080fd5b50610325610372366004611eab565b610986565b34801561038357600080fd5b506006546102a3565b34801561039857600080fd5b506103256103a7366004611ecd565b61099a565b3480156103b857600080fd5b506102a360145481565b3480156103ce57600080fd5b506102a3610a5c565b3480156103e357600080fd5b506103556103f2366004611f0e565b610aae565b34801561040357600080fd5b50610325610412366004611f4b565b6000546001600160a01b0391821691161490565b34801561043257600080fd5b5060095b60405160ff90911681526020016102ad565b34801561045457600080fd5b50610355610463366004611f68565b610b04565b34801561047457600080fd5b50610325610483366004611f4b565b610b54565b34801561049457600080fd5b506103556104a3366004611f9d565b610b62565b3480156104b457600080fd5b506103556104c3366004611f9d565b610b8c565b3480156104d457600080fd5b506103556104e3366004611f68565b610bd7565b3480156104f457600080fd5b50601a5461032590610100900460ff1681565b34801561051357600080fd5b50610355610522366004611fb6565b610c27565b34801561053357600080fd5b506102a3610542366004611f4b565b6001600160a01b031660009081526009602052604090205490565b34801561056957600080fd5b50601c546104369062010000900460ff1681565b34801561058957600080fd5b506102a360075481565b34801561059f57600080fd5b506016546105b3906001600160a01b031681565b6040516001600160a01b0390911681526020016102ad565b3480156105d757600080fd5b506000546001600160a01b03166105b3565b3480156105f557600080fd5b506102a360085481565b34801561060b57600080fd5b50604080518082019091526008815267455448455245554d60c01b60208201526102f8565b34801561063c57600080fd5b5061035561064b366004611f9d565b610c95565b34801561065c57600080fd5b506018546105b3906001600160a01b031681565b34801561067c57600080fd5b5061032561068b366004611e4f565b610cbf565b34801561069c57600080fd5b506103556106ab366004611f4b565b610ccc565b3480156106bc57600080fd5b50601c5461032590610100900460ff1681565b3480156106db57600080fd5b506102a360195481565b3480156106f157600080fd5b506102a3610700366004611f9d565b610d1d565b34801561071157600080fd5b506015546105b3906001600160a01b031681565b34801561073157600080fd5b50610355610740366004611f4b565b610d61565b34801561075157600080fd5b506102a3610760366004611fe8565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561079757600080fd5b506103556107a6366004612016565b610e95565b3480156107b757600080fd5b506103556107c6366004611fe8565b610ed8565b3480156107d757600080fd5b506103556107e6366004611f4b565b610f2b565b3480156107f757600080fd5b506102a3610806366004611e90565b610f76565b34801561081757600080fd5b50610355610826366004611f4b565b610fb8565b34801561083757600080fd5b5061035561104e565b34801561084c57600080fd5b5061035561085b366004611f68565b6110b1565b34801561086c57600080fd5b506017546105b3906001600160a01b031681565b34801561088c57600080fd5b5061032561089b366004611f4b565b600e6020526000908152604090205460ff1681565b3480156108bc57600080fd5b50601a546103259060ff1681565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109259086815260200190565b60405180910390a35060015b92915050565b61094033611101565b6109655760405162461bcd60e51b815260040161095c90612032565b60405180910390fd5b601a805460ff191682151590811790915560ff161561098357436019555b50565b60008261099283610d1d565b119392505050565b6001600160a01b0383166000908152600a6020908152604080832033845290915281205460001914610a47576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a82528381203382529091529190912054610a2291849061111f565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b610a52848484611159565b90505b9392505050565b6004546001600160a01b0316600090815260096020526040812054610aa9906003546001600160a01b0316600090815260096020526040902054610aa390600654906115eb565b906115eb565b905090565b610ab733611101565b610ad35760405162461bcd60e51b815260040161095c90612032565b601c805462ffff0019166101009315159390930262ff00001916929092176201000060ff9290921691909102179055565b610b0d33611101565b610b295760405162461bcd60e51b815260040161095c90612032565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000610931826000196108ca565b610b6b33611101565b610b875760405162461bcd60e51b815260040161095c90612032565b600755565b6000546001600160a01b03163314610bb65760405162461bcd60e51b815260040161095c90612057565b6103e8600654610bc6919061208d565b811015610bd257600080fd5b600855565b610be033611101565b610bfc5760405162461bcd60e51b815260040161095c90612032565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b610c3033611101565b610c4c5760405162461bcd60e51b815260040161095c90612032565b600f84905560118390556010829055610c6f82610c69868661162d565b9061162d565b6012556013819055610c8260038261208d565b60125410610c8f57600080fd5b50505050565b610c9e33611101565b610cba5760405162461bcd60e51b815260040161095c90612032565b601455565b6000610a55338484611159565b6000546001600160a01b03163314610cf65760405162461bcd60e51b815260040161095c90612057565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000610931610d2a610a5c565b6018546001600160a01b0316600090815260096020526040902054610d5b90610d5490600261168c565b859061168c565b9061170e565b610d6a33611101565b610d865760405162461bcd60e51b815260040161095c90612032565b306001600160a01b03821603610dea5760405162461bcd60e51b815260206004820152602360248201527f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60448201526235b2b760e91b606482015260840161095c565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5591906120af565b6015546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610e90573d6000803e3d6000fd5b505050565b610e9e33611101565b610eba5760405162461bcd60e51b815260040161095c90612032565b601a80549215156101000261ff001990931692909217909155601b55565b610ee133611101565b610efd5760405162461bcd60e51b815260040161095c90612032565b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000546001600160a01b03163314610f555760405162461bcd60e51b815260040161095c90612057565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000436019546001610f8891906120c8565b10610f9b576013546109319060016115eb565b8115610fb0576014546012546109319161168c565b505060125490565b6000546001600160a01b03163314610fe25760405162461bcd60e51b815260040161095c90612057565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61105733611101565b6110735760405162461bcd60e51b815260040161095c90612032565b60155460405147916001600160a01b03169082156108fc029083906000818181858888f193505050501580156110ad573d6000803e3d6000fd5b5050565b6110ba33611101565b6110d65760405162461bcd60e51b815260040161095c90612032565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156111435760405162461bcd60e51b815260040161095c9190611de5565b50600061115084866120e0565b95945050505050565b601c5460009060ff161561117957611172848484611750565b9050610a55565b6001600160a01b03841660009081526001602052604090205460ff161580156111bb57506001600160a01b03831660009081526001602052604090205460ff16155b1561120957601a5460ff166112095760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161095c565b6112138483611836565b6001600160a01b0383166000908152600e602052604090205460ff1615801561125557506001600160a01b0384166000908152600e602052604090205460ff16155b61129a5760405162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a5cc8189b1858dadb1a5cdd195960521b604482015260640161095c565b6018546001600160a01b038481169116148015906112c657506003546001600160a01b03848116911614155b15611371576001600160a01b0383166000908152600c602052604090205460ff168061131757506008546001600160a01b0384166000908152600960205260409020546113149084906120c8565b11155b6113715760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161095c565b6018546001600160a01b0385811691161480156113955750601c54610100900460ff165b80156113ba57506001600160a01b0383166000908152600d602052604090205460ff16155b1561146a576001600160a01b0383166000908152601d6020526040902054421161143a5760405162461bcd60e51b815260206004820152602b60248201527f506c65617365207761697420666f7220316d696e206265747765656e2074776f60448201526a206f7065726174696f6e7360a81b606482015260840161095c565b601c546114509062010000900460ff16426120c8565b6001600160a01b0384166000908152601d60205260409020555b61147261189f565b1561147f5761147f6118f3565b60195415801561149c57506018546001600160a01b038481169116145b156114cc576001600160a01b0384166000908152600960205260409020546114c357600080fd5b6114cc43601955565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526009909152919091205461151e91849061111f565b6001600160a01b038516600090815260096020908152604080832093909355600b90529081205460ff1615611553578261155e565b61155e858585611d05565b6001600160a01b038516600090815260096020526040902054909150611584908261162d565b6001600160a01b0380861660008181526009602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115d89085815260200190565b60405180910390a3506001949350505050565b6000610a5583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061111f565b60008061163a83856120c8565b905083811015610a555760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161095c565b60008260000361169e57506000610931565b60006116aa83856120f7565b9050826116b7858361208d565b14610a555760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161095c565b6000610a5583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611db7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546117a191849061111f565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546117d0908361162d565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118249086815260200190565b60405180910390a35060019392505050565b6007548111158061185f57506001600160a01b0382166000908152600c602052604090205460ff165b6110ad5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161095c565b6018546000906001600160a01b031633148015906118c05750601c5460ff16155b80156118d35750601a54610100900460ff165b8015610aa9575050601b5430600090815260096020526040902054101590565b601c805460ff1916600117905530600090815260096020526040812054905060006119346002610d5b601254610d5b600f548761168c90919063ffffffff16565b9050600061194283836115eb565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061197c5761197c612116565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106119ad576119ad612116565b6001600160a01b03928316602091820292909201015260175460405163791ac94760e01b81524792919091169063791ac947906119f790869060009087903090429060040161212c565b600060405180830381600087803b158015611a1157600080fd5b505af1158015611a25573d6000803e3d6000fd5b505050506000611a3e82476115eb90919063ffffffff16565b90506000611a64611a5b6002600f5461170e90919063ffffffff16565b601254906115eb565b90506000611a866002610d5b84610d5b600f548861168c90919063ffffffff16565b90506000611aa383610d5b6010548761168c90919063ffffffff16565b90506000611ac084610d5b6011548861168c90919063ffffffff16565b6015546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114611b17576040519150601f19603f3d011682016040523d82523d6000602084013e611b1c565b606091505b5050905080611b6d5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161095c565b6016546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611bbf576040519150601f19603f3d011682016040523d82523d6000602084013e611bc4565b606091505b5050905080611c155760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161095c565b8a15611ced5760175460155460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611c8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cb0919061219d565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601c805460ff1916905550505050505050505050565b6013546018546000918291611d379190610d5b90611d30906001600160a01b03898116911614610f76565b869061168c565b30600090815260096020526040902054909150611d54908261162d565b30600081815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611da59085815260200190565b60405180910390a361115083826115eb565b60008183611dd85760405162461bcd60e51b815260040161095c9190611de5565b506000611150848661208d565b600060208083528351808285015260005b81811015611e1257858101830151858201604001528201611df6565b81811115611e24576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461098357600080fd5b60008060408385031215611e6257600080fd5b8235611e6d81611e3a565b946020939093013593505050565b80358015158114611e8b57600080fd5b919050565b600060208284031215611ea257600080fd5b610a5582611e7b565b60008060408385031215611ebe57600080fd5b50508035926020909101359150565b600080600060608486031215611ee257600080fd5b8335611eed81611e3a565b92506020840135611efd81611e3a565b929592945050506040919091013590565b60008060408385031215611f2157600080fd5b611f2a83611e7b565b9150602083013560ff81168114611f4057600080fd5b809150509250929050565b600060208284031215611f5d57600080fd5b8135610a5581611e3a565b60008060408385031215611f7b57600080fd5b8235611f8681611e3a565b9150611f9460208401611e7b565b90509250929050565b600060208284031215611faf57600080fd5b5035919050565b60008060008060808587031215611fcc57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611ffb57600080fd5b823561200681611e3a565b91506020830135611f4081611e3a565b6000806040838503121561202957600080fd5b611e6d83611e7b565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000826120aa57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156120c157600080fd5b5051919050565b600082198211156120db576120db612077565b500190565b6000828210156120f2576120f2612077565b500390565b600081600019048311821515161561211157612111612077565b500290565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561217c5784516001600160a01b031683529383019391830191600101612157565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156121b257600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212201bf25552b81aaee667e517b81bc82f99adaabd02d6f69d20ab4bba0d3923998964736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102815760003560e01c8063893d20e81161014f578063dc93cf70116100c1578063f2fde38b1161007a578063f2fde38b1461080b578063f42938901461082b578063f84ba65d14610840578063f887ea4014610860578063fe575a8714610880578063ffb54a99146108b057600080fd5b8063dc93cf7014610725578063dd62ed3e14610745578063df20fd491461078b578063e66db25e146107ab578063f0b37c04146107cb578063f1f3bca3146107eb57600080fd5b8063a9059cbb11610113578063a9059cbb14610670578063b6a5d7de14610690578063ba344dc4146106b0578063bf56b371146106cf578063d51ed1c8146106e5578063dab84ee71461070557600080fd5b8063893d20e8146105cb5780638f9a55c0146105e957806395d89b41146105ff578063a7bc1de014610630578063a8aa1b311461065057600080fd5b8063313ce567116101f35780636ddd1713116101ac5780636ddd1713146104e85780636fcba3771461050757806370a0823114610527578063722b62ad1461055d5780637d1db4a51461057d57806384b1d1ef1461059357600080fd5b8063313ce56714610426578063455a439614610448578063571ac8b0146104685780635c85974f146104885780635d0044ca146104a8578063658d4b7f146104c857600080fd5b806318160ddd1161024557806318160ddd1461037757806323b872dd1461038c57806324e9bafb146103ac5780632b112e49146103c25780632d594567146103d75780632f54bf6e146103f757600080fd5b80630445b6671461028d57806306fdde03146102b6578063095ea7b3146103055780630d295980146103355780631161ae391461035757600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a3601b5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b5060408051808201909152601e81527f4861727279506f747465724f62616d614b6e75636b6c65733130496e7520000060208201525b6040516102ad9190611de5565b34801561031157600080fd5b50610325610320366004611e4f565b6108ca565b60405190151581526020016102ad565b34801561034157600080fd5b50610355610350366004611e90565b610937565b005b34801561036357600080fd5b50610325610372366004611eab565b610986565b34801561038357600080fd5b506006546102a3565b34801561039857600080fd5b506103256103a7366004611ecd565b61099a565b3480156103b857600080fd5b506102a360145481565b3480156103ce57600080fd5b506102a3610a5c565b3480156103e357600080fd5b506103556103f2366004611f0e565b610aae565b34801561040357600080fd5b50610325610412366004611f4b565b6000546001600160a01b0391821691161490565b34801561043257600080fd5b5060095b60405160ff90911681526020016102ad565b34801561045457600080fd5b50610355610463366004611f68565b610b04565b34801561047457600080fd5b50610325610483366004611f4b565b610b54565b34801561049457600080fd5b506103556104a3366004611f9d565b610b62565b3480156104b457600080fd5b506103556104c3366004611f9d565b610b8c565b3480156104d457600080fd5b506103556104e3366004611f68565b610bd7565b3480156104f457600080fd5b50601a5461032590610100900460ff1681565b34801561051357600080fd5b50610355610522366004611fb6565b610c27565b34801561053357600080fd5b506102a3610542366004611f4b565b6001600160a01b031660009081526009602052604090205490565b34801561056957600080fd5b50601c546104369062010000900460ff1681565b34801561058957600080fd5b506102a360075481565b34801561059f57600080fd5b506016546105b3906001600160a01b031681565b6040516001600160a01b0390911681526020016102ad565b3480156105d757600080fd5b506000546001600160a01b03166105b3565b3480156105f557600080fd5b506102a360085481565b34801561060b57600080fd5b50604080518082019091526008815267455448455245554d60c01b60208201526102f8565b34801561063c57600080fd5b5061035561064b366004611f9d565b610c95565b34801561065c57600080fd5b506018546105b3906001600160a01b031681565b34801561067c57600080fd5b5061032561068b366004611e4f565b610cbf565b34801561069c57600080fd5b506103556106ab366004611f4b565b610ccc565b3480156106bc57600080fd5b50601c5461032590610100900460ff1681565b3480156106db57600080fd5b506102a360195481565b3480156106f157600080fd5b506102a3610700366004611f9d565b610d1d565b34801561071157600080fd5b506015546105b3906001600160a01b031681565b34801561073157600080fd5b50610355610740366004611f4b565b610d61565b34801561075157600080fd5b506102a3610760366004611fe8565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561079757600080fd5b506103556107a6366004612016565b610e95565b3480156107b757600080fd5b506103556107c6366004611fe8565b610ed8565b3480156107d757600080fd5b506103556107e6366004611f4b565b610f2b565b3480156107f757600080fd5b506102a3610806366004611e90565b610f76565b34801561081757600080fd5b50610355610826366004611f4b565b610fb8565b34801561083757600080fd5b5061035561104e565b34801561084c57600080fd5b5061035561085b366004611f68565b6110b1565b34801561086c57600080fd5b506017546105b3906001600160a01b031681565b34801561088c57600080fd5b5061032561089b366004611f4b565b600e6020526000908152604090205460ff1681565b3480156108bc57600080fd5b50601a546103259060ff1681565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109259086815260200190565b60405180910390a35060015b92915050565b61094033611101565b6109655760405162461bcd60e51b815260040161095c90612032565b60405180910390fd5b601a805460ff191682151590811790915560ff161561098357436019555b50565b60008261099283610d1d565b119392505050565b6001600160a01b0383166000908152600a6020908152604080832033845290915281205460001914610a47576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a82528381203382529091529190912054610a2291849061111f565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b610a52848484611159565b90505b9392505050565b6004546001600160a01b0316600090815260096020526040812054610aa9906003546001600160a01b0316600090815260096020526040902054610aa390600654906115eb565b906115eb565b905090565b610ab733611101565b610ad35760405162461bcd60e51b815260040161095c90612032565b601c805462ffff0019166101009315159390930262ff00001916929092176201000060ff9290921691909102179055565b610b0d33611101565b610b295760405162461bcd60e51b815260040161095c90612032565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000610931826000196108ca565b610b6b33611101565b610b875760405162461bcd60e51b815260040161095c90612032565b600755565b6000546001600160a01b03163314610bb65760405162461bcd60e51b815260040161095c90612057565b6103e8600654610bc6919061208d565b811015610bd257600080fd5b600855565b610be033611101565b610bfc5760405162461bcd60e51b815260040161095c90612032565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b610c3033611101565b610c4c5760405162461bcd60e51b815260040161095c90612032565b600f84905560118390556010829055610c6f82610c69868661162d565b9061162d565b6012556013819055610c8260038261208d565b60125410610c8f57600080fd5b50505050565b610c9e33611101565b610cba5760405162461bcd60e51b815260040161095c90612032565b601455565b6000610a55338484611159565b6000546001600160a01b03163314610cf65760405162461bcd60e51b815260040161095c90612057565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000610931610d2a610a5c565b6018546001600160a01b0316600090815260096020526040902054610d5b90610d5490600261168c565b859061168c565b9061170e565b610d6a33611101565b610d865760405162461bcd60e51b815260040161095c90612032565b306001600160a01b03821603610dea5760405162461bcd60e51b815260206004820152602360248201527f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60448201526235b2b760e91b606482015260840161095c565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5591906120af565b6015546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610e90573d6000803e3d6000fd5b505050565b610e9e33611101565b610eba5760405162461bcd60e51b815260040161095c90612032565b601a80549215156101000261ff001990931692909217909155601b55565b610ee133611101565b610efd5760405162461bcd60e51b815260040161095c90612032565b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000546001600160a01b03163314610f555760405162461bcd60e51b815260040161095c90612057565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000436019546001610f8891906120c8565b10610f9b576013546109319060016115eb565b8115610fb0576014546012546109319161168c565b505060125490565b6000546001600160a01b03163314610fe25760405162461bcd60e51b815260040161095c90612057565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61105733611101565b6110735760405162461bcd60e51b815260040161095c90612032565b60155460405147916001600160a01b03169082156108fc029083906000818181858888f193505050501580156110ad573d6000803e3d6000fd5b5050565b6110ba33611101565b6110d65760405162461bcd60e51b815260040161095c90612032565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156111435760405162461bcd60e51b815260040161095c9190611de5565b50600061115084866120e0565b95945050505050565b601c5460009060ff161561117957611172848484611750565b9050610a55565b6001600160a01b03841660009081526001602052604090205460ff161580156111bb57506001600160a01b03831660009081526001602052604090205460ff16155b1561120957601a5460ff166112095760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161095c565b6112138483611836565b6001600160a01b0383166000908152600e602052604090205460ff1615801561125557506001600160a01b0384166000908152600e602052604090205460ff16155b61129a5760405162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a5cc8189b1858dadb1a5cdd195960521b604482015260640161095c565b6018546001600160a01b038481169116148015906112c657506003546001600160a01b03848116911614155b15611371576001600160a01b0383166000908152600c602052604090205460ff168061131757506008546001600160a01b0384166000908152600960205260409020546113149084906120c8565b11155b6113715760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161095c565b6018546001600160a01b0385811691161480156113955750601c54610100900460ff165b80156113ba57506001600160a01b0383166000908152600d602052604090205460ff16155b1561146a576001600160a01b0383166000908152601d6020526040902054421161143a5760405162461bcd60e51b815260206004820152602b60248201527f506c65617365207761697420666f7220316d696e206265747765656e2074776f60448201526a206f7065726174696f6e7360a81b606482015260840161095c565b601c546114509062010000900460ff16426120c8565b6001600160a01b0384166000908152601d60205260409020555b61147261189f565b1561147f5761147f6118f3565b60195415801561149c57506018546001600160a01b038481169116145b156114cc576001600160a01b0384166000908152600960205260409020546114c357600080fd5b6114cc43601955565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526009909152919091205461151e91849061111f565b6001600160a01b038516600090815260096020908152604080832093909355600b90529081205460ff1615611553578261155e565b61155e858585611d05565b6001600160a01b038516600090815260096020526040902054909150611584908261162d565b6001600160a01b0380861660008181526009602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115d89085815260200190565b60405180910390a3506001949350505050565b6000610a5583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061111f565b60008061163a83856120c8565b905083811015610a555760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161095c565b60008260000361169e57506000610931565b60006116aa83856120f7565b9050826116b7858361208d565b14610a555760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161095c565b6000610a5583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611db7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546117a191849061111f565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546117d0908361162d565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118249086815260200190565b60405180910390a35060019392505050565b6007548111158061185f57506001600160a01b0382166000908152600c602052604090205460ff165b6110ad5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161095c565b6018546000906001600160a01b031633148015906118c05750601c5460ff16155b80156118d35750601a54610100900460ff165b8015610aa9575050601b5430600090815260096020526040902054101590565b601c805460ff1916600117905530600090815260096020526040812054905060006119346002610d5b601254610d5b600f548761168c90919063ffffffff16565b9050600061194283836115eb565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061197c5761197c612116565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106119ad576119ad612116565b6001600160a01b03928316602091820292909201015260175460405163791ac94760e01b81524792919091169063791ac947906119f790869060009087903090429060040161212c565b600060405180830381600087803b158015611a1157600080fd5b505af1158015611a25573d6000803e3d6000fd5b505050506000611a3e82476115eb90919063ffffffff16565b90506000611a64611a5b6002600f5461170e90919063ffffffff16565b601254906115eb565b90506000611a866002610d5b84610d5b600f548861168c90919063ffffffff16565b90506000611aa383610d5b6010548761168c90919063ffffffff16565b90506000611ac084610d5b6011548861168c90919063ffffffff16565b6015546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114611b17576040519150601f19603f3d011682016040523d82523d6000602084013e611b1c565b606091505b5050905080611b6d5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161095c565b6016546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611bbf576040519150601f19603f3d011682016040523d82523d6000602084013e611bc4565b606091505b5050905080611c155760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161095c565b8a15611ced5760175460155460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611c8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cb0919061219d565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601c805460ff1916905550505050505050505050565b6013546018546000918291611d379190610d5b90611d30906001600160a01b03898116911614610f76565b869061168c565b30600090815260096020526040902054909150611d54908261162d565b30600081815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611da59085815260200190565b60405180910390a361115083826115eb565b60008183611dd85760405162461bcd60e51b815260040161095c9190611de5565b506000611150848661208d565b600060208083528351808285015260005b81811015611e1257858101830151858201604001528201611df6565b81811115611e24576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461098357600080fd5b60008060408385031215611e6257600080fd5b8235611e6d81611e3a565b946020939093013593505050565b80358015158114611e8b57600080fd5b919050565b600060208284031215611ea257600080fd5b610a5582611e7b565b60008060408385031215611ebe57600080fd5b50508035926020909101359150565b600080600060608486031215611ee257600080fd5b8335611eed81611e3a565b92506020840135611efd81611e3a565b929592945050506040919091013590565b60008060408385031215611f2157600080fd5b611f2a83611e7b565b9150602083013560ff81168114611f4057600080fd5b809150509250929050565b600060208284031215611f5d57600080fd5b8135610a5581611e3a565b60008060408385031215611f7b57600080fd5b8235611f8681611e3a565b9150611f9460208401611e7b565b90509250929050565b600060208284031215611faf57600080fd5b5035919050565b60008060008060808587031215611fcc57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611ffb57600080fd5b823561200681611e3a565b91506020830135611f4081611e3a565b6000806040838503121561202957600080fd5b611e6d83611e7b565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000826120aa57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156120c157600080fd5b5051919050565b600082198211156120db576120db612077565b500190565b6000828210156120f2576120f2612077565b500390565b600081600019048311821515161561211157612111612077565b500290565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561217c5784516001600160a01b031683529383019391830191600101612157565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156121b257600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212201bf25552b81aaee667e517b81bc82f99adaabd02d6f69d20ab4bba0d3923998964736f6c634300080d0033

Deployed Bytecode Sourcemap

7288:12684:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8811:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8811:54:0;;;;;;;;10215:80;;;;;;;;;;-1:-1:-1;10287:5:0;;;;;;;;;;;;;;;;;10215:80;;;;;;;:::i;10637:216::-;;;;;;;;;;-1:-1:-1;10637:216:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;10637:216:0;1254:187:1;14339:172:0;;;;;;;;;;-1:-1:-1;14339:172:0;;;;;:::i;:::-;;:::i;:::-;;19751:150;;;;;;;;;;-1:-1:-1;19751:150:0;;;;;:::i;:::-;;:::i;9945:88::-;;;;;;;;;;-1:-1:-1;10018:12:0;;9945:88;;11155:370;;;;;;;;;;-1:-1:-1;11155:370:0;;;;;:::i;:::-;;:::i;8429:34::-;;;;;;;;;;;;;;;;19426:142;;;;;;;;;;;;;:::i;17669:164::-;;;;;;;;;;-1:-1:-1;17669:164:0;;;;;:::i;:::-;;:::i;5277:103::-;;;;;;;;;;-1:-1:-1;5277:103:0;;;;;:::i;:::-;5332:4;5367:5;-1:-1:-1;;;;;5356:16:0;;;5367:5;;5356:16;;5277:103;10039:80;;;;;;;;;;-1:-1:-1;7770:1:0;10039:80;;;3276:4:1;3264:17;;;3246:36;;3234:2;3219:18;10039:80:0;3104:184:1;18805:125:0;;;;;;;;;;-1:-1:-1;18805:125:0;;;;;:::i;:::-;;:::i;10861:122::-;;;;;;;;;;-1:-1:-1;10861:122:0;;;;;:::i;:::-;;:::i;18484:112::-;;;;;;;;;;-1:-1:-1;18484:112:0;;;;;:::i;:::-;;:::i;17068:151::-;;;;;;;;;;-1:-1:-1;17068:151:0;;;;;:::i;:::-;;:::i;17847:120::-;;;;;;;;;;-1:-1:-1;17847:120:0;;;;;:::i;:::-;;:::i;8774:30::-;;;;;;;;;;-1:-1:-1;8774:30:0;;;;;;;;;;;17233:387;;;;;;;;;;-1:-1:-1;17233:387:0;;;;;:::i;:::-;;:::i;10385:105::-;;;;;;;;;;-1:-1:-1;10385:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;10469:18:0;10451:7;10469:18;;;:9;:18;;;;;;;10385:105;9049:39;;;;;;;;;;-1:-1:-1;9049:39:0;;;;;;;;;;;7839:56;;;;;;;;;;;;;;;;8557:78;;;;;;;;;;-1:-1:-1;8557:78:0;;;;-1:-1:-1;;;;;8557:78:0;;;;;;-1:-1:-1;;;;;4352:32:1;;;4334:51;;4322:2;4307:18;8557:78:0;4188:203:1;10301:78:0;;;;;;;;;;-1:-1:-1;10353:7:0;10371:5;-1:-1:-1;;;;;10371:5:0;10301:78;;7903:58;;;;;;;;;;;;;;;;10125:84;;;;;;;;;;-1:-1:-1;10199:7:0;;;;;;;;;;;;-1:-1:-1;;;10199:7:0;;;;10125:84;;18109:121;;;;;;;;;;-1:-1:-1;18109:121:0;;;;;:::i;:::-;;:::i;8675:19::-;;;;;;;;;;-1:-1:-1;8675:19:0;;;;-1:-1:-1;;;;;8675:19:0;;;10991:156;;;;;;;;;;-1:-1:-1;10991:156:0;;;;;:::i;:::-;;:::i;4956:88::-;;;;;;;;;;-1:-1:-1;4956:88:0;;;;;:::i;:::-;;:::i;9006:36::-;;;;;;;;;;-1:-1:-1;9006:36:0;;;;;;;;;;;8703:25;;;;;;;;;;;;;;;;19576:167;;;;;;;;;;-1:-1:-1;19576:167:0;;;;;:::i;:::-;;:::i;8476:74::-;;;;;;;;;;-1:-1:-1;8476:74:0;;;;-1:-1:-1;;;;;8476:74:0;;;19118:292;;;;;;;;;;-1:-1:-1;19118:292:0;;;;;:::i;:::-;;:::i;10496:133::-;;;;;;;;;;-1:-1:-1;10496:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10598:19:0;;;10580:7;10598:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10496:133;18602:156;;;;;;;;;;-1:-1:-1;18602:156:0;;;;;:::i;:::-;;:::i;18236:200::-;;;;;;;;;;-1:-1:-1;18236:200:0;;;;;:::i;:::-;;:::i;5126:91::-;;;;;;;;;;-1:-1:-1;5126:91:0;;;;;:::i;:::-;;:::i;13685:239::-;;;;;;;;;;-1:-1:-1;13685:239:0;;;;;:::i;:::-;;:::i;5589:167::-;;;;;;;;;;-1:-1:-1;5589:167:0;;;;;:::i;:::-;;:::i;18936:174::-;;;;;;;;;;;;;:::i;17975:128::-;;;;;;;;;;-1:-1:-1;17975:128:0;;;;;:::i;:::-;;:::i;8644:24::-;;;;;;;;;;-1:-1:-1;8644:24:0;;;;-1:-1:-1;;;;;8644:24:0;;;8227:46;;;;;;;;;;-1:-1:-1;8227:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8737:30;;;;;;;;;;-1:-1:-1;8737:30:0;;;;;;;;10637:216;10741:10;10712:4;10729:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10729:32:0;;;;;;;;;;:41;;;10786:37;10712:4;;10729:32;;10786:37;;;;10764:6;160:25:1;;148:2;133:18;;14:177;10786:37:0;;;;;;;;-1:-1:-1;10841:4:0;10637:216;;;;;:::o;14339:172::-;4841:24;4854:10;4841:12;:24::i;:::-;4833:48;;;;-1:-1:-1;;;4833:48:0;;;;;;;:::i;:::-;;;;;;;;;14405:11:::1;:21:::0;;-1:-1:-1;;14405:21:0::1;::::0;::::1;;::::0;;::::1;::::0;;;::::1;14440:11:::0;14437:67:::1;;;14480:12;14467:10;:25:::0;14437:67:::1;14339:172:::0;:::o;19751:150::-;19831:4;19887:6;19855:29;19875:8;19855:19;:29::i;:::-;:38;;19751:150;-1:-1:-1;;;19751:150:0:o;11155:370::-;-1:-1:-1;;;;;11275:19:0;;11255:4;11275:19;;;:11;:19;;;;;;;;11295:10;11275:31;;;;;;;;-1:-1:-1;;11275:52:0;11272:186;;11377:69;;;;;;;;;;;-1:-1:-1;;;11377:69:0;;;;;;;;-1:-1:-1;;;;;11377:19:0;;-1:-1:-1;11377:19:0;;;:11;:19;;;;;11397:10;11377:31;;;;;;;;;;:69;;11413:6;;11377:35;:69::i;:::-;-1:-1:-1;;;;;11343:19:0;;;;;;:11;:19;;;;;;;;11363:10;11343:31;;;;;;;:103;11272:186;11477:40;11491:6;11499:9;11510:6;11477:13;:40::i;:::-;11470:47;;11155:370;;;;;;:::o;19426:142::-;19554:4;;-1:-1:-1;;;;;19554:4:0;19479:7;10469:18;;;:9;:18;;;;;;19506:54;;19533:4;;-1:-1:-1;;;;;19533:4:0;10451:7;10469:18;;;:9;:18;;;;;;19506:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19499:61;;19426:142;:::o;17669:164::-;4841:24;4854:10;4841:12;:24::i;:::-;4833:48;;;;-1:-1:-1;;;4833:48:0;;;;;;;:::i;:::-;17754:17:::1;:27:::0;;-1:-1:-1;;17792:33:0;17754:27:::1;::::0;::::1;;::::0;;;::::1;-1:-1:-1::0;;17792:33:0;;;;;;17754:27:::1;17792:33:::0;;;::::1;::::0;;;::::1;;::::0;;17669:164::o;18805:125::-;4841:24;4854:10;4841:12;:24::i;:::-;4833:48;;;;-1:-1:-1;;;4833:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18890:23:0;;;::::1;;::::0;;;:13:::1;:23;::::0;;;;:32;;-1:-1:-1;;18890:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18805:125::o;10861:122::-;10916:4;10940:35;10948:7;-1:-1:-1;;10940:7:0;:35::i;18484:112::-;4841:24;4854:10;4841:12;:24::i;:::-;4833:48;;;;-1:-1:-1;;;4833:48:0;;;;;;;:::i;:::-;18554:12:::1;:24:::0;18484:112::o;17068:151::-;5332:4;5367:5;-1:-1:-1;;;;;5367:5:0;4680:10;5356:16;4664:38;;;;-1:-1:-1;;;4664:38:0;;;;;;;:::i;:::-;17171:4:::1;17156:12;;:19;;;;:::i;:::-;17146:6;:29;;17138:39;;;::::0;::::1;;17188:14;:23:::0;17068:151::o;17847:120::-;4841:24;4854:10;4841:12;:24::i;:::-;4833:48;;;;-1:-1:-1;;;4833:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17931:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17931:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17847:120::o;17233:387::-;4841:24;4854:10;4841:12;:24::i;:::-;4833:48;;;;-1:-1:-1;;;4833:48:0;;;;;;;:::i;:::-;17367:12:::1;:28:::0;;;17406:6:::1;:16:::0;;;17433:10:::1;:24:::0;;;17479:43:::1;17446:11:::0;17479:26:::1;17382:13:::0;17415:7;17479:17:::1;:26::i;:::-;:30:::0;::::1;:43::i;:::-;17468:8;:54:::0;17533:14:::1;:32:::0;;;17595:16:::1;17610:1;17550:15:::0;17595:16:::1;:::i;:::-;17584:8;;:27;17576:36;;;::::0;::::1;;17233:387:::0;;;;:::o;18109:121::-;4841:24;4854:10;4841:12;:24::i;:::-;4833:48;;;;-1:-1:-1;;;4833:48:0;;;;;;;:::i;:::-;18186:15:::1;:28:::0;18109:121::o;10991:156::-;11071:4;11095:44;11109:10;11121:9;11132:6;11095:13;:44::i;4956:88::-;5332:4;5367:5;-1:-1:-1;;;;;5367:5:0;4680:10;5356:16;4664:38;;;;-1:-1:-1;;;4664:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5016:13:0::1;;::::0;;;5032:4:::1;5016:13;::::0;;;;;;;:20;;-1:-1:-1;;5016:20:0::1;::::0;;::::1;::::0;;4956:88::o;19576:167::-;19644:7;19671:64;19712:22;:20;:22::i;:::-;19694:4;;-1:-1:-1;;;;;19694:4:0;10451:7;10469:18;;;:9;:18;;;;;;19671:36;;19684:22;;19704:1;19684:19;:22::i;:::-;19671:8;;:12;:36::i;:::-;:40;;:64::i;19118:292::-;4841:24;4854:10;4841:12;:24::i;:::-;4833:48;;;;-1:-1:-1;;;4833:48:0;;;;;;;:::i;:::-;19219:4:::1;-1:-1:-1::0;;;;;19201:23:0;::::1;::::0;19193:71:::1;;;::::0;-1:-1:-1;;;19193:71:0;;6758:2:1;19193:71:0::1;::::0;::::1;6740:21:1::0;6797:2;6777:18;;;6770:30;6836:34;6816:18;;;6809:62;-1:-1:-1;;;6887:18:1;;;6880:33;6930:19;;19193:71:0::1;6556:399:1::0;19193:71:0::1;19302:39;::::0;-1:-1:-1;;;19302:39:0;;19335:4:::1;19302:39;::::0;::::1;4334:51:1::0;19275:24:0::1;::::0;-1:-1:-1;;;;;19302:24:0;::::1;::::0;::::1;::::0;4307:18:1;;19302:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19360:14;::::0;19352:50:::1;::::0;19275:66;;-1:-1:-1;;;;;;19360:14:0::1;::::0;19352:50;::::1;;;::::0;19275:66;;19360:14:::1;19352:50:::0;19360:14;19352:50;19275:66;19360:14;19352:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;19182:228;19118:292:::0;:::o;18602:156::-;4841:24;4854:10;4841:12;:24::i;:::-;4833:48;;;;-1:-1:-1;;;4833:48:0;;;;;;;:::i;:::-;18694:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;18694:22:0;;::::1;::::0;;;::::1;::::0;;;18727:13:::1;:23:::0;18602:156::o;18236:200::-;4841:24;4854:10;4841:12;:24::i;:::-;4833:48;;;;-1:-1:-1;;;4833:48:0;;;;;;;:::i;:::-;18345:14:::1;:32:::0;;-1:-1:-1;;;;;18345:32:0;;::::1;-1:-1:-1::0;;;;;;18345:32:0;;::::1;;::::0;;;18388:18:::1;:40:::0;;;;;::::1;::::0;::::1;;::::0;;18236:200::o;5126:91::-;5332:4;5367:5;-1:-1:-1;;;;;5367:5:0;4680:10;5356:16;4664:38;;;;-1:-1:-1;;;4664:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5188:13:0::1;5204:5;5188:13:::0;;;:8:::1;:13;::::0;;;;:21;;-1:-1:-1;;5188:21:0::1;::::0;;5126:91::o;13685:239::-;13741:7;13782:12;13764:10;;13777:1;13764:14;;;;:::i;:::-;:30;13761:67;;13804:14;;:21;;13823:1;13804:18;:21::i;13761:67::-;13841:7;13838:53;;;13872:15;;13859:8;;:29;;:12;:29::i;13838:53::-;-1:-1:-1;;13908:8:0;;;13685:239::o;5589:167::-;5332:4;5367:5;-1:-1:-1;;;;;5367:5:0;4680:10;5356:16;4664:38;;;;-1:-1:-1;;;4664:38:0;;;;;;;:::i;:::-;5665:5:::1;:11:::0;;-1:-1:-1;;;;;;5665:11:0::1;-1:-1:-1::0;;;;;5665:11:0;::::1;::::0;;::::1;::::0;;5687:13;;;-1:-1:-1;5687:13:0::1;::::0;;;;;;;;:20;;-1:-1:-1;;5687:20:0::1;::::0;;::::1;::::0;;;5723:25;;4334:51:1;;;5723:25:0::1;::::0;4307:18:1;5723:25:0::1;;;;;;;5589:167:::0;:::o;18936:174::-;4841:24;4854:10;4841:12;:24::i;:::-;4833:48;;;;-1:-1:-1;;;4833:48:0;;;;;;;:::i;:::-;19058:14:::1;::::0;19050:52:::1;::::0;19018:21:::1;::::0;-1:-1:-1;;;;;19058:14:0::1;::::0;19050:52;::::1;;;::::0;19018:21;;18989:26:::1;19050:52:::0;18989:26;19050:52;19018:21;19058:14;19050:52;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18978:132;18936:174::o:0;17975:128::-;4841:24;4854:10;4841:12;:24::i;:::-;4833:48;;;;-1:-1:-1;;;4833:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18063:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;18063:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17975:128::o;5451:103::-;-1:-1:-1;;;;;5533:13:0;5509:4;5533:13;;;:8;:13;;;;;;;;;5451:103::o;2351:192::-;2437:7;2473:12;2465:6;;;;2457:29;;;;-1:-1:-1;;;2457:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2497:9:0;2509:5;2513:1;2509;:5;:::i;:::-;2497:17;2351:192;-1:-1:-1;;;;;2351:192:0:o;11533:1502::-;11645:6;;11625:4;;11645:6;;11642:63;;;11661:41;11676:6;11684:9;11695:6;11661:14;:41::i;:::-;11654:48;;;;11642:63;-1:-1:-1;;;;;11729:16:0;;;;;;:8;:16;;;;;;;;11728:17;:41;;;;-1:-1:-1;;;;;;11750:19:0;;;;;;:8;:19;;;;;;;;11749:20;11728:41;11725:115;;;11793:11;;;;11785:43;;;;-1:-1:-1;;;11785:43:0;;7830:2:1;11785:43:0;;;7812:21:1;7869:2;7849:18;;;7842:30;-1:-1:-1;;;7888:18:1;;;7881:50;7948:18;;11785:43:0;7628:344:1;11785:43:0;11850:28;11863:6;11871;11850:12;:28::i;:::-;-1:-1:-1;;;;;11942:24:0;;;;;;:13;:24;;;;;;;;11941:25;:51;;;;-1:-1:-1;;;;;;11971:21:0;;;;;;:13;:21;;;;;;;;11970:22;11941:51;11933:86;;;;-1:-1:-1;;;11933:86:0;;8179:2:1;11933:86:0;;;8161:21:1;8218:2;8198:18;;;8191:30;-1:-1:-1;;;8237:18:1;;;8230:52;8299:18;;11933:86:0;7977:346:1;11933:86:0;12047:4;;-1:-1:-1;;;;;12034:17:0;;;12047:4;;12034:17;;;;:38;;-1:-1:-1;12068:4:0;;-1:-1:-1;;;;;12055:17:0;;;12068:4;;12055:17;;12034:38;12030:198;;;-1:-1:-1;;;;;12097:26:0;;;;;;:15;:26;;;;;;;;;:77;;-1:-1:-1;12160:14:0;;-1:-1:-1;;;;;12127:20:0;;;;;;:9;:20;;;;;;:29;;12150:6;;12127:29;:::i;:::-;:47;;12097:77;12089:127;;;;-1:-1:-1;;;12089:127:0;;8530:2:1;12089:127:0;;;8512:21:1;8569:2;8549:18;;;8542:30;8608:34;8588:18;;;8581:62;-1:-1:-1;;;8659:18:1;;;8652:35;8704:19;;12089:127:0;8328:401:1;12089:127:0;12252:4;;-1:-1:-1;;;;;12242:14:0;;;12252:4;;12242:14;:48;;;;-1:-1:-1;12273:17:0;;;;;;;12242:48;:93;;;;-1:-1:-1;;;;;;12308:27:0;;;;;;:16;:27;;;;;;;;12307:28;12242:93;12238:304;;;-1:-1:-1;;;;;12360:24:0;;;;;;:13;:24;;;;;;12387:15;-1:-1:-1;12352:97:0;;;;-1:-1:-1;;;12352:97:0;;8936:2:1;12352:97:0;;;8918:21:1;8975:2;8955:18;;;8948:30;9014:34;8994:18;;;8987:62;-1:-1:-1;;;9065:18:1;;;9058:41;9116:19;;12352:97:0;8734:407:1;12352:97:0;12509:21;;12491:39;;12509:21;;;;;12491:15;:39;:::i;:::-;-1:-1:-1;;;;;12464:24:0;;;;;;:13;:24;;;;;:66;12238:304;12555:16;:14;:16::i;:::-;12552:35;;;12574:10;:8;:10::i;:::-;16959;;:15;;;12602:32;;-1:-1:-1;12630:4:0;;-1:-1:-1;;;;;12617:17:0;;;12630:4;;12617:17;12602:32;12599:81;;;-1:-1:-1;;;;;12645:17:0;;12665:1;12645:17;;;:9;:17;;;;;;12637:30;;;;;;12669:8;17041:12;17028:10;:25;16990:71;12669:8;12712:53;;;;;;;;;;;-1:-1:-1;;;12712:53:0;;;;;;;;-1:-1:-1;;;;;12712:17:0;;-1:-1:-1;12712:17:0;;;:9;:17;;;;;;;;:53;;12734:6;;12712:21;:53::i;:::-;-1:-1:-1;;;;;12692:17:0;;;;;;:9;:17;;;;;;;;:73;;;;13650:11;:19;;;;;;;;13649:20;12803:67;;12864:6;12803:67;;;12827:34;12835:6;12843:9;12854:6;12827:7;:34::i;:::-;-1:-1:-1;;;;;12904:20:0;;;;;;:9;:20;;;;;;12778:92;;-1:-1:-1;12904:40:0;;12778:92;12904:24;:40::i;:::-;-1:-1:-1;;;;;12881:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12962:43;;;;;;;;;;12990:14;160:25:1;;148:2;133:18;;14:177;12962:43:0;;;;;;;;-1:-1:-1;13023:4:0;;11533:1502;-1:-1:-1;;;;11533:1502:0:o;2209:136::-;2267:7;2294:43;2298:1;2301;2294:43;;;;;;;;;;;;;;;;;:3;:43::i;2022:181::-;2080:7;;2112:5;2116:1;2112;:5;:::i;:::-;2100:17;;2141:1;2136;:6;;2128:46;;;;-1:-1:-1;;;2128:46:0;;9348:2:1;2128:46:0;;;9330:21:1;9387:2;9367:18;;;9360:30;9426:29;9406:18;;;9399:57;9473:18;;2128:46:0;9146:351:1;2549:250:0;2607:7;2631:1;2636;2631:6;2627:47;;-1:-1:-1;2661:1:0;2654:8;;2627:47;2686:9;2698:5;2702:1;2698;:5;:::i;:::-;2686:17;-1:-1:-1;2731:1:0;2722:5;2726:1;2686:17;2722:5;:::i;:::-;:10;2714:56;;;;-1:-1:-1;;;2714:56:0;;9877:2:1;2714:56:0;;;9859:21:1;9916:2;9896:18;;;9889:30;9955:34;9935:18;;;9928:62;-1:-1:-1;;;10006:18:1;;;9999:31;10047:19;;2714:56:0;9675:397:1;2805:132:0;2863:7;2890:39;2894:1;2897;2890:39;;;;;;;;;;;;;;;;;:3;:39::i;13047:330::-;13177:53;;;;;;;;;;;-1:-1:-1;;;13177:53:0;;;;;;;;-1:-1:-1;;;;;13177:17:0;;13140:4;13177:17;;;:9;:17;;;;;;;:53;;13199:6;;13177:21;:53::i;:::-;-1:-1:-1;;;;;13157:17:0;;;;;;;:9;:17;;;;;;:73;;;;13264:20;;;;;;;:32;;13289:6;13264:24;:32::i;:::-;-1:-1:-1;;;;;13241:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13312:35;;;;;;;;;;13340:6;160:25:1;;148:2;133:18;;14:177;13312:35:0;;;;;;;;-1:-1:-1;13365:4:0;13047:330;;;;;:::o;13385:166::-;13482:12;;13472:6;:22;;:49;;;-1:-1:-1;;;;;;13498:23:0;;;;;;:15;:23;;;;;;;;13472:49;13464:79;;;;-1:-1:-1;;;13464:79:0;;10279:2:1;13464:79:0;;;10261:21:1;10318:2;10298:18;;;10291:30;-1:-1:-1;;;10337:18:1;;;10330:47;10394:18;;13464:79:0;10077:341:1;14519:197:0;14606:4;;14568;;-1:-1:-1;;;;;14606:4:0;14592:10;:18;;;;:38;;-1:-1:-1;14624:6:0;;;;14623:7;14592:38;:62;;;;-1:-1:-1;14643:11:0;;;;;;;14592:62;:116;;;;-1:-1:-1;;14695:13:0;;14685:4;14667:24;;;;:9;:24;;;;;;:41;;;14519:197::o;14724:1791::-;8920:6;:13;;-1:-1:-1;;8920:13:0;8929:4;8920:13;;;14822:4:::1;-1:-1:-1::0;10469:18:0;;;:9;:18;;;;;;14773:55:::1;;14839:23;14865:59;14922:1;14865:52;14908:8;;14865:38;14890:12;;14865:20;:24;;:38;;;;:::i;:59::-;14839:85:::0;-1:-1:-1;14935:20:0::1;14958:41;:20:::0;14839:85;14958:24:::1;:41::i;:::-;15036:16;::::0;;15050:1:::1;15036:16:::0;;;;;::::1;::::0;;14935:64;;-1:-1:-1;15012:21:0::1;::::0;15036:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15036:16:0::1;15012:40;;15081:4;15063;15068:1;15063:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15063:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15107:4:::1;::::0;15097:7;;15107:4;::::1;::::0;15097;;15107;;15097:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15097:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15182:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15182:188:0;;15148:21:::1;::::0;15182:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15254:12;;15124:21:::1;::::0;15297:4;;15324::::1;::::0;15344:15:::1;::::0;15182:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15381:17;15401:40;15427:13;15401:21;:25;;:40;;;;:::i;:::-;15381:60;;15452:19;15474:33;15487:19;15504:1;15487:12;;:16;;:19;;;;:::i;:::-;15474:8;::::0;;:12:::1;:33::i;:::-;15452:55;;15518:26;15547:51;15596:1;15547:44;15579:11;15547:27;15561:12;;15547:9;:13;;:27;;;;:::i;:51::-;15518:80;;15609:24;15636:42;15666:11;15636:25;15650:10;;15636:9;:13;;:25;;;;:::i;:42::-;15609:69;;15689:20;15712:38;15738:11;15712:21;15726:6;;15712:9;:13;;:21;;;;:::i;:38::-;15818:14;::::0;15810:65:::1;::::0;15689:61;;-1:-1:-1;15766:15:0::1;::::0;-1:-1:-1;;;;;15818:14:0;;::::1;::::0;15865:5:::1;::::0;15689:61;;15766:15;15810:65;15766:15;15810:65;15689:61;15818:14;15865:5;15810:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15765:110;;;15894:10;15886:53;;;::::0;-1:-1:-1;;;15886:53:0;;12084:2:1;15886:53:0::1;::::0;::::1;12066:21:1::0;12123:2;12103:18;;;12096:30;12162:32;12142:18;;;12135:60;12212:18;;15886:53:0::1;11882:354:1::0;15886:53:0::1;16007:18;::::0;15999:73:::1;::::0;15951:19:::1;::::0;-1:-1:-1;;;;;16007:18:0::1;::::0;16062:5:::1;::::0;16039:16;;15951:19;15999:73;15951:19;15999:73;16039:16;16007:18;16062:5;15999:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15950:122;;;16091:14;16083:57;;;::::0;-1:-1:-1;;;16083:57:0;;12084:2:1;16083:57:0::1;::::0;::::1;12066:21:1::0;12123:2;12103:18;;;12096:30;12162:32;12142:18;;;12135:60;12212:18;;16083:57:0::1;11882:354:1::0;16083:57:0::1;16156:19:::0;;16153:355:::1;;16191:6;::::0;16365:14:::1;::::0;16191:237:::1;::::0;-1:-1:-1;;;16191:237:0;;16267:4:::1;16191:237;::::0;::::1;12582:34:1::0;12632:18;;;12625:34;;;16191:6:0::1;12675:18:1::0;;;12668:34;;;12718:18;;;12711:34;-1:-1:-1;;;;;16365:14:0;;::::1;12761:19:1::0;;;12754:44;16398:15:0::1;12814:19:1::0;;;12807:35;16191:6:0;::::1;::::0;:22:::1;::::0;16221:18;;12516:19:1;;16191:237:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16448:48:0::1;::::0;;13338:25:1;;;13394:2;13379:18;;13372:34;;;16448:48:0::1;::::0;-1:-1:-1;13311:18:1;16448:48:0::1;;;;;;;16153:355;-1:-1:-1::0;;8938:6:0;:14;;-1:-1:-1;;8938:14:0;;;-1:-1:-1;;;;;;;;;;14724:1791:0:o;13932:372::-;14103:14;;14092:4;;14017:7;;;;14057:61;;14103:14;14057:41;;14068:29;;-1:-1:-1;;;;;14080:16:0;;;14092:4;;14080:16;14068:11;:29::i;:::-;14057:6;;:10;:41::i;:61::-;14176:4;14158:24;;;;:9;:24;;;;;;14037:81;;-1:-1:-1;14158:39:0;;14037:81;14158:28;:39::i;:::-;14149:4;14131:24;;;;:9;:24;;;;;;;:66;;;;14213:42;;-1:-1:-1;;;;;14213:42:0;;;;;;;14245:9;160:25:1;;148:2;133:18;;14:177;14213:42:0;;;;;;;;14275:21;:6;14286:9;14275:10;:21::i;2943:345::-;3029:7;3131:12;3124:5;3116:28;;;;-1:-1:-1;;;3116:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3155:9:0;3167:5;3171:1;3167;:5;:::i;196:597: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;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:315;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:160::-;1511:20;;1567:13;;1560:21;1550:32;;1540:60;;1596:1;1593;1586:12;1540:60;1446:160;;;:::o;1611:180::-;1667:6;1720:2;1708:9;1699:7;1695:23;1691:32;1688:52;;;1736:1;1733;1726:12;1688:52;1759:26;1775:9;1759:26;:::i;1796:248::-;1864:6;1872;1925:2;1913:9;1904:7;1900:23;1896:32;1893:52;;;1941:1;1938;1931:12;1893:52;-1:-1:-1;;1964:23:1;;;2034:2;2019:18;;;2006:32;;-1:-1:-1;1796:248:1:o;2049:456::-;2126:6;2134;2142;2195:2;2183:9;2174:7;2170:23;2166:32;2163:52;;;2211:1;2208;2201:12;2163:52;2250:9;2237:23;2269:31;2294:5;2269:31;:::i;:::-;2319:5;-1:-1:-1;2376:2:1;2361:18;;2348:32;2389:33;2348:32;2389:33;:::i;:::-;2049:456;;2441:7;;-1:-1:-1;;;2495:2:1;2480:18;;;;2467:32;;2049:456::o;2510:337::-;2573:6;2581;2634:2;2622:9;2613:7;2609:23;2605:32;2602:52;;;2650:1;2647;2640:12;2602:52;2673:26;2689:9;2673:26;:::i;:::-;2663:36;;2749:2;2738:9;2734:18;2721:32;2793:4;2786:5;2782:16;2775:5;2772:27;2762:55;;2813:1;2810;2803:12;2762:55;2836:5;2826:15;;;2510:337;;;;;:::o;2852:247::-;2911:6;2964:2;2952:9;2943:7;2939:23;2935:32;2932:52;;;2980:1;2977;2970:12;2932:52;3019:9;3006:23;3038:31;3063:5;3038:31;:::i;3293:315::-;3358:6;3366;3419:2;3407:9;3398:7;3394:23;3390:32;3387:52;;;3435:1;3432;3425:12;3387:52;3474:9;3461:23;3493:31;3518:5;3493:31;:::i;:::-;3543:5;-1:-1:-1;3567:35:1;3598:2;3583:18;;3567:35;:::i;:::-;3557:45;;3293:315;;;;;:::o;3613:180::-;3672:6;3725:2;3713:9;3704:7;3700:23;3696:32;3693:52;;;3741:1;3738;3731:12;3693:52;-1:-1:-1;3764:23:1;;3613:180;-1:-1:-1;3613:180:1:o;3798:385::-;3884:6;3892;3900;3908;3961:3;3949:9;3940:7;3936:23;3932:33;3929:53;;;3978:1;3975;3968:12;3929:53;-1:-1:-1;;4001:23:1;;;4071:2;4056:18;;4043:32;;-1:-1:-1;4122:2:1;4107:18;;4094:32;;4173:2;4158:18;4145:32;;-1:-1:-1;3798:385:1;-1:-1:-1;3798:385:1:o;4396:388::-;4464:6;4472;4525:2;4513:9;4504:7;4500:23;4496:32;4493:52;;;4541:1;4538;4531:12;4493:52;4580:9;4567:23;4599:31;4624:5;4599:31;:::i;:::-;4649:5;-1:-1:-1;4706:2:1;4691:18;;4678:32;4719:33;4678:32;4719:33;:::i;4789:248::-;4854:6;4862;4915:2;4903:9;4894:7;4890:23;4886:32;4883:52;;;4931:1;4928;4921:12;4883:52;4954:26;4970:9;4954:26;:::i;5528:335::-;5730:2;5712:21;;;5769:2;5749:18;;;5742:30;-1:-1:-1;;;5803:2:1;5788:18;;5781:41;5854:2;5839:18;;5528:335::o;5868:329::-;6070:2;6052:21;;;6109:1;6089:18;;;6082:29;-1:-1:-1;;;6142:2:1;6127:18;;6120:36;6188:2;6173:18;;5868:329::o;6202:127::-;6263:10;6258:3;6254:20;6251:1;6244:31;6294:4;6291:1;6284:15;6318:4;6315:1;6308:15;6334:217;6374:1;6400;6390:132;;6444:10;6439:3;6435:20;6432:1;6425:31;6479:4;6476:1;6469:15;6507:4;6504:1;6497:15;6390:132;-1:-1:-1;6536:9:1;;6334:217::o;6960:184::-;7030:6;7083:2;7071:9;7062:7;7058:23;7054:32;7051:52;;;7099:1;7096;7089:12;7051:52;-1:-1:-1;7122:16:1;;6960:184;-1:-1:-1;6960:184:1:o;7149:128::-;7189:3;7220:1;7216:6;7213:1;7210:13;7207:39;;;7226:18;;:::i;:::-;-1:-1:-1;7262:9:1;;7149:128::o;7498:125::-;7538:4;7566:1;7563;7560:8;7557:34;;;7571:18;;:::i;:::-;-1:-1:-1;7608:9:1;;7498:125::o;9502:168::-;9542:7;9608:1;9604;9600:6;9596:14;9593:1;9590:21;9585:1;9578:9;9571:17;9567:45;9564:71;;;9615:18;;:::i;:::-;-1:-1:-1;9655:9:1;;9502:168::o;10555:127::-;10616:10;10611:3;10607:20;10604:1;10597:31;10647:4;10644:1;10637:15;10671:4;10668:1;10661:15;10687:980;10949:4;10997:3;10986:9;10982:19;11028:6;11017:9;11010:25;11054:2;11092:6;11087:2;11076:9;11072:18;11065:34;11135:3;11130:2;11119:9;11115:18;11108:31;11159:6;11194;11188:13;11225:6;11217;11210:22;11263:3;11252:9;11248:19;11241:26;;11302:2;11294:6;11290:15;11276:29;;11323:1;11333:195;11347:6;11344:1;11341:13;11333:195;;;11412:13;;-1:-1:-1;;;;;11408:39:1;11396:52;;11503:15;;;;11468:12;;;;11444:1;11362:9;11333:195;;;-1:-1:-1;;;;;;;11584:32:1;;;;11579:2;11564:18;;11557:60;-1:-1:-1;;;11648:3:1;11633:19;11626:35;11545:3;10687:980;-1:-1:-1;;;10687:980:1:o;12853:306::-;12941:6;12949;12957;13010:2;12998:9;12989:7;12985:23;12981:32;12978:52;;;13026:1;13023;13016:12;12978:52;13055:9;13049:16;13039:26;;13105:2;13094:9;13090:18;13084:25;13074:35;;13149:2;13138:9;13134:18;13128:25;13118:35;;12853:306;;;;;:::o

Swarm Source

ipfs://1bf25552b81aaee667e517b81bc82f99adaabd02d6f69d20ab4bba0d39239989

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

HarryPotterObamaKnuckles10Inu token contract has migrated to a 0xc128D474505Db5fa15148c762c48239cAa27DCf8">new address.

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.