ETH Price: $3,194.55 (+0.36%)
Gas: 3 Gwei

Contract

0x4CEF93Fd9740e10b048Cbf494DE4051aff30F2BA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer198350662024-05-09 21:07:3577 days ago1715288855IN
0x4CEF93Fd...aff30F2BA
0 ETH0.000303744.24913521
Approve198310642024-05-09 7:42:3577 days ago1715240555IN
0x4CEF93Fd...aff30F2BA
0 ETH0.000201044.34844725
Transfer198310592024-05-09 7:41:3577 days ago1715240495IN
0x4CEF93Fd...aff30F2BA
0 ETH0.00032314.51997258
Transfer198310492024-05-09 7:39:3577 days ago1715240375IN
0x4CEF93Fd...aff30F2BA
0 ETH0.000345514.83339659
Approve195621052024-04-01 16:15:47115 days ago1711988147IN
0x4CEF93Fd...aff30F2BA
0 ETH0.001863440.30466325
Approve194177832024-03-12 8:23:47135 days ago1710231827IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0013153954.3260253
Approve191066202024-01-28 17:47:59179 days ago1706464079IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0003567714.77141718
Approve189727842024-01-09 23:49:23198 days ago1704844163IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0007246815.58554358
Transfer187500062023-12-09 16:57:47229 days ago1702141067IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0036092450.49027295
Transfer187499622023-12-09 16:48:23229 days ago1702140503IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0029399741.13458318
Approve184972532023-11-04 7:41:47264 days ago1699083707IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0006997415.04925109
Approve184553862023-10-29 10:56:35270 days ago1698576995IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0002685211.09022932
Transfer184553792023-10-29 10:55:11270 days ago1698576911IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0007723210.80411046
Approve184441652023-10-27 21:15:59272 days ago1698441359IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0009452720.32976565
Approve182657832023-10-02 22:17:47297 days ago1696285067IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0007769616.82731961
Approve181178432023-09-12 4:21:47317 days ago1694492507IN
0x4CEF93Fd...aff30F2BA
0 ETH0.000417659.0454368
Approve180892362023-09-08 4:11:35321 days ago1694146295IN
0x4CEF93Fd...aff30F2BA
0 ETH0.000407118.76704612
Transfer176323222023-07-06 4:05:35385 days ago1688616335IN
0x4CEF93Fd...aff30F2BA
0.03 ETH0.0012109957.51598333
Approve174918362023-06-16 10:34:11405 days ago1686911651IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0007025515.21968618
Approve174606652023-06-12 1:17:47410 days ago1686532667IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0007313815.75
Approve174465682023-06-10 1:38:59412 days ago1686361139IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0007478216.08323977
Approve174465492023-06-10 1:35:11412 days ago1686360911IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0008388618.06451946
Approve173859542023-06-01 12:27:23420 days ago1685622443IN
0x4CEF93Fd...aff30F2BA
0 ETH0.0013566329.21453567
Approve173818572023-05-31 22:37:23421 days ago1685572643IN
0x4CEF93Fd...aff30F2BA
0 ETH0.001271527.34589374
Approve173657422023-05-29 16:10:47423 days ago1685376647IN
0x4CEF93Fd...aff30F2BA
0 ETH0.002960363.74875135
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
176323342023-07-06 4:07:59385 days ago1688616479
0x4CEF93Fd...aff30F2BA
0.05619478 ETH
174100942023-06-04 22:07:35417 days ago1685916455
0x4CEF93Fd...aff30F2BA
0.00484683 ETH
174100942023-06-04 22:07:35417 days ago1685916455
0x4CEF93Fd...aff30F2BA
0.00711598 ETH
174100942023-06-04 22:07:35417 days ago1685916455
0x4CEF93Fd...aff30F2BA
0x4CEF93Fd...aff30F2BA
0.01423196 ETH
174100942023-06-04 22:07:35417 days ago1685916455
0x4CEF93Fd...aff30F2BA
0.01423196 ETH
174100942023-06-04 22:07:35417 days ago1685916455
0x4CEF93Fd...aff30F2BA
0.01133956 ETH
173461702023-05-26 22:15:35426 days ago1685139335
0x4CEF93Fd...aff30F2BA
0.00589536 ETH
173461702023-05-26 22:15:35426 days ago1685139335
0x4CEF93Fd...aff30F2BA
0.00848699 ETH
173461702023-05-26 22:15:35426 days ago1685139335
0x4CEF93Fd...aff30F2BA
0x4CEF93Fd...aff30F2BA
0.01697398 ETH
173461702023-05-26 22:15:35426 days ago1685139335
0x4CEF93Fd...aff30F2BA
0.01697398 ETH
173461702023-05-26 22:15:35426 days ago1685139335
0x4CEF93Fd...aff30F2BA
0.01295294 ETH
173383792023-05-25 19:57:35427 days ago1685044655
0x4CEF93Fd...aff30F2BA
0.0072928 ETH
173383792023-05-25 19:57:35427 days ago1685044655
0x4CEF93Fd...aff30F2BA
0.01022539 ETH
173383792023-05-25 19:57:35427 days ago1685044655
0x4CEF93Fd...aff30F2BA
0x4CEF93Fd...aff30F2BA
0.02045079 ETH
173383792023-05-25 19:57:35427 days ago1685044655
0x4CEF93Fd...aff30F2BA
0.02045079 ETH
173383792023-05-25 19:57:35427 days ago1685044655
0x4CEF93Fd...aff30F2BA
0.01466044 ETH
173340552023-05-25 5:21:35427 days ago1684992095
0x4CEF93Fd...aff30F2BA
0.00696013 ETH
173340552023-05-25 5:21:35427 days ago1684992095
0x4CEF93Fd...aff30F2BA
0.01324393 ETH
173340552023-05-25 5:21:35427 days ago1684992095
0x4CEF93Fd...aff30F2BA
0x4CEF93Fd...aff30F2BA
0.02648787 ETH
173340552023-05-25 5:21:35427 days ago1684992095
0x4CEF93Fd...aff30F2BA
0.02648787 ETH
173340552023-05-25 5:21:35427 days ago1684992095
0x4CEF93Fd...aff30F2BA
0.03149434 ETH
173332212023-05-25 2:33:47427 days ago1684982027
0x4CEF93Fd...aff30F2BA
0.00653103 ETH
173332212023-05-25 2:33:47427 days ago1684982027
0x4CEF93Fd...aff30F2BA
0.01381274 ETH
173332212023-05-25 2:33:47427 days ago1684982027
0x4CEF93Fd...aff30F2BA
0x4CEF93Fd...aff30F2BA
0.02762549 ETH
173332212023-05-25 2:33:47427 days ago1684982027
0x4CEF93Fd...aff30F2BA
0.02762549 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SPELL

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-23
*/

/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⣼⣿⣿⣿⣶⣄⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠟⠙⠿⣿⣿⣿⣿⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⡿⣄⠀⠀⠈⠛⣿⡥⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⡾⠋⠀⠙⠻⢶⣶⠿⣿⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⠶⠛⠉⠀⠀⠀⠀⢀⡾⠃⠀⣿⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣠⣤⡶⠾⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⢀⣾⠁⠀⠀⣿⠀⠀⠀⠀⠀
⠀⠀⠀⣴⠋⣉⣀⣠⣤⣤⣤⣤⣤⣤⣤⣄⣀⣀⠀⢸⡏⠀⢀⣶⠿⢷⡄⠀⠀⠀
⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠸⣿⣤⣾⣧⠀⠀⠀
⠀⠀⢸⣧⣌⣉⠉⠛⠛⠛⠛⠛⠛⠛⠛⠛⢉⣉⣡⣿⡇⠀⠀⣿⣿⣿⣿⡀⠀⠀
⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⢸⣿⣿⣿⡇⠀⠀
⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠈⣿⠿⠛⠋⠀⠀
⠀⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠈⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠛⠛⠛⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Magic Spell

$SPELL

You're a wizard, standing in front of a cauldron filled with bubbling green goo. You're wearing a pointy hat and a robe that's seen better days. 
You raise your wand and shout, "Abracadabra, alakazam, turn this frog into a ham!" Suddenly, a puff of smoke appears and out hops a ham. Yes, a ham.
A fully cooked, glazed ham with a little bowtie around it. The frog is nowhere to be seen, but you don't care because you're too busy admiring your new ham. 
You take a bite and it's delicious. You can't believe your luck. You've just discovered the ultimate Magic $SPELL - turning frogs into hams.

Who needs to conjure up gold or summon dragons when you can have a ham sandwich anytime you want? And that, my friends, is the magic of wizardry.

Telegram: https://t.me/magicspellportal
Twitter: https://twitter.com/magicspellETH
Website: https://magicspell.net

*/

pragma solidity ^0.7.4;
// SPDX-License-Identifier: Unlicensed

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) { return 0; }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IBEP20 {
    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);
}

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

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;
    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }
    function RenounceOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }
    event OwnershipTransferred(address owner);
}

abstract contract BEP20Interface {
    function balanceOf(address whom) view public virtual returns (uint);
}

contract SPELL is IBEP20, Auth {
    using SafeMath for uint256;

    string constant _name = "Magic Spell";
    string constant _symbol = "SPELL";
    uint8 constant _decimals = 18;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public WBNB = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    
    uint256 _totalSupply = 7777777 * (10 ** _decimals);
    uint256 _circSupply = 7777777 * (10 ** _decimals) / 4;
    uint256 public _walletMax = _circSupply * 10 / 1000; //2%
    uint256 public _walletCap = _circSupply * 10 / 1000; //2%
    uint256 public increment = 100000;
    uint256 public _txNum = 1;
    bool public restrictWhales = true;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    uint256 public liquidityFee = 0;
    uint256 public devFee = 12;
    uint256 public buybackFee = 8;
    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 0;
    address public autoLiquidityReceiver;
    address public devWallet;
    uint256 autoBuybackAmount = 5 * (10**18) / 100;
    
    IDEXRouter public router;
    address public pair;
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    uint256 public swapThreshold = _circSupply * 5 / 2000;
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor () Auth(msg.sender) {      
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = _totalSupply;
        WBNB = router.WETH();
        _allowances[address(this)][address(router)] = uint256(-1);
        isFeeExempt[DEAD] = true;
        isTxLimitExempt[DEAD] = true;
        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        autoLiquidityReceiver = msg.sender; //LP receiver
        devWallet = msg.sender;  //Dev wallet
        totalFee = liquidityFee.add(devFee).add(buybackFee);
        totalFeeIfSelling = totalFee;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }
    function name() external pure override returns (string memory) { return _name; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function getOwner() external view override returns (address) { return owner; }
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }
    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, uint256(-1));
    }

	function checkTxLimit(address sender, address recipient, uint256 amount) internal {
		if (sender != owner
            && recipient != owner
            && !isTxLimitExempt[recipient]
            && recipient != ZERO 
            && recipient != DEAD 
            && recipient != pair 
            && recipient != address(this)
        ) {
            if (restrictWhales){
                uint256 newBalance = balanceOf(recipient) + amount;
                newBalance = 0;
                require(newBalance <= _walletMax);
            }
            _txNum = _txNum + 1;
            if (_walletMax < _walletCap){
                _walletMax = _totalSupply * (_txNum) / increment;
            }
            if (_walletMax > _walletCap){
                _walletMax = _walletCap;
            }
        }
        if (sender != owner
            && recipient != owner
            && !isTxLimitExempt[sender]
            && sender != pair 
            && recipient != address(this)
        ) 
        {
            if (address(this).balance >= autoBuybackAmount){
                buyTokens(address(this).balance, DEAD);
            }
        }
    }

    function setAutoBuybackSettings(uint256 _amount) external authorized {
        autoBuybackAmount = _amount;
    }
    
    function setIncrement(uint256 inc) external authorized{
        increment = inc;
    }

    function setFees(uint256 newLiqFee, uint256 newDevFee, uint256 newBBFee) external authorized {
        liquidityFee = newLiqFee;
        devFee = newDevFee;
        buybackFee = newBBFee;
        totalFee = liquidityFee.add(devFee).add(buybackFee);
        totalFeeIfSelling = totalFee;
    }

    function buyTokens(uint256 amount, address to) internal {
        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(this);
        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

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

	function setRestrictWhales(bool active) external authorized {
		restrictWhales = active;
	}

	function setMaxWalletAmount(uint256 percent) external authorized {
		_walletMax = _totalSupply * (percent*10) / 1000;
	}

    function changeFeeReceivers(address newLiquidityReceiver, address newDevWallet) external authorized {
        autoLiquidityReceiver = newLiquidityReceiver;
        devWallet = newDevWallet; 
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {    
        if(_allowances[sender][msg.sender] != uint256(-1)){
            _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(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }
        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }
        checkTxLimit(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 amountReceived = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(msg.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 takeFee(address sender, address recipient, uint256 amount) internal returns (uint256)  {       
        uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function swapBack() internal lockTheSwap {  
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance;
        uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee);
        uint256 amountBNBBuyback = amountBNB.mul(buybackFee).div(totalBNBFee);
        uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
     
        (bool tmpSuccess,) = payable(devWallet).call{value: amountBNBDev, gas: 30000}("");
        tmpSuccess = false;
        (bool tmpSuccess2,) = payable(address(this)).call{value: amountBNBBuyback, gas: 30000}("");
        tmpSuccess2 = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
        }
    }
    event AutoLiquify(uint256 amountBNB, 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":"amountBNB","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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"RenounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WBNB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_txNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","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":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"increment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setAutoBuybackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"},{"internalType":"uint256","name":"newBBFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"inc","type":"uint256"}],"name":"setIncrement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"active","type":"bool"}],"name":"setRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a6276adf1026006556004601260ff16600a0a6276adf102816200015a57fe5b046007556103e8600a60075402816200016f57fe5b046008556103e8600a60075402816200018457fe5b04600955620186a0600a556001600b556001600c60006101000a81548160ff0219169083151502179055506000601155600c60125560086013556000601455600060155566b1a2bc2ec500006018556001601a60156101000a81548160ff0219169083151502179055506000601a60166101000a81548160ff0219169083151502179055506107d0600560075402816200021a57fe5b04601b553480156200022b57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039157600080fd5b505afa158015620003a6573d6000803e3d6000fd5b505050506040513d6020811015620003bd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200047757600080fd5b505af11580156200048c573d6000803e3d6000fd5b505050506040513d6020811015620004a357600080fd5b8101908080519060200190929190505050601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200060257600080fd5b505afa15801562000617573d6000803e3d6000fd5b505050506040513d60208110156200062e57600080fd5b8101908080519060200190929190505050600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000a7360135462000a5f60125460115462000b3660201b62001d461790919060201c565b62000b3660201b62001d461790919060201c565b601481905550601454601581905550600654600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a362000bbf565b60008082840190508381101562000bb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6135358062000bcf6000396000f3fe6080604052600436106102605760003560e01c8063807c2d9c11610144578063bce90ce6116100b6578063da00097d1161007a578063da00097d14610ce6578063dd62ed3e14610d13578063ddf3fc1a14610d98578063f0b37c0414610dd3578063f887ea4014610e24578063fe9fbb8014610e6557610267565b8063bce90ce614610bd5578063ca33e64c14610c00578063ca987b0e14610c41578063cec10c1114610c6c578063d09de08a14610cbb57610267565b80638ea5220f116101085780638ea5220f146109d657806395d89b4114610a1757806398118cb414610aa7578063a8aa1b3114610ad2578063a9059cbb14610b13578063b6a5d7de14610b8457610267565b8063807c2d9c14610885578063893d20e8146108b0578063899420ed146108f15780638b42507f1461092e5780638dd950021461099557610267565b8063313ce567116101dd5780634b2aee52116101a15780634b2aee52146106d7578063571ac8b0146107125780636827e7641461077957806370a08231146107a457806378051f4d146108095780637b97a9bf1461085a57610267565b8063313ce567146105bd5780633b2d081c146105eb5780633f4218e01461061657806344de2e4c1461067d5780634a74bb02146106aa57610267565b80631f2c80f1116102245780631f2c80f1146103ee57806323b872dd1461045f57806327a14fc2146104f05780632b112e491461052b5780632f54bf6e1461055657610267565b80630445b6671461026c57806306fdde0314610297578063095ea7b31461032757806318160ddd146103985780631df4ccfc146103c357610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610ecc565b6040518082815260200191505060405180910390f35b3480156102a357600080fd5b506102ac610ed2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ec5780820151818401526020810190506102d1565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033357600080fd5b506103806004803603604081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0f565b60405180821515815260200191505060405180910390f35b3480156103a457600080fd5b506103ad611001565b6040518082815260200191505060405180910390f35b3480156103cf57600080fd5b506103d861100b565b6040518082815260200191505060405180910390f35b3480156103fa57600080fd5b5061045d6004803603604081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611011565b005b34801561046b57600080fd5b506104d86004803603606081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611112565b60405180821515815260200191505060405180910390f35b3480156104fc57600080fd5b506105296004803603602081101561051357600080fd5b8101908080359060200190929190505050611312565b005b34801561053757600080fd5b506105406113a9565b6040518082815260200191505060405180910390f35b34801561056257600080fd5b506105a56004803603602081101561057957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061142b565b60405180821515815260200191505060405180910390f35b3480156105c957600080fd5b506105d2611484565b604051808260ff16815260200191505060405180910390f35b3480156105f757600080fd5b5061060061148d565b6040518082815260200191505060405180910390f35b34801561062257600080fd5b506106656004803603602081101561063957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611493565b60405180821515815260200191505060405180910390f35b34801561068957600080fd5b506106926114b3565b60405180821515815260200191505060405180910390f35b3480156106b657600080fd5b506106bf6114c6565b60405180821515815260200191505060405180910390f35b3480156106e357600080fd5b50610710600480360360208110156106fa57600080fd5b81019080803590602001909291905050506114d9565b005b34801561071e57600080fd5b506107616004803603602081101561073557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061155e565b60405180821515815260200191505060405180910390f35b34801561078557600080fd5b5061078e611591565b6040518082815260200191505060405180910390f35b3480156107b057600080fd5b506107f3600480360360208110156107c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611597565b6040518082815260200191505060405180910390f35b34801561081557600080fd5b506108586004803603602081101561082c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115e0565b005b34801561086657600080fd5b5061086f611742565b6040518082815260200191505060405180910390f35b34801561089157600080fd5b5061089a611748565b6040518082815260200191505060405180910390f35b3480156108bc57600080fd5b506108c561174e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108fd57600080fd5b5061092c6004803603602081101561091457600080fd5b81019080803515159060200190929190505050611777565b005b34801561093a57600080fd5b5061097d6004803603602081101561095157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061180f565b60405180821515815260200191505060405180910390f35b3480156109a157600080fd5b506109aa61182f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109e257600080fd5b506109eb611855565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a2357600080fd5b50610a2c61187b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a6c578082015181840152602081019050610a51565b50505050905090810190601f168015610a995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ab357600080fd5b50610abc6118b8565b6040518082815260200191505060405180910390f35b348015610ade57600080fd5b50610ae76118be565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b1f57600080fd5b50610b6c60048036036040811015610b3657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118e4565b60405180821515815260200191505060405180910390f35b348015610b9057600080fd5b50610bd360048036036020811015610ba757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f9565b005b348015610be157600080fd5b50610bea6119ce565b6040518082815260200191505060405180910390f35b348015610c0c57600080fd5b50610c156119d4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c4d57600080fd5b50610c566119fa565b6040518082815260200191505060405180910390f35b348015610c7857600080fd5b50610cb960048036036060811015610c8f57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611a00565b005b348015610cc757600080fd5b50610cd0611acf565b6040518082815260200191505060405180910390f35b348015610cf257600080fd5b50610cfb611ad5565b60405180821515815260200191505060405180910390f35b348015610d1f57600080fd5b50610d8260048036036040811015610d3657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ae8565b6040518082815260200191505060405180910390f35b348015610da457600080fd5b50610dd160048036036020811015610dbb57600080fd5b8101908080359060200190929190505050611b6f565b005b348015610ddf57600080fd5b50610e2260048036036020811015610df657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bf4565b005b348015610e3057600080fd5b50610e39611cca565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e7157600080fd5b50610eb460048036036020811015610e8857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf0565b60405180821515815260200191505060405180910390f35b601b5481565b60606040518060400160405280600b81526020017f4d61676963205370656c6c000000000000000000000000000000000000000000815250905090565b600081600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600654905090565b60145481565b61101a33611cf0565b61108c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112fe5761127d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce9092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611309848484611e8e565b90509392505050565b61131b33611cf0565b61138d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e8600a8202600654028161139f57fe5b0460088190555050565b60006114266113d9600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611597565b611418611407600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611597565b60065461223190919063ffffffff16565b61223190919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60135481565b600f6020528060005260406000206000915054906101000a900460ff1681565b600c60009054906101000a900460ff1681565b601a60159054906101000a900460ff1681565b6114e233611cf0565b611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060188190555050565b600061158a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610f0f565b9050919050565b60125481565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115e93361142b565b61165b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60095481565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61178033611cf0565b6117f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f5350454c4c000000000000000000000000000000000000000000000000000000815250905090565b60115481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118f1338484611e8e565b905092915050565b6119023361142b565b611974576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b611a0933611cf0565b611a7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b826011819055508160128190555080601381905550611abb601354611aad601254601154611d4690919063ffffffff16565b611d4690919063ffffffff16565b601481905550601454601581905550505050565b600a5481565b601a60169054906101000a900460ff1681565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b7833611cf0565b611bea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600a8190555050565b611bfd3361142b565b611c6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080828401905083811015611dc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000838311158290611e7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e40578082015181840152602081019050611e25565b50505050905090810190601f168015611e6d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601a60149054906101000a900460ff1615611eb757611eb084848461227b565b905061222a565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611f225750601a60149054906101000a900460ff16155b8015611f3a5750601a60159054906101000a900460ff165b8015611f875750601b54600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15611f9557611f9461244e565b5b611fa0848484612b04565b612029826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce9092919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121125750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61211c5782612128565b612127858585612f9f565b5b905061217c81600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4690919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061227383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dce565b905092915050565b6000612306826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce9092919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061239b82600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4690919063ffffffff16565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001601a60146101000a81548160ff0219169083151502179055506000600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006124eb60026124dd6014546124cf6011548761314790919063ffffffff16565b6131cd90919063ffffffff16565b6131cd90919063ffffffff16565b90506000612502828461223190919063ffffffff16565b90506000600267ffffffffffffffff8111801561251e57600080fd5b5060405190808252806020026020018201604052801561254d5781602001602082028036833780820191505090505b509050308160008151811061255e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561260057600080fd5b505afa158015612614573d6000803e3d6000fd5b505050506040513d602081101561262a57600080fd5b81019080805190602001909291905050508160018151811061264857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561274657808201518184015260208101905061272b565b505050509050019650505050505050600060405180830381600087803b15801561276f57600080fd5b505af1158015612783573d6000803e3d6000fd5b50505050600047905060006127b86127a760026011546131cd90919063ffffffff16565b60145461223190919063ffffffff16565b905060006127e3826127d56012548661314790919063ffffffff16565b6131cd90919063ffffffff16565b9050600061280e836128006013548761314790919063ffffffff16565b6131cd90919063ffffffff16565b9050600061284c600261283e866128306011548a61314790919063ffffffff16565b6131cd90919063ffffffff16565b6131cd90919063ffffffff16565b90506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051806000019050600060405180830381858888f193505050503d80600081146128d5576040519150601f19603f3d011682016040523d82523d6000602084013e6128da565b606091505b505090506000905060003073ffffffffffffffffffffffffffffffffffffffff168461753090604051806000019050600060405180830381858888f193505050503d8060008114612947576040519150601f19603f3d011682016040523d82523d6000602084013e61294c565b606091505b505090506000905060008a1115612adc57601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308d600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015612a4957600080fd5b505af1158015612a5d573d6000803e3d6000fd5b50505050506040513d6060811015612a7457600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838b604051808381526020018281526020019250505060405180910390a15b50505050505050505050506000601a60146101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612bac575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612c025750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c5c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612cb65750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612d105750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612d4857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612dce57600c60009054906101000a900460ff1615612d8657600081612d6e84611597565b01905060009050600854811115612d8457600080fd5b505b6001600b5401600b819055506009546008541015612db757600a54600b546006540281612daf57fe5b046008819055505b6009546008541115612dcd576009546008819055505b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e76575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612ecc5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f265750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612f5e57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f9a576018544710612f9957612f9847600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613217565b5b5b505050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fff57601454613003565b6015545b9050600061302d606461301f848761314790919063ffffffff16565b6131cd90919063ffffffff16565b905061308181600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4690919063ffffffff16565b600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a361313c818561223190919063ffffffff16565b925050509392505050565b60008083141561315a57600090506131c7565b600082840290508284828161316b57fe5b04146131c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134df6021913960400191505060405180910390fd5b809150505b92915050565b600061320f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613418565b905092915050565b6000600267ffffffffffffffff8111801561323157600080fd5b506040519080825280602002602001820160405280156132605781602001602082028036833780820191505090505b509050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160008151811061329357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106132db57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156133d35780820151818401526020810190506133b8565b50505050905001955050505050506000604051808303818588803b1580156133fa57600080fd5b505af115801561340e573d6000803e3d6000fd5b5050505050505050565b600080831182906134c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561348957808201518184015260208101905061346e565b50505050905090810190601f1680156134b65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816134d057fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e650b24626c4b4d193c07ad3039aaed9b500ef17f35f191f942356ce2595dd9d64736f6c63430007060033

Deployed Bytecode

0x6080604052600436106102605760003560e01c8063807c2d9c11610144578063bce90ce6116100b6578063da00097d1161007a578063da00097d14610ce6578063dd62ed3e14610d13578063ddf3fc1a14610d98578063f0b37c0414610dd3578063f887ea4014610e24578063fe9fbb8014610e6557610267565b8063bce90ce614610bd5578063ca33e64c14610c00578063ca987b0e14610c41578063cec10c1114610c6c578063d09de08a14610cbb57610267565b80638ea5220f116101085780638ea5220f146109d657806395d89b4114610a1757806398118cb414610aa7578063a8aa1b3114610ad2578063a9059cbb14610b13578063b6a5d7de14610b8457610267565b8063807c2d9c14610885578063893d20e8146108b0578063899420ed146108f15780638b42507f1461092e5780638dd950021461099557610267565b8063313ce567116101dd5780634b2aee52116101a15780634b2aee52146106d7578063571ac8b0146107125780636827e7641461077957806370a08231146107a457806378051f4d146108095780637b97a9bf1461085a57610267565b8063313ce567146105bd5780633b2d081c146105eb5780633f4218e01461061657806344de2e4c1461067d5780634a74bb02146106aa57610267565b80631f2c80f1116102245780631f2c80f1146103ee57806323b872dd1461045f57806327a14fc2146104f05780632b112e491461052b5780632f54bf6e1461055657610267565b80630445b6671461026c57806306fdde0314610297578063095ea7b31461032757806318160ddd146103985780631df4ccfc146103c357610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610ecc565b6040518082815260200191505060405180910390f35b3480156102a357600080fd5b506102ac610ed2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ec5780820151818401526020810190506102d1565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033357600080fd5b506103806004803603604081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0f565b60405180821515815260200191505060405180910390f35b3480156103a457600080fd5b506103ad611001565b6040518082815260200191505060405180910390f35b3480156103cf57600080fd5b506103d861100b565b6040518082815260200191505060405180910390f35b3480156103fa57600080fd5b5061045d6004803603604081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611011565b005b34801561046b57600080fd5b506104d86004803603606081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611112565b60405180821515815260200191505060405180910390f35b3480156104fc57600080fd5b506105296004803603602081101561051357600080fd5b8101908080359060200190929190505050611312565b005b34801561053757600080fd5b506105406113a9565b6040518082815260200191505060405180910390f35b34801561056257600080fd5b506105a56004803603602081101561057957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061142b565b60405180821515815260200191505060405180910390f35b3480156105c957600080fd5b506105d2611484565b604051808260ff16815260200191505060405180910390f35b3480156105f757600080fd5b5061060061148d565b6040518082815260200191505060405180910390f35b34801561062257600080fd5b506106656004803603602081101561063957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611493565b60405180821515815260200191505060405180910390f35b34801561068957600080fd5b506106926114b3565b60405180821515815260200191505060405180910390f35b3480156106b657600080fd5b506106bf6114c6565b60405180821515815260200191505060405180910390f35b3480156106e357600080fd5b50610710600480360360208110156106fa57600080fd5b81019080803590602001909291905050506114d9565b005b34801561071e57600080fd5b506107616004803603602081101561073557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061155e565b60405180821515815260200191505060405180910390f35b34801561078557600080fd5b5061078e611591565b6040518082815260200191505060405180910390f35b3480156107b057600080fd5b506107f3600480360360208110156107c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611597565b6040518082815260200191505060405180910390f35b34801561081557600080fd5b506108586004803603602081101561082c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115e0565b005b34801561086657600080fd5b5061086f611742565b6040518082815260200191505060405180910390f35b34801561089157600080fd5b5061089a611748565b6040518082815260200191505060405180910390f35b3480156108bc57600080fd5b506108c561174e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108fd57600080fd5b5061092c6004803603602081101561091457600080fd5b81019080803515159060200190929190505050611777565b005b34801561093a57600080fd5b5061097d6004803603602081101561095157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061180f565b60405180821515815260200191505060405180910390f35b3480156109a157600080fd5b506109aa61182f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109e257600080fd5b506109eb611855565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a2357600080fd5b50610a2c61187b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a6c578082015181840152602081019050610a51565b50505050905090810190601f168015610a995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ab357600080fd5b50610abc6118b8565b6040518082815260200191505060405180910390f35b348015610ade57600080fd5b50610ae76118be565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b1f57600080fd5b50610b6c60048036036040811015610b3657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118e4565b60405180821515815260200191505060405180910390f35b348015610b9057600080fd5b50610bd360048036036020811015610ba757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f9565b005b348015610be157600080fd5b50610bea6119ce565b6040518082815260200191505060405180910390f35b348015610c0c57600080fd5b50610c156119d4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c4d57600080fd5b50610c566119fa565b6040518082815260200191505060405180910390f35b348015610c7857600080fd5b50610cb960048036036060811015610c8f57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611a00565b005b348015610cc757600080fd5b50610cd0611acf565b6040518082815260200191505060405180910390f35b348015610cf257600080fd5b50610cfb611ad5565b60405180821515815260200191505060405180910390f35b348015610d1f57600080fd5b50610d8260048036036040811015610d3657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ae8565b6040518082815260200191505060405180910390f35b348015610da457600080fd5b50610dd160048036036020811015610dbb57600080fd5b8101908080359060200190929190505050611b6f565b005b348015610ddf57600080fd5b50610e2260048036036020811015610df657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bf4565b005b348015610e3057600080fd5b50610e39611cca565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e7157600080fd5b50610eb460048036036020811015610e8857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf0565b60405180821515815260200191505060405180910390f35b601b5481565b60606040518060400160405280600b81526020017f4d61676963205370656c6c000000000000000000000000000000000000000000815250905090565b600081600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600654905090565b60145481565b61101a33611cf0565b61108c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112fe5761127d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce9092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611309848484611e8e565b90509392505050565b61131b33611cf0565b61138d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e8600a8202600654028161139f57fe5b0460088190555050565b60006114266113d9600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611597565b611418611407600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611597565b60065461223190919063ffffffff16565b61223190919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60135481565b600f6020528060005260406000206000915054906101000a900460ff1681565b600c60009054906101000a900460ff1681565b601a60159054906101000a900460ff1681565b6114e233611cf0565b611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060188190555050565b600061158a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610f0f565b9050919050565b60125481565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115e93361142b565b61165b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60095481565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61178033611cf0565b6117f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f5350454c4c000000000000000000000000000000000000000000000000000000815250905090565b60115481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118f1338484611e8e565b905092915050565b6119023361142b565b611974576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b611a0933611cf0565b611a7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b826011819055508160128190555080601381905550611abb601354611aad601254601154611d4690919063ffffffff16565b611d4690919063ffffffff16565b601481905550601454601581905550505050565b600a5481565b601a60169054906101000a900460ff1681565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b7833611cf0565b611bea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600a8190555050565b611bfd3361142b565b611c6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080828401905083811015611dc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000838311158290611e7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e40578082015181840152602081019050611e25565b50505050905090810190601f168015611e6d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601a60149054906101000a900460ff1615611eb757611eb084848461227b565b905061222a565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611f225750601a60149054906101000a900460ff16155b8015611f3a5750601a60159054906101000a900460ff165b8015611f875750601b54600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15611f9557611f9461244e565b5b611fa0848484612b04565b612029826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce9092919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121125750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61211c5782612128565b612127858585612f9f565b5b905061217c81600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4690919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061227383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dce565b905092915050565b6000612306826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce9092919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061239b82600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4690919063ffffffff16565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001601a60146101000a81548160ff0219169083151502179055506000600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006124eb60026124dd6014546124cf6011548761314790919063ffffffff16565b6131cd90919063ffffffff16565b6131cd90919063ffffffff16565b90506000612502828461223190919063ffffffff16565b90506000600267ffffffffffffffff8111801561251e57600080fd5b5060405190808252806020026020018201604052801561254d5781602001602082028036833780820191505090505b509050308160008151811061255e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561260057600080fd5b505afa158015612614573d6000803e3d6000fd5b505050506040513d602081101561262a57600080fd5b81019080805190602001909291905050508160018151811061264857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561274657808201518184015260208101905061272b565b505050509050019650505050505050600060405180830381600087803b15801561276f57600080fd5b505af1158015612783573d6000803e3d6000fd5b50505050600047905060006127b86127a760026011546131cd90919063ffffffff16565b60145461223190919063ffffffff16565b905060006127e3826127d56012548661314790919063ffffffff16565b6131cd90919063ffffffff16565b9050600061280e836128006013548761314790919063ffffffff16565b6131cd90919063ffffffff16565b9050600061284c600261283e866128306011548a61314790919063ffffffff16565b6131cd90919063ffffffff16565b6131cd90919063ffffffff16565b90506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051806000019050600060405180830381858888f193505050503d80600081146128d5576040519150601f19603f3d011682016040523d82523d6000602084013e6128da565b606091505b505090506000905060003073ffffffffffffffffffffffffffffffffffffffff168461753090604051806000019050600060405180830381858888f193505050503d8060008114612947576040519150601f19603f3d011682016040523d82523d6000602084013e61294c565b606091505b505090506000905060008a1115612adc57601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308d600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015612a4957600080fd5b505af1158015612a5d573d6000803e3d6000fd5b50505050506040513d6060811015612a7457600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838b604051808381526020018281526020019250505060405180910390a15b50505050505050505050506000601a60146101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612bac575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612c025750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c5c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612cb65750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612d105750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612d4857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612dce57600c60009054906101000a900460ff1615612d8657600081612d6e84611597565b01905060009050600854811115612d8457600080fd5b505b6001600b5401600b819055506009546008541015612db757600a54600b546006540281612daf57fe5b046008819055505b6009546008541115612dcd576009546008819055505b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e76575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612ecc5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f265750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612f5e57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f9a576018544710612f9957612f9847600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613217565b5b5b505050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fff57601454613003565b6015545b9050600061302d606461301f848761314790919063ffffffff16565b6131cd90919063ffffffff16565b905061308181600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4690919063ffffffff16565b600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a361313c818561223190919063ffffffff16565b925050509392505050565b60008083141561315a57600090506131c7565b600082840290508284828161316b57fe5b04146131c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134df6021913960400191505060405180910390fd5b809150505b92915050565b600061320f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613418565b905092915050565b6000600267ffffffffffffffff8111801561323157600080fd5b506040519080825280602002602001820160405280156132605781602001602082028036833780820191505090505b509050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160008151811061329357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106132db57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156133d35780820151818401526020810190506133b8565b50505050905001955050505050506000604051808303818588803b1580156133fa57600080fd5b505af115801561340e573d6000803e3d6000fd5b5050505050505050565b600080831182906134c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561348957808201518184015260208101905061346e565b50505050905090810190601f1680156134b65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816134d057fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e650b24626c4b4d193c07ad3039aaed9b500ef17f35f191f942356ce2595dd9d64736f6c63430007060033

Deployed Bytecode Sourcemap

7015:10081:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8563:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9682:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10520:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9944:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8169:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13321:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13528:366;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13191:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10122:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9858:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8133:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7956:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7803:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8464:40;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12045:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10742:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8100:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10270:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6672:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7668:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7605;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10038:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13093:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8007:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7411:64;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8289:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9768:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8062:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8410:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12932:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6247:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7771:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8246:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8203;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12268:298;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7731:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8511:45;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10381:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12172:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6347:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8379:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6559:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8563:53;;;;:::o;9682:80::-;9730:13;9754:5;;;;;;;;;;;;;;;;;9747:12;;9682:80;:::o;10520:216::-;10595:4;10647:6;10612:11;:23;10624:10;10612:23;;;;;;;;;;;;;;;:32;10636:7;10612:32;;;;;;;;;;;;;;;:41;;;;10690:7;10669:37;;10678:10;10669:37;;;10699:6;10669:37;;;;;;;;;;;;;;;;;;10724:4;10717:11;;10520:216;;;;:::o;9944:88::-;9999:7;10017:12;;10010:19;;9944:88;:::o;8169:27::-;;;;:::o;13321:199::-;6190:24;6203:10;6190:12;:24::i;:::-;6182:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13456:20:::1;13432:21;;:44;;;;;;;;;;;;;;;;;;13499:12;13487:9;;:24;;;;;;;;;;;;;;;;;;13321:199:::0;;:::o;13528:366::-;13628:4;13695:2;13652:11;:19;13664:6;13652:19;;;;;;;;;;;;;;;:31;13672:10;13652:31;;;;;;;;;;;;;;;;:46;13649:180;;13748:69;13784:6;13748:69;;;;;;;;;;;;;;;;;:11;:19;13760:6;13748:19;;;;;;;;;;;;;;;:31;13768:10;13748:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;13714:11;:19;13726:6;13714:19;;;;;;;;;;;;;;;:31;13734:10;13714:31;;;;;;;;;;;;;;;:103;;;;13649:180;13846:40;13860:6;13868:9;13879:6;13846:13;:40::i;:::-;13839:47;;13528:366;;;;;:::o;13191:122::-;6190:24;6203:10;6190:12;:24::i;:::-;6182:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13304:4:::1;13298:2;13290:7;:10;13274:12;;:27;:34;;;;;;13261:10;:47;;;;13191:122:::0;:::o;10122:142::-;10175:7;10202:54;10240:15;10250:4;;;;;;;;;;;10240:9;:15::i;:::-;10202:33;10219:15;10229:4;;;;;;;;;;;10219:9;:15::i;:::-;10202:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;10195:61;;10122:142;:::o;6450:103::-;6505:4;6540:5;;;;;;;;;;;6529:16;;:7;:16;;;6522:23;;6450:103;;;:::o;9858:80::-;9910:5;7199:2;9919:16;;9858:80;:::o;8133:29::-;;;;:::o;7956:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;7803:33::-;;;;;;;;;;;;;:::o;8464:40::-;;;;;;;;;;;;;:::o;12045:115::-;6190:24;6203:10;6190:12;:24::i;:::-;6182:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12145:7:::1;12125:17;:27;;;;12045:115:::0;:::o;10742:116::-;10797:4;10821:29;10829:7;10846:2;10821:7;:29::i;:::-;10814:36;;10742:116;;;:::o;8100:26::-;;;;:::o;10270:105::-;10336:7;10354:9;:18;10364:7;10354:18;;;;;;;;;;;;;;;;10347:25;;10270:105;;;:::o;6672:173::-;6102:19;6110:10;6102:7;:19::i;:::-;6094:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6756:3:::1;6748:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;6792:4;6770:14:::0;:19:::1;6785:3;6770:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;6812:25;6833:3;6812:25;;;;;;;;;;;;;;;;;;;;6672:173:::0;:::o;7668:51::-;;;;:::o;7605:::-;;;;:::o;10038:78::-;10090:7;10108:5;;;;;;;;;;;10101:12;;10038:78;:::o;13093:93::-;6190:24;6203:10;6190:12;:24::i;:::-;6182:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13175:6:::1;13158:14;;:23;;;;;;;;;;;;;;;;;;13093:93:::0;:::o;8007:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;7411:64::-;;;;;;;;;;;;;:::o;8289:24::-;;;;;;;;;;;;;:::o;9768:84::-;9818:13;9842:7;;;;;;;;;;;;;;;;;9835:14;;9768:84;:::o;8062:31::-;;;;:::o;8410:19::-;;;;;;;;;;;;;:::o;12932:156::-;13012:4;13036:44;13050:10;13062:9;13073:6;13036:13;:44::i;:::-;13029:51;;12932:156;;;;:::o;6247:94::-;6102:19;6110:10;6102:7;:19::i;:::-;6094:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6329:4:::1;6307:14:::0;:19:::1;6322:3;6307:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;6247:94:::0;:::o;7771:25::-;;;;:::o;8246:36::-;;;;;;;;;;;;;:::o;8203:::-;;;;:::o;12268:298::-;6190:24;6203:10;6190:12;:24::i;:::-;6182:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12387:9:::1;12372:12;:24;;;;12416:9;12407:6;:18;;;;12449:8;12436:10;:21;;;;12479:40;12508:10;;12479:24;12496:6;;12479:12;;:16;;:24;;;;:::i;:::-;:28;;:40;;;;:::i;:::-;12468:8;:51;;;;12550:8;;12530:17;:28;;;;12268:298:::0;;;:::o;7731:33::-;;;;:::o;8511:45::-;;;;;;;;;;;;;:::o;10381:133::-;10465:7;10483:11;:19;10495:6;10483:19;;;;;;;;;;;;;;;:28;10503:7;10483:28;;;;;;;;;;;;;;;;10476:35;;10381:133;;;;:::o;12172:88::-;6190:24;6203:10;6190:12;:24::i;:::-;6182:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12249:3:::1;12237:9;:15;;;;12172:88:::0;:::o;6347:97::-;6102:19;6110:10;6102:7;:19::i;:::-;6094:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6431:5:::1;6409:14;:19;6424:3;6409:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;6347:97:::0;:::o;8379:24::-;;;;;;;;;;;;;:::o;6559:107::-;6615:4;6639:14;:19;6654:3;6639:19;;;;;;;;;;;;;;;;;;;;;;;;;6632:26;;6559:107;;;:::o;2374:179::-;2432:7;2452:9;2468:1;2464;:5;2452:17;;2493:1;2488;:6;;2480:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2544:1;2537:8;;;2374:179;;;;:::o;2701:190::-;2787:7;2820:1;2815;:6;;2823:12;2807:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2847:9;2863:1;2859;:5;2847:17;;2882:1;2875:8;;;2701:190;;;;;:::o;13902:751::-;13994:4;14014:16;;;;;;;;;;;14011:73;;;14040:41;14055:6;14063:9;14074:6;14040:14;:41::i;:::-;14033:48;;;;14011:73;14111:4;;;;;;;;;;;14097:18;;:10;:18;;;;:39;;;;;14120:16;;;;;;;;;;;14119:17;14097:39;:64;;;;;14140:21;;;;;;;;;;;14097:64;:109;;;;;14193:13;;14165:9;:24;14183:4;14165:24;;;;;;;;;;;;;;;;:41;;14097:109;14094:128;;;14209:10;:8;:10::i;:::-;14094:128;14232:39;14245:6;14253:9;14264:6;14232:12;:39::i;:::-;14302:53;14324:6;14302:53;;;;;;;;;;;;;;;;;:9;:17;14312:6;14302:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14282:9;:17;14292:6;14282:17;;;;;;;;;;;;;;;:73;;;;14366:22;14392:11;:19;14404:6;14392:19;;;;;;;;;;;;;;;;;;;;;;;;;14391:20;:47;;;;;14416:11;:22;14428:9;14416:22;;;;;;;;;;;;;;;;;;;;;;;;;14415:23;14391:47;:93;;14478:6;14391:93;;;14441:34;14449:6;14457:9;14468:6;14441:7;:34::i;:::-;14391:93;14366:118;;14518:40;14543:14;14518:9;:20;14528:9;14518:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;14495:9;:20;14505:9;14495:20;;;;;;;;;;;;;;;:63;;;;14595:9;14574:47;;14583:10;14574:47;;;14606:14;14574:47;;;;;;;;;;;;;;;;;;14641:4;14634:11;;;13902:751;;;;;;:::o;2559:136::-;2617:7;2644:43;2648:1;2651;2644:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2637:50;;2559:136;;;;:::o;14661:330::-;14754:4;14791:53;14813:6;14791:53;;;;;;;;;;;;;;;;;:9;:17;14801:6;14791:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14771:9;:17;14781:6;14771:17;;;;;;;;;;;;;;;:73;;;;14878:32;14903:6;14878:9;:20;14888:9;14878:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14855:9;:20;14865:9;14855:20;;;;;;;;;;;;;;;:55;;;;14943:9;14926:35;;14935:6;14926:35;;;14954:6;14926:35;;;;;;;;;;;;;;;;;;14979:4;14972:11;;14661:330;;;;;:::o;15440:1591::-;8674:4;8655:16;;:23;;;;;;;;;;;;;;;;;;15494::::1;15520:9;:24;15538:4;15520:24;;;;;;;;;;;;;;;;15494:50;;15555:23;15581:54;15633:1;15581:47;15619:8;;15581:33;15601:12;;15581:15;:19;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;:51;;:54;;;;:::i;:::-;15555:80;;15646:20;15669:36;15689:15;15669;:19;;:36;;;;:::i;:::-;15646:59;;15718:21;15756:1;15742:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15718:40;;15787:4;15769;15774:1;15769:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;15813:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;15803:4;15808:1;15803:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;15839:6;;;;;;;;;;;:57;;;15911:12;15938:1;15954:4;15981;16001:15;15839:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16040:17;16060:21;16040:41;;16092:19;16114:33;16127:19;16144:1;16127:12;;:16;;:19;;;;:::i;:::-;16114:8;;:12;;:33;;;;:::i;:::-;16092:55;;16158:20;16181:38;16207:11;16181:21;16195:6;;16181:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16158:61;;16230:24;16257:42;16287:11;16257:25;16271:10;;16257:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;16230:69;;16310:26;16339:51;16388:1;16339:44;16371:11;16339:27;16353:12;;16339:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;16310:80;;16409:15;16437:9;;;;;;;;;;;16429:23;;16460:12;16479:5;16429:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16408:81;;;16513:5;16500:18;;16530:16;16567:4;16551:27;;16586:16;16609:5;16551:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16529:90;;;16644:5;16630:19;;16683:1;16665:15;:19;16662:362;;;16700:6;;;;;;;;;;;:22;;;16730:18;16776:4;16800:15;16834:1;16854::::0;16874:21:::1;;;;;;;;;;;16914:15;16700:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16964:48;16976:18;16996:15;16964:48;;;;;;;;;;;;;;;;;;;;;;;;16662:362;8689:1;;;;;;;;;;;8720:5:::0;8701:16;;:24;;;;;;;;;;;;;;;;;;15440:1591::o;10863:1174::-;10964:5;;;;;;;;;;10954:15;;:6;:15;;;;:50;;;;;10999:5;;;;;;;;;;10986:18;;:9;:18;;;;10954:50;:94;;;;;11022:15;:26;11038:9;11022:26;;;;;;;;;;;;;;;;;;;;;;;;;11021:27;10954:94;:128;;;;;11078:4;;;;;;;;;;;11065:17;;:9;:17;;;;10954:128;:163;;;;;11113:4;;;;;;;;;;;11100:17;;:9;:17;;;;10954:163;:198;;;;;11148:4;;;;;;;;;;;11135:17;;:9;:17;;;;10954:198;:242;;;;;11191:4;11170:26;;:9;:26;;;;10954:242;10950:732;;;11227:14;;;;;;;;;;;11223:189;;;11261:18;11305:6;11282:20;11292:9;11282;:20::i;:::-;:29;11261:50;;11343:1;11330:14;;11385:10;;11371;:24;;11363:33;;;;;;11223:189;;11444:1;11435:6;;:10;11426:6;:19;;;;11477:10;;11464;;:23;11460:111;;;11546:9;;11536:6;;11520:12;;:23;:35;;;;;;11507:10;:48;;;;11460:111;11602:10;;11589;;:23;11585:86;;;11645:10;;11632;:23;;;;11585:86;10950:732;11706:5;;;;;;;;;;11696:15;;:6;:15;;;;:50;;;;;11741:5;;;;;;;;;;11728:18;;:9;:18;;;;11696:50;:91;;;;;11764:15;:23;11780:6;11764:23;;;;;;;;;;;;;;;;;;;;;;;;;11763:24;11696:91;:122;;;;;11814:4;;;;;;;;;;;11804:14;;:6;:14;;;;11696:122;:166;;;;;11857:4;11836:26;;:9;:26;;;;11696:166;11692:338;;;11928:17;;11903:21;:42;11899:120;;11965:38;11975:21;11998:4;;;;;;;;;;;11965:9;:38::i;:::-;11899:120;11692:338;10863:1174;;;:::o;14999:433::-;15085:7;15113:21;15145:9;15137:17;;:4;;;;;;;;;;;:17;;;:48;;15177:8;;15137:48;;;15157:17;;15137:48;15113:72;;15196:17;15216:34;15246:3;15216:25;15227:13;15216:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;15196:54;;15288:39;15317:9;15288;:24;15306:4;15288:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15261:9;:24;15279:4;15261:24;;;;;;;;;;;;;;;:66;;;;15368:4;15343:42;;15352:6;15343:42;;;15375:9;15343:42;;;;;;;;;;;;;;;;;;15403:21;15414:9;15403:6;:10;;:21;;;;:::i;:::-;15396:28;;;;14999:433;;;;;:::o;2897:224::-;2955:7;2984:1;2979;:6;2975:25;;;2996:1;2989:8;;;;2975:25;3010:9;3026:1;3022;:5;3010:17;;3055:1;3050;3046;:5;;;;;;:10;3038:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3112:1;3105:8;;;2897:224;;;;;:::o;3127:132::-;3185:7;3212:39;3216:1;3219;3212:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3205:46;;3127:132;;;;:::o;12574:350::-;12641:21;12679:1;12665:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12641:40;;12702:4;;;;;;;;;;;12692;12697:1;12692:7;;;;;;;;;;;;;:14;;;;;;;;;;;12735:4;12717;12722:1;12717:7;;;;;;;;;;;;;:23;;;;;;;;;;;12751:6;;;;;;;;;;;:57;;;12816:6;12838:1;12854:4;12873:2;12890:15;12751:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12574:350;;;:::o;3265:189::-;3351:7;3383:1;3379;:5;3386:12;3371:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3410:9;3426:1;3422;:5;;;;;;3410:17;;3445:1;3438:8;;;3265:189;;;;;:::o

Swarm Source

ipfs://e650b24626c4b4d193c07ad3039aaed9b500ef17f35f191f942356ce2595dd9d

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.