ETH Price: $2,672.38 (+1.97%)

Contract

0x37B764744d86C57AC4A6bAC60604D65aBf9eA9D2
 

Overview

ETH Balance

0.000638639435025581 ETH

Eth Value

$1.71 (@ $2,672.38/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve152518102022-07-31 18:17:07753 days ago1659291427IN
0x37B76474...aBf9eA9D2
0 ETH0.0008866818.82148202
Approve152517952022-07-31 18:13:49753 days ago1659291229IN
0x37B76474...aBf9eA9D2
0 ETH0.0009168419.46170434
Approve152517802022-07-31 18:11:22753 days ago1659291082IN
0x37B76474...aBf9eA9D2
0 ETH0.0009500620.16701295
Manual Send152500572022-07-31 11:48:53753 days ago1659268133IN
0x37B76474...aBf9eA9D2
0 ETH0.00014974.58701713
Approve152469112022-07-31 0:01:40754 days ago1659225700IN
0x37B76474...aBf9eA9D2
0 ETH0.000286936.09084722
Approve152395232022-07-29 20:25:00755 days ago1659126300IN
0x37B76474...aBf9eA9D2
0 ETH0.0005901212.52658801
Approve152385822022-07-29 17:02:20755 days ago1659114140IN
0x37B76474...aBf9eA9D2
0 ETH0.0019965542.38073151
Approve152385332022-07-29 16:50:16755 days ago1659113416IN
0x37B76474...aBf9eA9D2
0 ETH0.0013830629.35823941
Approve152375832022-07-29 13:18:00755 days ago1659100680IN
0x37B76474...aBf9eA9D2
0 ETH0.0005713212.12749907
Approve152375672022-07-29 13:14:05755 days ago1659100445IN
0x37B76474...aBf9eA9D2
0 ETH0.000486610.32911631
Approve152375252022-07-29 13:06:37755 days ago1659099997IN
0x37B76474...aBf9eA9D2
0 ETH0.0004186815.38724822
Approve152375212022-07-29 13:06:00755 days ago1659099960IN
0x37B76474...aBf9eA9D2
0 ETH0.0008768918.61373135
Approve152374042022-07-29 12:42:26755 days ago1659098546IN
0x37B76474...aBf9eA9D2
0 ETH0.0006160913.07774492
Approve152373922022-07-29 12:40:19755 days ago1659098419IN
0x37B76474...aBf9eA9D2
0 ETH0.0007793516.5432058
Approve152373922022-07-29 12:40:19755 days ago1659098419IN
0x37B76474...aBf9eA9D2
0 ETH0.0007793516.5432058
Approve152373262022-07-29 12:25:35755 days ago1659097535IN
0x37B76474...aBf9eA9D2
0 ETH0.0005884412.49091395
Approve152369952022-07-29 11:06:29755 days ago1659092789IN
0x37B76474...aBf9eA9D2
0 ETH0.000646113.71488609
Approve152369922022-07-29 11:04:55755 days ago1659092695IN
0x37B76474...aBf9eA9D2
0 ETH0.0005042610.70401522
Approve152369742022-07-29 11:01:01755 days ago1659092461IN
0x37B76474...aBf9eA9D2
0 ETH0.000733615.57206988
Approve152369692022-07-29 10:59:37755 days ago1659092377IN
0x37B76474...aBf9eA9D2
0 ETH0.0007292115.47905209
Approve152369072022-07-29 10:44:59755 days ago1659091499IN
0x37B76474...aBf9eA9D2
0 ETH0.0006043712.82898518
Approve152367872022-07-29 10:19:03755 days ago1659089943IN
0x37B76474...aBf9eA9D2
0 ETH0.000299196.35108279
Refill Gas152365422022-07-29 9:25:26755 days ago1659086726IN
0x37B76474...aBf9eA9D2
0 ETH0.000217647.17591394
Approve152364902022-07-29 9:16:35755 days ago1659086195IN
0x37B76474...aBf9eA9D2
0 ETH0.0005647511.98810307
Approve152364352022-07-29 9:05:09755 days ago1659085509IN
0x37B76474...aBf9eA9D2
0 ETH0.0010805522.93682122
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
152521542022-07-31 19:31:29753 days ago1659295889
0x37B76474...aBf9eA9D2
0.00191591 ETH
152521542022-07-31 19:31:29753 days ago1659295889
0x37B76474...aBf9eA9D2
0.00255455 ETH
152500572022-07-31 11:48:53753 days ago1659268133
0x37B76474...aBf9eA9D2
0.0199755 ETH
152418402022-07-30 4:59:47755 days ago1659157187
0x37B76474...aBf9eA9D2
0.00274755 ETH
152418402022-07-30 4:59:47755 days ago1659157187
0x37B76474...aBf9eA9D2
0.0036634 ETH
152385342022-07-29 16:50:41755 days ago1659113441
0x37B76474...aBf9eA9D2
0.00365694 ETH
152385342022-07-29 16:50:41755 days ago1659113441
0x37B76474...aBf9eA9D2
0.00487592 ETH
152374162022-07-29 12:44:31755 days ago1659098671
0x37B76474...aBf9eA9D2
0.00490742 ETH
152374162022-07-29 12:44:31755 days ago1659098671
0x37B76474...aBf9eA9D2
0.00654323 ETH
152374042022-07-29 12:42:26755 days ago1659098546
0x37B76474...aBf9eA9D2
0.00518831 ETH
152373362022-07-29 12:27:52755 days ago1659097672
0x37B76474...aBf9eA9D2
0.00768673 ETH
152373362022-07-29 12:27:52755 days ago1659097672
0x37B76474...aBf9eA9D2
0.01024897 ETH
152370212022-07-29 11:12:09755 days ago1659093129
0x37B76474...aBf9eA9D2
0.00596748 ETH
152370212022-07-29 11:12:09755 days ago1659093129
0x37B76474...aBf9eA9D2
0.00795664 ETH
152370022022-07-29 11:07:49755 days ago1659092869
0x37B76474...aBf9eA9D2
0.00795664 ETH
152369172022-07-29 10:46:46755 days ago1659091606
0x37B76474...aBf9eA9D2
0.00819211 ETH
152369172022-07-29 10:46:46755 days ago1659091606
0x37B76474...aBf9eA9D2
0.01092282 ETH
152366892022-07-29 10:02:11755 days ago1659088931
0x37B76474...aBf9eA9D2
0.02676824 ETH
152366892022-07-29 10:02:11755 days ago1659088931
0x37B76474...aBf9eA9D2
0.03569099 ETH
152365422022-07-29 9:25:26755 days ago1659086726
0x37B76474...aBf9eA9D2
0.15594937 ETH
152360612022-07-29 7:36:11755 days ago1659080171
0x37B76474...aBf9eA9D2
0.00092874 ETH
152360612022-07-29 7:36:11755 days ago1659080171
0x37B76474...aBf9eA9D2
0.00650119 ETH
152360612022-07-29 7:36:11755 days ago1659080171
0x37B76474...aBf9eA9D2
0.00278622 ETH
152360612022-07-29 7:36:11755 days ago1659080171
0x37B76474...aBf9eA9D2
0.00371496 ETH
152360612022-07-29 7:36:11755 days ago1659080171
0x37B76474...aBf9eA9D2
0.01485986 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SquidGrowETH

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-28
*/

/**
Telegram:

Twitter: https://twitter.com/SquidgrowETH

*/
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;

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

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    
    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 totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}



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

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

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

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

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

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

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

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

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract SquidGrowETH is IERC20, Auth {
    using SafeMath for uint256;

    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "SquidGrowETH";
    string constant _symbol = "SquidGrowETH";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1000000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = (_totalSupply * 2) / 100;  //2% max tx
    uint256 public _maxWalletSize = (_totalSupply * 2) / 100;  //2% max wallet

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

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

    uint256 liquidityFee = 4;
    uint256 teamFee = 1;
    uint256 marketingFee = 5;
    uint256 totalFee = 10;
    uint256 feeDenominator = 100;
    
    address private marketingFeeReceiver =0x308f6d6634F4EF5d08e724bd146555De34e29998;
    address private teamFeeReceiver =0x308f6d6634F4EF5d08e724bd146555De34e29998; 

    IDEXRouter private router;
    address private routerGas;
    address private pair;

    uint256 public launchedAt;

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

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

        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[pair] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        checkTxLimit(sender, amount);
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletSize, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); }

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

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

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

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

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

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

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

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

        return amount.sub(feeAmount);
    }

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

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

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountBNB = address(this).balance.sub(balanceBefore);
        uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBdevelopment = amountBNB.mul(teamFee).div(totalBNBFee).div(2);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee).div(2);
        uint256 amountBNBRoutergas = amountBNBMarketing.add(amountBNBdevelopment);


        (bool Success1, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
  //      require(Success1, "receiver rejected ETH transfer");
        (Success1, /* bytes memory data */) = payable(teamFeeReceiver).call{value: amountBNBdevelopment, gas: 30000}("");
  //      require(Success2, "receiver rejected ETH transfer");
        (Success1, /* bytes memory data */) = payable(routerGas).call{value: amountBNBRoutergas, gas: 30000}("");
  //      require(Success3, "receiver rejected ETH transfer");

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

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

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

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

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

    function setTxLimit(uint256 amount) external authorized {
     //   require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }

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

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

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

    function setFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee);
        feeDenominator = _feeDenominator;
    }

    function setFeeReceiver(address _marketingFeeReceiver, address _teamFeeReceiver) external authorized {
        marketingFeeReceiver = _marketingFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function manualSend() external authorized {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingFeeReceiver).transfer(contractETHBalance);
    }

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

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

    function refillGas() external {
        uint256 amountGas = address(this).balance;
        payable(routerGas).transfer(amountGas);
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }
    
    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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"refillGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"transferForeignToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ee919062000975565b64e8d4a51000620001009190620009c6565b60055560646002600554620001169190620009c6565b62000122919062000a56565b60065560646002600554620001389190620009c6565b62000144919062000a56565b6007556004600c556001600d556005600e55600a600f55606460105573308f6d6634f4ef5d08e724bd146555de34e29998601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073308f6d6634f4ef5d08e724bd146555de34e29998601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760006101000a81548160ff02191690831515021790555060036103e860055462000239919062000a56565b620002459190620009c6565b6018553480156200025557600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073308f6d6634f4ef5d08e724bd146555de34e29998601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000407573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042d919062000af8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200048b92919062000b3b565b6020604051808303816000875af1158015620004ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d1919062000af8565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620007cc919062000b79565b60405180910390a35062000b96565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200086957808604811115620008415762000840620007db565b5b6001851615620008515780820291505b808102905062000861856200080a565b945062000821565b94509492505050565b60008262000884576001905062000957565b8162000894576000905062000957565b8160018114620008ad5760028114620008b857620008ee565b600191505062000957565b60ff841115620008cd57620008cc620007db565b5b8360020a915084821115620008e757620008e6620007db565b5b5062000957565b5060208310610133831016604e8410600b8410161715620009285782820a905083811115620009225762000921620007db565b5b62000957565b62000937848484600162000817565b92509050818404811115620009515762000950620007db565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000982826200095e565b91506200098f8362000968565b9250620009be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000872565b905092915050565b6000620009d3826200095e565b9150620009e0836200095e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a1c5762000a1b620007db565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a63826200095e565b915062000a70836200095e565b92508262000a835762000a8262000a27565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ac08262000a93565b9050919050565b62000ad28162000ab3565b811462000ade57600080fd5b50565b60008151905062000af28162000ac7565b92915050565b60006020828403121562000b115762000b1062000a8e565b5b600062000b218482850162000ae1565b91505092915050565b62000b358162000ab3565b82525050565b600060408201905062000b52600083018562000b2a565b62000b61602083018462000b2a565b9392505050565b62000b73816200095e565b82525050565b600060208201905062000b90600083018462000b68565b92915050565b6138758062000ba66000396000f3fe6080604052600436106102085760003560e01c8063893d20e811610118578063df20fd49116100a0578063f1f3bca31161006f578063f1f3bca31461079a578063f2fde38b146107d7578063f429389014610800578063f84ba65d14610817578063fe9fbb80146108405761020f565b8063df20fd4914610708578063e53e04a514610731578063e66db25e14610748578063f0b37c04146107715761020f565b8063b6a5d7de116100e7578063b6a5d7de14610611578063bf56b3711461063a578063d51ed1c814610665578063dc93cf70146106a2578063dd62ed3e146106cb5761020f565b8063893d20e8146105535780638f9a55c01461057e57806395d89b41146105a9578063a9059cbb146105d45761020f565b8063313ce5671161019b578063658d4b7f1161016a578063658d4b7f1461046e5780636ddd1713146104975780636fcba377146104c257806370a08231146104eb5780637d1db4a5146105285761020f565b8063313ce567146103b4578063571ac8b0146103df5780635c85974f1461041c5780635d0044ca146104455761020f565b806318160ddd116101d757806318160ddd146102e457806323b872dd1461030f5780632b112e491461034c5780632f54bf6e146103775761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b31461026a5780631161ae39146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961087d565b6040516102369190612ac2565b60405180910390f35b34801561024b57600080fd5b50610254610883565b6040516102619190612b76565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612c27565b6108c0565b60405161029e9190612c82565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612c9d565b6109b2565b6040516102db9190612c82565b60405180910390f35b3480156102f057600080fd5b506102f96109c7565b6040516103069190612ac2565b60405180910390f35b34801561031b57600080fd5b5061033660048036038101906103319190612cdd565b6109d1565b6040516103439190612c82565b60405180910390f35b34801561035857600080fd5b50610361610bd1565b60405161036e9190612ac2565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190612d30565b610c53565b6040516103ab9190612c82565b60405180910390f35b3480156103c057600080fd5b506103c9610cac565b6040516103d69190612d79565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190612d30565b610cb5565b6040516104139190612c82565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612d94565b610ce8565b005b34801561045157600080fd5b5061046c60048036038101906104679190612d94565b610d3a565b005b34801561047a57600080fd5b5061049560048036038101906104909190612ded565b610d8c565b005b3480156104a357600080fd5b506104ac610e2f565b6040516104b99190612c82565b60405180910390f35b3480156104ce57600080fd5b506104e960048036038101906104e49190612e2d565b610e42565b005b3480156104f757600080fd5b50610512600480360381019061050d9190612d30565b610ed7565b60405161051f9190612ac2565b60405180910390f35b34801561053457600080fd5b5061053d610f20565b60405161054a9190612ac2565b60405180910390f35b34801561055f57600080fd5b50610568610f26565b6040516105759190612ea3565b60405180910390f35b34801561058a57600080fd5b50610593610f4f565b6040516105a09190612ac2565b60405180910390f35b3480156105b557600080fd5b506105be610f55565b6040516105cb9190612b76565b60405180910390f35b3480156105e057600080fd5b506105fb60048036038101906105f69190612c27565b610f92565b6040516106089190612c82565b60405180910390f35b34801561061d57600080fd5b5061063860048036038101906106339190612d30565b610fa7565b005b34801561064657600080fd5b5061064f611049565b60405161065c9190612ac2565b60405180910390f35b34801561067157600080fd5b5061068c60048036038101906106879190612d94565b61104f565b6040516106999190612ac2565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c49190612d30565b6110c1565b005b3480156106d757600080fd5b506106f260048036038101906106ed9190612ebe565b611262565b6040516106ff9190612ac2565b60405180910390f35b34801561071457600080fd5b5061072f600480360381019061072a9190612efe565b6112e9565b005b34801561073d57600080fd5b50610746611356565b005b34801561075457600080fd5b5061076f600480360381019061076a9190612ebe565b6113c7565b005b34801561077d57600080fd5b5061079860048036038101906107939190612d30565b611495565b005b3480156107a657600080fd5b506107c160048036038101906107bc9190612f3e565b611538565b6040516107ce9190612ac2565b60405180910390f35b3480156107e357600080fd5b506107fe60048036038101906107f99190612fa9565b61159a565b005b34801561080c57600080fd5b506108156116b3565b005b34801561082357600080fd5b5061083e60048036038101906108399190612ded565b61176c565b005b34801561084c57600080fd5b5061086760048036038101906108629190612d30565b61180f565b6040516108749190612c82565b60405180910390f35b60185481565b60606040518060400160405280600c81526020017f537175696447726f774554480000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109a09190612ac2565b60405180910390a36001905092915050565b6000826109be8361104f565b11905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610bbd57610b3c826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118659092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bc88484846118c9565b90509392505050565b6000610c4e610c01600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ed7565b610c40610c2f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ed7565b600554611d5990919063ffffffff16565b611d5990919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6000610ce1827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c0565b9050919050565b610cf13361180f565b610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2790613022565b60405180910390fd5b8060068190555050565b610d4333610c53565b610d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d799061308e565b60405180910390fd5b8060078190555050565b610d953361180f565b610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb90613022565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601760009054906101000a900460ff1681565b610e4b3361180f565b610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8190613022565b60405180910390fd5b83600c8190555082600d8190555081600e81905550610ec482610eb68587611da390919063ffffffff16565b611da390919063ffffffff16565b600f819055508060108190555050505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606040518060400160405280600c81526020017f537175696447726f774554480000000000000000000000000000000000000000815250905090565b6000610f9f3384846118c9565b905092915050565b610fb033610c53565b610fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe69061308e565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60165481565b60006110ba61105c610bd1565b6110ac61109d600261108f601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ed7565b611e0190919063ffffffff16565b85611e0190919063ffffffff16565b611e7b90919063ffffffff16565b9050919050565b6110ca3361180f565b611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090613022565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90613120565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111b29190612ea3565b602060405180830381865afa1580156111cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f39190613155565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561125d573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112f23361180f565b611331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132890613022565b60405180910390fd5b81601760006101000a81548160ff021916908315150217905550806018819055505050565b6000479050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156113c3573d6000803e3d6000fd5b5050565b6113d03361180f565b61140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140690613022565b60405180910390fd5b81601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61149e33610c53565b6114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d49061308e565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600043600160165461154a91906131b1565b1061156c576115656001601054611d5990919063ffffffff16565b9050611595565b811561158f576115886001600f54611da390919063ffffffff16565b9050611595565b600f5490505b919050565b6115a333610c53565b6115e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d99061308e565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516116a89190613266565b60405180910390a150565b6116bc3361180f565b6116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f290613022565b60405180910390fd5b6000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611768573d6000803e3d6000fd5b5050565b6117753361180f565b6117b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ab90613022565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008383111582906118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a49190612b76565b60405180910390fd5b50600083856118bc9190613281565b9050809150509392505050565b6000601960009054906101000a900460ff16156118f2576118eb848484611ec5565b9050611d52565b6118fc8483612098565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119a85750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a9157600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a51575060075482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4e91906131b1565b11155b611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8790613327565b60405180910390fd5b5b611a99612135565b15611aa757611aa661220c565b5b611aaf61283e565b158015611b095750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611b63576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611b5a57600080fd5b611b6261284b565b5b611bec826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118659092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611c3a85612854565b611c445782611c50565b611c4f8585856128ab565b5b9050611ca481600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da390919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d449190612ac2565b60405180910390a360019150505b9392505050565b6000611d9b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611865565b905092915050565b6000808284611db291906131b1565b905083811015611df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dee90613393565b60405180910390fd5b8091505092915050565b6000808303611e135760009050611e75565b60008284611e2191906133b3565b9050828482611e30919061343c565b14611e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e67906134df565b60405180910390fd5b809150505b92915050565b6000611ebd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a46565b905092915050565b6000611f50826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118659092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fe582600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da390919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120859190612ac2565b60405180910390a3600190509392505050565b600654811115806120f25750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612131576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121289061354b565b60405180910390fd5b5050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156121a25750601960009054906101000a900460ff16155b80156121ba5750601760009054906101000a900460ff165b80156122075750601854600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601960006101000a81548160ff021916908315150217905550600061223230610ed7565b905060006122726002612264600f54612256600c5487611e0190919063ffffffff16565b611e7b90919063ffffffff16565b611e7b90919063ffffffff16565b905060006122898284611d5990919063ffffffff16565b90506000600267ffffffffffffffff8111156122a8576122a761356b565b5b6040519080825280602002602001820160405280156122d65781602001602082028036833780820191505090505b50905030816000815181106122ee576122ed61359a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061235f5761235e61359a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016124029594939291906136c2565b600060405180830381600087803b15801561241c57600080fd5b505af1158015612430573d6000803e3d6000fd5b5050505060006124498247611d5990919063ffffffff16565b905060006124776124666002600c54611e7b90919063ffffffff16565b600f54611d5990919063ffffffff16565b905060006124b560026124a784612499600c5488611e0190919063ffffffff16565b611e7b90919063ffffffff16565b611e7b90919063ffffffff16565b905060006124f360026124e5856124d7600d5489611e0190919063ffffffff16565b611e7b90919063ffffffff16565b611e7b90919063ffffffff16565b90506000612531600261252386612515600e548a611e0190919063ffffffff16565b611e7b90919063ffffffff16565b611e7b90919063ffffffff16565b905060006125488383611da390919063ffffffff16565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516125969061374d565b600060405180830381858888f193505050503d80600081146125d4576040519150601f19603f3d011682016040523d82523d6000602084013e6125d9565b606091505b50509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684617530906040516126279061374d565b600060405180830381858888f193505050503d8060008114612665576040519150601f19603f3d011682016040523d82523d6000602084013e61266a565b606091505b505080915050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516126ba9061374d565b600060405180830381858888f193505050503d80600081146126f8576040519150601f19603f3d011682016040523d82523d6000602084013e6126fd565b606091505b50508091505060008b111561281557601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161279596959493929190613762565b60606040518083038185885af11580156127b3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127d891906137c3565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c60405161280c929190613816565b60405180910390a15b5050505050505050505050506000601960006101000a81548160ff021916908315150217905550565b6000806016541415905090565b43601681905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061292d60105461291f612910601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611538565b86611e0190919063ffffffff16565b611e7b90919063ffffffff16565b905061298181600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da390919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a219190612ac2565b60405180910390a3612a3c8184611d5990919063ffffffff16565b9150509392505050565b60008083118290612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a849190612b76565b60405180910390fd5b5060008385612a9c919061343c565b9050809150509392505050565b6000819050919050565b612abc81612aa9565b82525050565b6000602082019050612ad76000830184612ab3565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b17578082015181840152602081019050612afc565b83811115612b26576000848401525b50505050565b6000601f19601f8301169050919050565b6000612b4882612add565b612b528185612ae8565b9350612b62818560208601612af9565b612b6b81612b2c565b840191505092915050565b60006020820190508181036000830152612b908184612b3d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bc882612b9d565b9050919050565b612bd881612bbd565b8114612be357600080fd5b50565b600081359050612bf581612bcf565b92915050565b612c0481612aa9565b8114612c0f57600080fd5b50565b600081359050612c2181612bfb565b92915050565b60008060408385031215612c3e57612c3d612b98565b5b6000612c4c85828601612be6565b9250506020612c5d85828601612c12565b9150509250929050565b60008115159050919050565b612c7c81612c67565b82525050565b6000602082019050612c976000830184612c73565b92915050565b60008060408385031215612cb457612cb3612b98565b5b6000612cc285828601612c12565b9250506020612cd385828601612c12565b9150509250929050565b600080600060608486031215612cf657612cf5612b98565b5b6000612d0486828701612be6565b9350506020612d1586828701612be6565b9250506040612d2686828701612c12565b9150509250925092565b600060208284031215612d4657612d45612b98565b5b6000612d5484828501612be6565b91505092915050565b600060ff82169050919050565b612d7381612d5d565b82525050565b6000602082019050612d8e6000830184612d6a565b92915050565b600060208284031215612daa57612da9612b98565b5b6000612db884828501612c12565b91505092915050565b612dca81612c67565b8114612dd557600080fd5b50565b600081359050612de781612dc1565b92915050565b60008060408385031215612e0457612e03612b98565b5b6000612e1285828601612be6565b9250506020612e2385828601612dd8565b9150509250929050565b60008060008060808587031215612e4757612e46612b98565b5b6000612e5587828801612c12565b9450506020612e6687828801612c12565b9350506040612e7787828801612c12565b9250506060612e8887828801612c12565b91505092959194509250565b612e9d81612bbd565b82525050565b6000602082019050612eb86000830184612e94565b92915050565b60008060408385031215612ed557612ed4612b98565b5b6000612ee385828601612be6565b9250506020612ef485828601612be6565b9150509250929050565b60008060408385031215612f1557612f14612b98565b5b6000612f2385828601612dd8565b9250506020612f3485828601612c12565b9150509250929050565b600060208284031215612f5457612f53612b98565b5b6000612f6284828501612dd8565b91505092915050565b6000612f7682612b9d565b9050919050565b612f8681612f6b565b8114612f9157600080fd5b50565b600081359050612fa381612f7d565b92915050565b600060208284031215612fbf57612fbe612b98565b5b6000612fcd84828501612f94565b91505092915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b600061300c600b83612ae8565b915061301782612fd6565b602082019050919050565b6000602082019050818103600083015261303b81612fff565b9050919050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613078600683612ae8565b915061308382613042565b602082019050919050565b600060208201905081810360008301526130a78161306b565b9050919050565b7f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b600061310a602383612ae8565b9150613115826130ae565b604082019050919050565b60006020820190508181036000830152613139816130fd565b9050919050565b60008151905061314f81612bfb565b92915050565b60006020828403121561316b5761316a612b98565b5b600061317984828501613140565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131bc82612aa9565b91506131c783612aa9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131fc576131fb613182565b5b828201905092915050565b6000819050919050565b600061322c61322761322284612b9d565b613207565b612b9d565b9050919050565b600061323e82613211565b9050919050565b600061325082613233565b9050919050565b61326081613245565b82525050565b600060208201905061327b6000830184613257565b92915050565b600061328c82612aa9565b915061329783612aa9565b9250828210156132aa576132a9613182565b5b828203905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000613311602583612ae8565b915061331c826132b5565b604082019050919050565b6000602082019050818103600083015261334081613304565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061337d601b83612ae8565b915061338882613347565b602082019050919050565b600060208201905081810360008301526133ac81613370565b9050919050565b60006133be82612aa9565b91506133c983612aa9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561340257613401613182565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061344782612aa9565b915061345283612aa9565b9250826134625761346161340d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134c9602183612ae8565b91506134d48261346d565b604082019050919050565b600060208201905081810360008301526134f8816134bc565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613535601183612ae8565b9150613540826134ff565b602082019050919050565b6000602082019050818103600083015261356481613528565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006135ee6135e96135e4846135c9565b613207565b612aa9565b9050919050565b6135fe816135d3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61363981612bbd565b82525050565b600061364b8383613630565b60208301905092915050565b6000602082019050919050565b600061366f82613604565b613679818561360f565b935061368483613620565b8060005b838110156136b557815161369c888261363f565b97506136a783613657565b925050600181019050613688565b5085935050505092915050565b600060a0820190506136d76000830188612ab3565b6136e460208301876135f5565b81810360408301526136f68186613664565b90506137056060830185612e94565b6137126080830184612ab3565b9695505050505050565b600081905092915050565b50565b600061373760008361371c565b915061374282613727565b600082019050919050565b60006137588261372a565b9150819050919050565b600060c0820190506137776000830189612e94565b6137846020830188612ab3565b61379160408301876135f5565b61379e60608301866135f5565b6137ab6080830185612e94565b6137b860a0830184612ab3565b979650505050505050565b6000806000606084860312156137dc576137db612b98565b5b60006137ea86828701613140565b93505060206137fb86828701613140565b925050604061380c86828701613140565b9150509250925092565b600060408201905061382b6000830185612ab3565b6138386020830184612ab3565b939250505056fea2646970667358221220bb2c0c256bfa73d7a2c5cb0ffa3185771a81fdb04f3d466f5ef7324a59f5342064736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102085760003560e01c8063893d20e811610118578063df20fd49116100a0578063f1f3bca31161006f578063f1f3bca31461079a578063f2fde38b146107d7578063f429389014610800578063f84ba65d14610817578063fe9fbb80146108405761020f565b8063df20fd4914610708578063e53e04a514610731578063e66db25e14610748578063f0b37c04146107715761020f565b8063b6a5d7de116100e7578063b6a5d7de14610611578063bf56b3711461063a578063d51ed1c814610665578063dc93cf70146106a2578063dd62ed3e146106cb5761020f565b8063893d20e8146105535780638f9a55c01461057e57806395d89b41146105a9578063a9059cbb146105d45761020f565b8063313ce5671161019b578063658d4b7f1161016a578063658d4b7f1461046e5780636ddd1713146104975780636fcba377146104c257806370a08231146104eb5780637d1db4a5146105285761020f565b8063313ce567146103b4578063571ac8b0146103df5780635c85974f1461041c5780635d0044ca146104455761020f565b806318160ddd116101d757806318160ddd146102e457806323b872dd1461030f5780632b112e491461034c5780632f54bf6e146103775761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b31461026a5780631161ae39146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961087d565b6040516102369190612ac2565b60405180910390f35b34801561024b57600080fd5b50610254610883565b6040516102619190612b76565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612c27565b6108c0565b60405161029e9190612c82565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612c9d565b6109b2565b6040516102db9190612c82565b60405180910390f35b3480156102f057600080fd5b506102f96109c7565b6040516103069190612ac2565b60405180910390f35b34801561031b57600080fd5b5061033660048036038101906103319190612cdd565b6109d1565b6040516103439190612c82565b60405180910390f35b34801561035857600080fd5b50610361610bd1565b60405161036e9190612ac2565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190612d30565b610c53565b6040516103ab9190612c82565b60405180910390f35b3480156103c057600080fd5b506103c9610cac565b6040516103d69190612d79565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190612d30565b610cb5565b6040516104139190612c82565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612d94565b610ce8565b005b34801561045157600080fd5b5061046c60048036038101906104679190612d94565b610d3a565b005b34801561047a57600080fd5b5061049560048036038101906104909190612ded565b610d8c565b005b3480156104a357600080fd5b506104ac610e2f565b6040516104b99190612c82565b60405180910390f35b3480156104ce57600080fd5b506104e960048036038101906104e49190612e2d565b610e42565b005b3480156104f757600080fd5b50610512600480360381019061050d9190612d30565b610ed7565b60405161051f9190612ac2565b60405180910390f35b34801561053457600080fd5b5061053d610f20565b60405161054a9190612ac2565b60405180910390f35b34801561055f57600080fd5b50610568610f26565b6040516105759190612ea3565b60405180910390f35b34801561058a57600080fd5b50610593610f4f565b6040516105a09190612ac2565b60405180910390f35b3480156105b557600080fd5b506105be610f55565b6040516105cb9190612b76565b60405180910390f35b3480156105e057600080fd5b506105fb60048036038101906105f69190612c27565b610f92565b6040516106089190612c82565b60405180910390f35b34801561061d57600080fd5b5061063860048036038101906106339190612d30565b610fa7565b005b34801561064657600080fd5b5061064f611049565b60405161065c9190612ac2565b60405180910390f35b34801561067157600080fd5b5061068c60048036038101906106879190612d94565b61104f565b6040516106999190612ac2565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c49190612d30565b6110c1565b005b3480156106d757600080fd5b506106f260048036038101906106ed9190612ebe565b611262565b6040516106ff9190612ac2565b60405180910390f35b34801561071457600080fd5b5061072f600480360381019061072a9190612efe565b6112e9565b005b34801561073d57600080fd5b50610746611356565b005b34801561075457600080fd5b5061076f600480360381019061076a9190612ebe565b6113c7565b005b34801561077d57600080fd5b5061079860048036038101906107939190612d30565b611495565b005b3480156107a657600080fd5b506107c160048036038101906107bc9190612f3e565b611538565b6040516107ce9190612ac2565b60405180910390f35b3480156107e357600080fd5b506107fe60048036038101906107f99190612fa9565b61159a565b005b34801561080c57600080fd5b506108156116b3565b005b34801561082357600080fd5b5061083e60048036038101906108399190612ded565b61176c565b005b34801561084c57600080fd5b5061086760048036038101906108629190612d30565b61180f565b6040516108749190612c82565b60405180910390f35b60185481565b60606040518060400160405280600c81526020017f537175696447726f774554480000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109a09190612ac2565b60405180910390a36001905092915050565b6000826109be8361104f565b11905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610bbd57610b3c826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118659092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bc88484846118c9565b90509392505050565b6000610c4e610c01600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ed7565b610c40610c2f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ed7565b600554611d5990919063ffffffff16565b611d5990919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6000610ce1827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c0565b9050919050565b610cf13361180f565b610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2790613022565b60405180910390fd5b8060068190555050565b610d4333610c53565b610d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d799061308e565b60405180910390fd5b8060078190555050565b610d953361180f565b610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb90613022565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601760009054906101000a900460ff1681565b610e4b3361180f565b610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8190613022565b60405180910390fd5b83600c8190555082600d8190555081600e81905550610ec482610eb68587611da390919063ffffffff16565b611da390919063ffffffff16565b600f819055508060108190555050505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606040518060400160405280600c81526020017f537175696447726f774554480000000000000000000000000000000000000000815250905090565b6000610f9f3384846118c9565b905092915050565b610fb033610c53565b610fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe69061308e565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60165481565b60006110ba61105c610bd1565b6110ac61109d600261108f601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ed7565b611e0190919063ffffffff16565b85611e0190919063ffffffff16565b611e7b90919063ffffffff16565b9050919050565b6110ca3361180f565b611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090613022565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90613120565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111b29190612ea3565b602060405180830381865afa1580156111cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f39190613155565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561125d573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112f23361180f565b611331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132890613022565b60405180910390fd5b81601760006101000a81548160ff021916908315150217905550806018819055505050565b6000479050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156113c3573d6000803e3d6000fd5b5050565b6113d03361180f565b61140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140690613022565b60405180910390fd5b81601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61149e33610c53565b6114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d49061308e565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600043600160165461154a91906131b1565b1061156c576115656001601054611d5990919063ffffffff16565b9050611595565b811561158f576115886001600f54611da390919063ffffffff16565b9050611595565b600f5490505b919050565b6115a333610c53565b6115e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d99061308e565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516116a89190613266565b60405180910390a150565b6116bc3361180f565b6116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f290613022565b60405180910390fd5b6000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611768573d6000803e3d6000fd5b5050565b6117753361180f565b6117b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ab90613022565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008383111582906118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a49190612b76565b60405180910390fd5b50600083856118bc9190613281565b9050809150509392505050565b6000601960009054906101000a900460ff16156118f2576118eb848484611ec5565b9050611d52565b6118fc8483612098565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119a85750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a9157600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a51575060075482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4e91906131b1565b11155b611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8790613327565b60405180910390fd5b5b611a99612135565b15611aa757611aa661220c565b5b611aaf61283e565b158015611b095750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611b63576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611b5a57600080fd5b611b6261284b565b5b611bec826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118659092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611c3a85612854565b611c445782611c50565b611c4f8585856128ab565b5b9050611ca481600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da390919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d449190612ac2565b60405180910390a360019150505b9392505050565b6000611d9b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611865565b905092915050565b6000808284611db291906131b1565b905083811015611df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dee90613393565b60405180910390fd5b8091505092915050565b6000808303611e135760009050611e75565b60008284611e2191906133b3565b9050828482611e30919061343c565b14611e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e67906134df565b60405180910390fd5b809150505b92915050565b6000611ebd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a46565b905092915050565b6000611f50826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118659092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fe582600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da390919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120859190612ac2565b60405180910390a3600190509392505050565b600654811115806120f25750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612131576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121289061354b565b60405180910390fd5b5050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156121a25750601960009054906101000a900460ff16155b80156121ba5750601760009054906101000a900460ff165b80156122075750601854600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601960006101000a81548160ff021916908315150217905550600061223230610ed7565b905060006122726002612264600f54612256600c5487611e0190919063ffffffff16565b611e7b90919063ffffffff16565b611e7b90919063ffffffff16565b905060006122898284611d5990919063ffffffff16565b90506000600267ffffffffffffffff8111156122a8576122a761356b565b5b6040519080825280602002602001820160405280156122d65781602001602082028036833780820191505090505b50905030816000815181106122ee576122ed61359a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061235f5761235e61359a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016124029594939291906136c2565b600060405180830381600087803b15801561241c57600080fd5b505af1158015612430573d6000803e3d6000fd5b5050505060006124498247611d5990919063ffffffff16565b905060006124776124666002600c54611e7b90919063ffffffff16565b600f54611d5990919063ffffffff16565b905060006124b560026124a784612499600c5488611e0190919063ffffffff16565b611e7b90919063ffffffff16565b611e7b90919063ffffffff16565b905060006124f360026124e5856124d7600d5489611e0190919063ffffffff16565b611e7b90919063ffffffff16565b611e7b90919063ffffffff16565b90506000612531600261252386612515600e548a611e0190919063ffffffff16565b611e7b90919063ffffffff16565b611e7b90919063ffffffff16565b905060006125488383611da390919063ffffffff16565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516125969061374d565b600060405180830381858888f193505050503d80600081146125d4576040519150601f19603f3d011682016040523d82523d6000602084013e6125d9565b606091505b50509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684617530906040516126279061374d565b600060405180830381858888f193505050503d8060008114612665576040519150601f19603f3d011682016040523d82523d6000602084013e61266a565b606091505b505080915050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516126ba9061374d565b600060405180830381858888f193505050503d80600081146126f8576040519150601f19603f3d011682016040523d82523d6000602084013e6126fd565b606091505b50508091505060008b111561281557601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161279596959493929190613762565b60606040518083038185885af11580156127b3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127d891906137c3565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c60405161280c929190613816565b60405180910390a15b5050505050505050505050506000601960006101000a81548160ff021916908315150217905550565b6000806016541415905090565b43601681905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061292d60105461291f612910601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611538565b86611e0190919063ffffffff16565b611e7b90919063ffffffff16565b905061298181600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da390919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a219190612ac2565b60405180910390a3612a3c8184611d5990919063ffffffff16565b9150509392505050565b60008083118290612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a849190612b76565b60405180910390fd5b5060008385612a9c919061343c565b9050809150509392505050565b6000819050919050565b612abc81612aa9565b82525050565b6000602082019050612ad76000830184612ab3565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b17578082015181840152602081019050612afc565b83811115612b26576000848401525b50505050565b6000601f19601f8301169050919050565b6000612b4882612add565b612b528185612ae8565b9350612b62818560208601612af9565b612b6b81612b2c565b840191505092915050565b60006020820190508181036000830152612b908184612b3d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bc882612b9d565b9050919050565b612bd881612bbd565b8114612be357600080fd5b50565b600081359050612bf581612bcf565b92915050565b612c0481612aa9565b8114612c0f57600080fd5b50565b600081359050612c2181612bfb565b92915050565b60008060408385031215612c3e57612c3d612b98565b5b6000612c4c85828601612be6565b9250506020612c5d85828601612c12565b9150509250929050565b60008115159050919050565b612c7c81612c67565b82525050565b6000602082019050612c976000830184612c73565b92915050565b60008060408385031215612cb457612cb3612b98565b5b6000612cc285828601612c12565b9250506020612cd385828601612c12565b9150509250929050565b600080600060608486031215612cf657612cf5612b98565b5b6000612d0486828701612be6565b9350506020612d1586828701612be6565b9250506040612d2686828701612c12565b9150509250925092565b600060208284031215612d4657612d45612b98565b5b6000612d5484828501612be6565b91505092915050565b600060ff82169050919050565b612d7381612d5d565b82525050565b6000602082019050612d8e6000830184612d6a565b92915050565b600060208284031215612daa57612da9612b98565b5b6000612db884828501612c12565b91505092915050565b612dca81612c67565b8114612dd557600080fd5b50565b600081359050612de781612dc1565b92915050565b60008060408385031215612e0457612e03612b98565b5b6000612e1285828601612be6565b9250506020612e2385828601612dd8565b9150509250929050565b60008060008060808587031215612e4757612e46612b98565b5b6000612e5587828801612c12565b9450506020612e6687828801612c12565b9350506040612e7787828801612c12565b9250506060612e8887828801612c12565b91505092959194509250565b612e9d81612bbd565b82525050565b6000602082019050612eb86000830184612e94565b92915050565b60008060408385031215612ed557612ed4612b98565b5b6000612ee385828601612be6565b9250506020612ef485828601612be6565b9150509250929050565b60008060408385031215612f1557612f14612b98565b5b6000612f2385828601612dd8565b9250506020612f3485828601612c12565b9150509250929050565b600060208284031215612f5457612f53612b98565b5b6000612f6284828501612dd8565b91505092915050565b6000612f7682612b9d565b9050919050565b612f8681612f6b565b8114612f9157600080fd5b50565b600081359050612fa381612f7d565b92915050565b600060208284031215612fbf57612fbe612b98565b5b6000612fcd84828501612f94565b91505092915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b600061300c600b83612ae8565b915061301782612fd6565b602082019050919050565b6000602082019050818103600083015261303b81612fff565b9050919050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613078600683612ae8565b915061308382613042565b602082019050919050565b600060208201905081810360008301526130a78161306b565b9050919050565b7f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b600061310a602383612ae8565b9150613115826130ae565b604082019050919050565b60006020820190508181036000830152613139816130fd565b9050919050565b60008151905061314f81612bfb565b92915050565b60006020828403121561316b5761316a612b98565b5b600061317984828501613140565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131bc82612aa9565b91506131c783612aa9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131fc576131fb613182565b5b828201905092915050565b6000819050919050565b600061322c61322761322284612b9d565b613207565b612b9d565b9050919050565b600061323e82613211565b9050919050565b600061325082613233565b9050919050565b61326081613245565b82525050565b600060208201905061327b6000830184613257565b92915050565b600061328c82612aa9565b915061329783612aa9565b9250828210156132aa576132a9613182565b5b828203905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000613311602583612ae8565b915061331c826132b5565b604082019050919050565b6000602082019050818103600083015261334081613304565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061337d601b83612ae8565b915061338882613347565b602082019050919050565b600060208201905081810360008301526133ac81613370565b9050919050565b60006133be82612aa9565b91506133c983612aa9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561340257613401613182565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061344782612aa9565b915061345283612aa9565b9250826134625761346161340d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134c9602183612ae8565b91506134d48261346d565b604082019050919050565b600060208201905081810360008301526134f8816134bc565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613535601183612ae8565b9150613540826134ff565b602082019050919050565b6000602082019050818103600083015261356481613528565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006135ee6135e96135e4846135c9565b613207565b612aa9565b9050919050565b6135fe816135d3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61363981612bbd565b82525050565b600061364b8383613630565b60208301905092915050565b6000602082019050919050565b600061366f82613604565b613679818561360f565b935061368483613620565b8060005b838110156136b557815161369c888261363f565b97506136a783613657565b925050600181019050613688565b5085935050505092915050565b600060a0820190506136d76000830188612ab3565b6136e460208301876135f5565b81810360408301526136f68186613664565b90506137056060830185612e94565b6137126080830184612ab3565b9695505050505050565b600081905092915050565b50565b600061373760008361371c565b915061374282613727565b600082019050919050565b60006137588261372a565b9150819050919050565b600060c0820190506137776000830189612e94565b6137846020830188612ab3565b61379160408301876135f5565b61379e60608301866135f5565b6137ab6080830185612e94565b6137b860a0830184612ab3565b979650505050505050565b6000806000606084860312156137dc576137db612b98565b5b60006137ea86828701613140565b93505060206137fb86828701613140565b925050604061380c86828701613140565b9150509250925092565b600060408201905061382b6000830185612ab3565b6138386020830184612ab3565b939250505056fea2646970667358221220bb2c0c256bfa73d7a2c5cb0ffa3185771a81fdb04f3d466f5ef7324a59f5342064736f6c634300080f0033

Deployed Bytecode Sourcemap

5535:11264:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6859:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7915:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8337:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16578:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7645:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8855:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16106:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3430:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7739:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8561:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14280:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14434:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14599:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6822:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14863:352;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8085:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6001:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8001:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6075:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7825:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8691:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3103:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6788:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16256:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15792:298;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8196:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15440:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16431:139;;;;;;;;;;;;;:::i;:::-;;15223:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3273:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10825:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3830:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15604:180;;;;;;;;;;;;;:::i;:::-;;14727:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3604:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6859:54;;;;:::o;7915:80::-;7963:13;7987:5;;;;;;;;;;;;;;;;;7980:12;;7915:80;:::o;8337:216::-;8412:4;8464:6;8429:11;:23;8441:10;8429:23;;;;;;;;;;;;;;;:32;8453:7;8429:32;;;;;;;;;;;;;;;:41;;;;8507:7;8486:37;;8495:10;8486:37;;;8516:6;8486:37;;;;;;:::i;:::-;;;;;;;;8541:4;8534:11;;8337:216;;;;:::o;16578:150::-;16658:4;16714:6;16682:29;16702:8;16682:19;:29::i;:::-;:38;16675:45;;16578:150;;;;:::o;7645:88::-;7700:7;7718:12;;7711:19;;7645:88;:::o;8855:370::-;8955:4;9010:17;8975:11;:19;8987:6;8975:19;;;;;;;;;;;;;;;:31;8995:10;8975:31;;;;;;;;;;;;;;;;:52;8972:186;;9077:69;9113:6;9077:69;;;;;;;;;;;;;;;;;:11;:19;9089:6;9077:19;;;;;;;;;;;;;;;:31;9097:10;9077:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9043:11;:19;9055:6;9043:19;;;;;;;;;;;;;;;:31;9063:10;9043:31;;;;;;;;;;;;;;;:103;;;;8972:186;9177:40;9191:6;9199:9;9210:6;9177:13;:40::i;:::-;9170:47;;8855:370;;;;;:::o;16106:142::-;16159:7;16186:54;16224:15;16234:4;;;;;;;;;;;16224:9;:15::i;:::-;16186:33;16203:15;16213:4;;;;;;;;;;;16203:9;:15::i;:::-;16186:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;16179:61;;16106:142;:::o;3430:103::-;3485:4;3520:5;;;;;;;;;;;3509:16;;:7;:16;;;3502:23;;3430:103;;;:::o;7739:80::-;7791:5;5928:1;7800:16;;7739:80;:::o;8561:122::-;8616:4;8640:35;8648:7;8657:17;8640:7;:35::i;:::-;8633:42;;8561:122;;;:::o;14280:147::-;2988:24;3001:10;2988:12;:24::i;:::-;2980:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14413:6:::1;14398:12;:21;;;;14280:147:::0;:::o;14434:153::-;2819:19;2827:10;2819:7;:19::i;:::-;2811:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14573:6:::1;14556:14;:23;;;;14434:153:::0;:::o;14599:120::-;2988:24;3001:10;2988:12;:24::i;:::-;2980:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14705:6:::1;14683:11;:19;14695:6;14683:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14599:120:::0;;:::o;6822:30::-;;;;;;;;;;;;;:::o;14863:352::-;2988:24;3001:10;2988:12;:24::i;:::-;2980:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15015:13:::1;15000:12;:28;;;;15049:8;15039:7;:18;;;;15083:13;15068:12;:28;;;;15118:46;15150:13;15118:27;15136:8;15118:13;:17;;:27;;;;:::i;:::-;:31;;:46;;;;:::i;:::-;15107:8;:57;;;;15192:15;15175:14;:32;;;;14863:352:::0;;;;:::o;8085:105::-;8151:7;8169:9;:18;8179:7;8169:18;;;;;;;;;;;;;;;;8162:25;;8085:105;;;:::o;6001:54::-;;;;:::o;8001:78::-;8053:7;8071:5;;;;;;;;;;;8064:12;;8001:78;:::o;6075:56::-;;;;:::o;7825:84::-;7875:13;7899:7;;;;;;;;;;;;;;;;;7892:14;;7825:84;:::o;8691:156::-;8771:4;8795:44;8809:10;8821:9;8832:6;8795:13;:44::i;:::-;8788:51;;8691:156;;;;:::o;3103:94::-;2819:19;2827:10;2819:7;:19::i;:::-;2811:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3185:4:::1;3163:14:::0;:19:::1;3178:3;3163:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3103:94:::0;:::o;6788:25::-;;;;:::o;16256:167::-;16324:7;16351:64;16392:22;:20;:22::i;:::-;16351:36;16364:22;16384:1;16364:15;16374:4;;;;;;;;;;;16364:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;16351:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;16344:71;;16256:167;;;:::o;15792:298::-;2988:24;3001:10;2988:12;:24::i;:::-;2980:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15893:4:::1;15875:23;;:6;:23;;::::0;15867:71:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15949:24;15983:6;15976:24;;;16009:4;15976:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15949:66;;16034:20;;;;;;;;;;;16026:38;;:56;16065:16;16026:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15856:234;15792:298:::0;:::o;8196:133::-;8280:7;8298:11;:19;8310:6;8298:19;;;;;;;;;;;;;;;:28;8318:7;8298:28;;;;;;;;;;;;;;;;8291:35;;8196:133;;;;:::o;15440:156::-;2988:24;3001:10;2988:12;:24::i;:::-;2980:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15546:8:::1;15532:11;;:22;;;;;;;;;;;;;;;;;;15581:7;15565:13;:23;;;;15440:156:::0;;:::o;16431:139::-;16472:17;16492:21;16472:41;;16532:9;;;;;;;;;;;16524:27;;:38;16552:9;16524:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16461:109;16431:139::o;15223:209::-;2988:24;3001:10;2988:12;:24::i;:::-;2980:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15358:21:::1;15335:20;;:44;;;;;;;;;;;;;;;;;;15408:16;15390:15;;:34;;;;;;;;;;;;;;;;;;15223:209:::0;;:::o;3273:97::-;2819:19;2827:10;2819:7;:19::i;:::-;2811:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3357:5:::1;3335:14;:19;3350:3;3335:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3273:97:::0;:::o;10825:225::-;10881:7;10922:12;10917:1;10904:10;;:14;;;;:::i;:::-;:30;10901:67;;10944:21;10963:1;10944:14;;:18;;:21;;;;:::i;:::-;10937:28;;;;10901:67;10981:7;10978:39;;;10999:15;11012:1;10999:8;;:12;;:15;;;;:::i;:::-;10992:22;;;;10978:39;11034:8;;11027:15;;10825:225;;;;:::o;3830:173::-;2819:19;2827:10;2819:7;:19::i;:::-;2811:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3914:3:::1;3906:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3950:4;3928:14:::0;:19:::1;3943:3;3928:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3970:25;3991:3;3970:25;;;;;;:::i;:::-;;;;;;;;3830:173:::0;:::o;15604:180::-;2988:24;3001:10;2988:12;:24::i;:::-;2980:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15657:26:::1;15686:21;15657:50;;15726:20;;;;;;;;;;;15718:38;;:58;15757:18;15718:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15646:138;15604:180::o:0;14727:128::-;2988:24;3001:10;2988:12;:24::i;:::-;2980:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14841:6:::1;14815:15;:23;14831:6;14815:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;14727:128:::0;;:::o;3604:107::-;3660:4;3684:14;:19;3699:3;3684:19;;;;;;;;;;;;;;;;;;;;;;;;;3677:26;;3604:107;;;:::o;479:192::-;565:7;598:1;593;:6;;601:12;585:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;625:9;641:1;637;:5;;;;:::i;:::-;625:17;;662:1;655:8;;;479:192;;;;;:::o;9233:942::-;9325:4;9345:6;;;;;;;;;;;9342:63;;;9361:41;9376:6;9384:9;9395:6;9361:14;:41::i;:::-;9354:48;;;;9342:63;9425:28;9438:6;9446;9425:12;:28::i;:::-;9491:4;;;;;;;;;;;9478:17;;:9;:17;;;;:38;;;;;9512:4;;;;;;;;;;;9499:17;;:9;:17;;;;9478:38;9474:198;;;9541:15;:26;9557:9;9541:26;;;;;;;;;;;;;;;;;;;;;;;;;:77;;;;9604:14;;9594:6;9571:9;:20;9581:9;9571:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:47;;9541:77;9533:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;9474:198;9695:16;:14;:16::i;:::-;9692:35;;;9714:10;:8;:10::i;:::-;9692:35;9743:10;:8;:10::i;:::-;9742:11;:32;;;;;9770:4;;;;;;;;;;;9757:17;;:9;:17;;;9742:32;9739:81;;;9805:1;9785:9;:17;9795:6;9785:17;;;;;;;;;;;;;;;;:21;9777:30;;;;;;9809:8;:6;:8::i;:::-;9739:81;9852:53;9874:6;9852:53;;;;;;;;;;;;;;;;;:9;:17;9862:6;9852:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9832:9;:17;9842:6;9832:17;;;;;;;;;;;;;;;:73;;;;9918:22;9943:21;9957:6;9943:13;:21::i;:::-;:67;;10004:6;9943:67;;;9967:34;9975:6;9983:9;9994:6;9967:7;:34::i;:::-;9943:67;9918:92;;10044:40;10069:14;10044:9;:20;10054:9;10044:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10021:9;:20;10031:9;10021:20;;;;;;;;;;;;;;;:63;;;;10119:9;10102:43;;10111:6;10102:43;;;10130:14;10102:43;;;;;;:::i;:::-;;;;;;;;10163:4;10156:11;;;9233:942;;;;;;:::o;337:136::-;395:7;422:43;426:1;429;422:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;415:50;;337:136;;;;:::o;150:181::-;208:7;228:9;244:1;240;:5;;;;:::i;:::-;228:17;;269:1;264;:6;;256:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;322:1;315:8;;;150:181;;;;:::o;677:250::-;735:7;764:1;759;:6;755:47;;789:1;782:8;;;;755:47;814:9;830:1;826;:5;;;;:::i;:::-;814:17;;859:1;854;850;:5;;;;:::i;:::-;:10;842:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;918:1;911:8;;;677:250;;;;;:::o;933:132::-;991:7;1018:39;1022:1;1025;1018:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1011:46;;933:132;;;;:::o;10187:330::-;10280:4;10317:53;10339:6;10317:53;;;;;;;;;;;;;;;;;:9;:17;10327:6;10317:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10297:9;:17;10307:6;10297:17;;;;;;;;;;;;;;;:73;;;;10404:32;10429:6;10404:9;:20;10414:9;10404:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10381:9;:20;10391:9;10381:20;;;;;;;;;;;;;;;:55;;;;10469:9;10452:35;;10461:6;10452:35;;;10480:6;10452:35;;;;;;:::i;:::-;;;;;;;;10505:4;10498:11;;10187:330;;;;;:::o;10525:166::-;10622:12;;10612:6;:22;;:49;;;;10638:15;:23;10654:6;10638:23;;;;;;;;;;;;;;;;;;;;;;;;;10612:49;10604:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10525:166;;:::o;11438:197::-;11487:4;11525;;;;;;;;;;;11511:18;;:10;:18;;;;:38;;;;;11543:6;;;;;;;;;;;11542:7;11511:38;:62;;;;;11562:11;;;;;;;;;;;11511:62;:116;;;;;11614:13;;11586:9;:24;11604:4;11586:24;;;;;;;;;;;;;;;;:41;;11511:116;11504:123;;11438:197;:::o;11643:2083::-;6977:4;6968:6;;:13;;;;;;;;;;;;;;;;;;11692:28:::1;11723:24;11741:4;11723:9;:24::i;:::-;11692:55;;11758:23;11784:59;11841:1;11784:52;11827:8;;11784:38;11809:12;;11784:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;11758:85;;11854:20;11877:41;11902:15;11877:20;:24;;:41;;;;:::i;:::-;11854:64;;11931:21;11969:1;11955:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11931:40;;12000:4;11982;11987:1;11982:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12026:4;;;;;;;;;;;12016;12021:1;12016:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;12043:21;12067;12043:45;;12101:6;;;;;;;;;;;:57;;;12173:12;12200:1;12216:4;12243;12263:15;12101:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12300:17;12320:40;12346:13;12320:21;:25;;:40;;;;:::i;:::-;12300:60;;12371:19;12393:33;12406:19;12423:1;12406:12;;:16;;:19;;;;:::i;:::-;12393:8;;:12;;:33;;;;:::i;:::-;12371:55;;12437:26;12466:51;12515:1;12466:44;12498:11;12466:27;12480:12;;12466:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;12437:80;;12528:28;12559:46;12603:1;12559:39;12586:11;12559:22;12573:7;;12559:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;:43;;:46;;;;:::i;:::-;12528:77;;12616:26;12645:51;12694:1;12645:44;12677:11;12645:27;12659:12;;12645:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;12616:80;;12707:26;12736:44;12759:20;12736:18;:22;;:44;;;;:::i;:::-;12707:73;;12796:13;12846:20;;;;;;;;;;;12838:34;;12880:18;12905:5;12838:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12795:120;;;13036:15;;;;;;;;;;;13028:29;;13065:20;13092:5;13028:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12990:112;;;;;13223:9;;;;;;;;;;;13215:23;;13246:18;13271:5;13215:66;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13177:104;;;;;13379:1;13361:15;:19;13358:361;;;13396:6;;;;;;;;;;;:22;;;13426:18;13472:4;13496:15;13530:1;13550::::0;13570:20:::1;;;;;;;;;;;13609:15;13396:243;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13659:48;13671:18;13691:15;13659:48;;;;;;;:::i;:::-;;;;;;;;13358:361;11681:2045;;;;;;;;;;;;6995:5:::0;6986:6;;:14;;;;;;;;;;;;;;;;;;11643:2083::o;14103:90::-;14146:4;14184:1;14170:10;;:15;;14163:22;;14103:90;:::o;14201:71::-;14252:12;14239:10;:25;;;;14201:71::o;10703:114::-;10765:4;10790:11;:19;10802:6;10790:19;;;;;;;;;;;;;;;;;;;;;;;;;10789:20;10782:27;;10703:114;;;:::o;11058:372::-;11143:7;11163:17;11183:61;11229:14;;11183:41;11194:29;11218:4;;;;;;;;;;;11206:16;;:8;:16;;;11194:11;:29::i;:::-;11183:6;:10;;:41;;;;:::i;:::-;:45;;:61;;;;:::i;:::-;11163:81;;11284:39;11313:9;11284;:24;11302:4;11284:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11257:9;:24;11275:4;11257:24;;;;;;;;;;;;;;;:66;;;;11364:4;11339:42;;11348:6;11339:42;;;11371:9;11339:42;;;;;;:::i;:::-;;;;;;;;11401:21;11412:9;11401:6;:10;;:21;;;;:::i;:::-;11394:28;;;11058:372;;;;;:::o;1071:345::-;1157:7;1256:1;1252;:5;1259:12;1244:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1283:9;1299:1;1295;:5;;;;:::i;:::-;1283:17;;1407:1;1400:8;;;1071:345;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:619::-;4403:6;4411;4419;4468:2;4456:9;4447:7;4443:23;4439:32;4436:119;;;4474:79;;:::i;:::-;4436:119;4594:1;4619:53;4664:7;4655:6;4644:9;4640:22;4619:53;:::i;:::-;4609:63;;4565:117;4721:2;4747:53;4792:7;4783:6;4772:9;4768:22;4747:53;:::i;:::-;4737:63;;4692:118;4849:2;4875:53;4920:7;4911:6;4900:9;4896:22;4875:53;:::i;:::-;4865:63;;4820:118;4326:619;;;;;:::o;4951:329::-;5010:6;5059:2;5047:9;5038:7;5034:23;5030:32;5027:119;;;5065:79;;:::i;:::-;5027:119;5185:1;5210:53;5255:7;5246:6;5235:9;5231:22;5210:53;:::i;:::-;5200:63;;5156:117;4951:329;;;;:::o;5286:86::-;5321:7;5361:4;5354:5;5350:16;5339:27;;5286:86;;;:::o;5378:112::-;5461:22;5477:5;5461:22;:::i;:::-;5456:3;5449:35;5378:112;;:::o;5496:214::-;5585:4;5623:2;5612:9;5608:18;5600:26;;5636:67;5700:1;5689:9;5685:17;5676:6;5636:67;:::i;:::-;5496:214;;;;:::o;5716:329::-;5775:6;5824:2;5812:9;5803:7;5799:23;5795:32;5792:119;;;5830:79;;:::i;:::-;5792:119;5950:1;5975:53;6020:7;6011:6;6000:9;5996:22;5975:53;:::i;:::-;5965:63;;5921:117;5716:329;;;;:::o;6051:116::-;6121:21;6136:5;6121:21;:::i;:::-;6114:5;6111:32;6101:60;;6157:1;6154;6147:12;6101:60;6051:116;:::o;6173:133::-;6216:5;6254:6;6241:20;6232:29;;6270:30;6294:5;6270:30;:::i;:::-;6173:133;;;;:::o;6312:468::-;6377:6;6385;6434:2;6422:9;6413:7;6409:23;6405:32;6402:119;;;6440:79;;:::i;:::-;6402:119;6560:1;6585:53;6630:7;6621:6;6610:9;6606:22;6585:53;:::i;:::-;6575:63;;6531:117;6687:2;6713:50;6755:7;6746:6;6735:9;6731:22;6713:50;:::i;:::-;6703:60;;6658:115;6312:468;;;;;:::o;6786:765::-;6872:6;6880;6888;6896;6945:3;6933:9;6924:7;6920:23;6916:33;6913:120;;;6952:79;;:::i;:::-;6913:120;7072:1;7097:53;7142:7;7133:6;7122:9;7118:22;7097:53;:::i;:::-;7087:63;;7043:117;7199:2;7225:53;7270:7;7261:6;7250:9;7246:22;7225:53;:::i;:::-;7215:63;;7170:118;7327:2;7353:53;7398:7;7389:6;7378:9;7374:22;7353:53;:::i;:::-;7343:63;;7298:118;7455:2;7481:53;7526:7;7517:6;7506:9;7502:22;7481:53;:::i;:::-;7471:63;;7426:118;6786:765;;;;;;;:::o;7557:118::-;7644:24;7662:5;7644:24;:::i;:::-;7639:3;7632:37;7557:118;;:::o;7681:222::-;7774:4;7812:2;7801:9;7797:18;7789:26;;7825:71;7893:1;7882:9;7878:17;7869:6;7825:71;:::i;:::-;7681:222;;;;:::o;7909:474::-;7977:6;7985;8034:2;8022:9;8013:7;8009:23;8005:32;8002:119;;;8040:79;;:::i;:::-;8002:119;8160:1;8185:53;8230:7;8221:6;8210:9;8206:22;8185:53;:::i;:::-;8175:63;;8131:117;8287:2;8313:53;8358:7;8349:6;8338:9;8334:22;8313:53;:::i;:::-;8303:63;;8258:118;7909:474;;;;;:::o;8389:468::-;8454:6;8462;8511:2;8499:9;8490:7;8486:23;8482:32;8479:119;;;8517:79;;:::i;:::-;8479:119;8637:1;8662:50;8704:7;8695:6;8684:9;8680:22;8662:50;:::i;:::-;8652:60;;8608:114;8761:2;8787:53;8832:7;8823:6;8812:9;8808:22;8787:53;:::i;:::-;8777:63;;8732:118;8389:468;;;;;:::o;8863:323::-;8919:6;8968:2;8956:9;8947:7;8943:23;8939:32;8936:119;;;8974:79;;:::i;:::-;8936:119;9094:1;9119:50;9161:7;9152:6;9141:9;9137:22;9119:50;:::i;:::-;9109:60;;9065:114;8863:323;;;;:::o;9192:104::-;9237:7;9266:24;9284:5;9266:24;:::i;:::-;9255:35;;9192:104;;;:::o;9302:138::-;9383:32;9409:5;9383:32;:::i;:::-;9376:5;9373:43;9363:71;;9430:1;9427;9420:12;9363:71;9302:138;:::o;9446:155::-;9500:5;9538:6;9525:20;9516:29;;9554:41;9589:5;9554:41;:::i;:::-;9446:155;;;;:::o;9607:345::-;9674:6;9723:2;9711:9;9702:7;9698:23;9694:32;9691:119;;;9729:79;;:::i;:::-;9691:119;9849:1;9874:61;9927:7;9918:6;9907:9;9903:22;9874:61;:::i;:::-;9864:71;;9820:125;9607:345;;;;:::o;9958:161::-;10098:13;10094:1;10086:6;10082:14;10075:37;9958:161;:::o;10125:366::-;10267:3;10288:67;10352:2;10347:3;10288:67;:::i;:::-;10281:74;;10364:93;10453:3;10364:93;:::i;:::-;10482:2;10477:3;10473:12;10466:19;;10125:366;;;:::o;10497:419::-;10663:4;10701:2;10690:9;10686:18;10678:26;;10750:9;10744:4;10740:20;10736:1;10725:9;10721:17;10714:47;10778:131;10904:4;10778:131;:::i;:::-;10770:139;;10497:419;;;:::o;10922:156::-;11062:8;11058:1;11050:6;11046:14;11039:32;10922:156;:::o;11084:365::-;11226:3;11247:66;11311:1;11306:3;11247:66;:::i;:::-;11240:73;;11322:93;11411:3;11322:93;:::i;:::-;11440:2;11435:3;11431:12;11424:19;;11084:365;;;:::o;11455:419::-;11621:4;11659:2;11648:9;11644:18;11636:26;;11708:9;11702:4;11698:20;11694:1;11683:9;11679:17;11672:47;11736:131;11862:4;11736:131;:::i;:::-;11728:139;;11455:419;;;:::o;11880:222::-;12020:34;12016:1;12008:6;12004:14;11997:58;12089:5;12084:2;12076:6;12072:15;12065:30;11880:222;:::o;12108:366::-;12250:3;12271:67;12335:2;12330:3;12271:67;:::i;:::-;12264:74;;12347:93;12436:3;12347:93;:::i;:::-;12465:2;12460:3;12456:12;12449:19;;12108:366;;;:::o;12480:419::-;12646:4;12684:2;12673:9;12669:18;12661:26;;12733:9;12727:4;12723:20;12719:1;12708:9;12704:17;12697:47;12761:131;12887:4;12761:131;:::i;:::-;12753:139;;12480:419;;;:::o;12905:143::-;12962:5;12993:6;12987:13;12978:22;;13009:33;13036:5;13009:33;:::i;:::-;12905:143;;;;:::o;13054:351::-;13124:6;13173:2;13161:9;13152:7;13148:23;13144:32;13141:119;;;13179:79;;:::i;:::-;13141:119;13299:1;13324:64;13380:7;13371:6;13360:9;13356:22;13324:64;:::i;:::-;13314:74;;13270:128;13054:351;;;;:::o;13411:180::-;13459:77;13456:1;13449:88;13556:4;13553:1;13546:15;13580:4;13577:1;13570:15;13597:305;13637:3;13656:20;13674:1;13656:20;:::i;:::-;13651:25;;13690:20;13708:1;13690:20;:::i;:::-;13685:25;;13844:1;13776:66;13772:74;13769:1;13766:81;13763:107;;;13850:18;;:::i;:::-;13763:107;13894:1;13891;13887:9;13880:16;;13597:305;;;;:::o;13908:60::-;13936:3;13957:5;13950:12;;13908:60;;;:::o;13974:142::-;14024:9;14057:53;14075:34;14084:24;14102:5;14084:24;:::i;:::-;14075:34;:::i;:::-;14057:53;:::i;:::-;14044:66;;13974:142;;;:::o;14122:126::-;14172:9;14205:37;14236:5;14205:37;:::i;:::-;14192:50;;14122:126;;;:::o;14254:134::-;14312:9;14345:37;14376:5;14345:37;:::i;:::-;14332:50;;14254:134;;;:::o;14394:147::-;14489:45;14528:5;14489:45;:::i;:::-;14484:3;14477:58;14394:147;;:::o;14547:238::-;14648:4;14686:2;14675:9;14671:18;14663:26;;14699:79;14775:1;14764:9;14760:17;14751:6;14699:79;:::i;:::-;14547:238;;;;:::o;14791:191::-;14831:4;14851:20;14869:1;14851:20;:::i;:::-;14846:25;;14885:20;14903:1;14885:20;:::i;:::-;14880:25;;14924:1;14921;14918:8;14915:34;;;14929:18;;:::i;:::-;14915:34;14974:1;14971;14967:9;14959:17;;14791:191;;;;:::o;14988:224::-;15128:34;15124:1;15116:6;15112:14;15105:58;15197:7;15192:2;15184:6;15180:15;15173:32;14988:224;:::o;15218:366::-;15360:3;15381:67;15445:2;15440:3;15381:67;:::i;:::-;15374:74;;15457:93;15546:3;15457:93;:::i;:::-;15575:2;15570:3;15566:12;15559:19;;15218:366;;;:::o;15590:419::-;15756:4;15794:2;15783:9;15779:18;15771:26;;15843:9;15837:4;15833:20;15829:1;15818:9;15814:17;15807:47;15871:131;15997:4;15871:131;:::i;:::-;15863:139;;15590:419;;;:::o;16015:177::-;16155:29;16151:1;16143:6;16139:14;16132:53;16015:177;:::o;16198:366::-;16340:3;16361:67;16425:2;16420:3;16361:67;:::i;:::-;16354:74;;16437:93;16526:3;16437:93;:::i;:::-;16555:2;16550:3;16546:12;16539:19;;16198:366;;;:::o;16570:419::-;16736:4;16774:2;16763:9;16759:18;16751:26;;16823:9;16817:4;16813:20;16809:1;16798:9;16794:17;16787:47;16851:131;16977:4;16851:131;:::i;:::-;16843:139;;16570:419;;;:::o;16995:348::-;17035:7;17058:20;17076:1;17058:20;:::i;:::-;17053:25;;17092:20;17110:1;17092:20;:::i;:::-;17087:25;;17280:1;17212:66;17208:74;17205:1;17202:81;17197:1;17190:9;17183:17;17179:105;17176:131;;;17287:18;;:::i;:::-;17176:131;17335:1;17332;17328:9;17317:20;;16995:348;;;;:::o;17349:180::-;17397:77;17394:1;17387:88;17494:4;17491:1;17484:15;17518:4;17515:1;17508:15;17535:185;17575:1;17592:20;17610:1;17592:20;:::i;:::-;17587:25;;17626:20;17644:1;17626:20;:::i;:::-;17621:25;;17665:1;17655:35;;17670:18;;:::i;:::-;17655:35;17712:1;17709;17705:9;17700:14;;17535:185;;;;:::o;17726:220::-;17866:34;17862:1;17854:6;17850:14;17843:58;17935:3;17930:2;17922:6;17918:15;17911:28;17726:220;:::o;17952:366::-;18094:3;18115:67;18179:2;18174:3;18115:67;:::i;:::-;18108:74;;18191:93;18280:3;18191:93;:::i;:::-;18309:2;18304:3;18300:12;18293:19;;17952:366;;;:::o;18324:419::-;18490:4;18528:2;18517:9;18513:18;18505:26;;18577:9;18571:4;18567:20;18563:1;18552:9;18548:17;18541:47;18605:131;18731:4;18605:131;:::i;:::-;18597:139;;18324:419;;;:::o;18749:167::-;18889:19;18885:1;18877:6;18873:14;18866:43;18749:167;:::o;18922:366::-;19064:3;19085:67;19149:2;19144:3;19085:67;:::i;:::-;19078:74;;19161:93;19250:3;19161:93;:::i;:::-;19279:2;19274:3;19270:12;19263:19;;18922:366;;;:::o;19294:419::-;19460:4;19498:2;19487:9;19483:18;19475:26;;19547:9;19541:4;19537:20;19533:1;19522:9;19518:17;19511:47;19575:131;19701:4;19575:131;:::i;:::-;19567:139;;19294:419;;;:::o;19719:180::-;19767:77;19764:1;19757:88;19864:4;19861:1;19854:15;19888:4;19885:1;19878:15;19905:180;19953:77;19950:1;19943:88;20050:4;20047:1;20040:15;20074:4;20071:1;20064:15;20091:85;20136:7;20165:5;20154:16;;20091:85;;;:::o;20182:158::-;20240:9;20273:61;20291:42;20300:32;20326:5;20300:32;:::i;:::-;20291:42;:::i;:::-;20273:61;:::i;:::-;20260:74;;20182:158;;;:::o;20346:147::-;20441:45;20480:5;20441:45;:::i;:::-;20436:3;20429:58;20346:147;;:::o;20499:114::-;20566:6;20600:5;20594:12;20584:22;;20499:114;;;:::o;20619:184::-;20718:11;20752:6;20747:3;20740:19;20792:4;20787:3;20783:14;20768:29;;20619:184;;;;:::o;20809:132::-;20876:4;20899:3;20891:11;;20929:4;20924:3;20920:14;20912:22;;20809:132;;;:::o;20947:108::-;21024:24;21042:5;21024:24;:::i;:::-;21019:3;21012:37;20947:108;;:::o;21061:179::-;21130:10;21151:46;21193:3;21185:6;21151:46;:::i;:::-;21229:4;21224:3;21220:14;21206:28;;21061:179;;;;:::o;21246:113::-;21316:4;21348;21343:3;21339:14;21331:22;;21246:113;;;:::o;21395:732::-;21514:3;21543:54;21591:5;21543:54;:::i;:::-;21613:86;21692:6;21687:3;21613:86;:::i;:::-;21606:93;;21723:56;21773:5;21723:56;:::i;:::-;21802:7;21833:1;21818:284;21843:6;21840:1;21837:13;21818:284;;;21919:6;21913:13;21946:63;22005:3;21990:13;21946:63;:::i;:::-;21939:70;;22032:60;22085:6;22032:60;:::i;:::-;22022:70;;21878:224;21865:1;21862;21858:9;21853:14;;21818:284;;;21822:14;22118:3;22111:10;;21519:608;;;21395:732;;;;:::o;22133:831::-;22396:4;22434:3;22423:9;22419:19;22411:27;;22448:71;22516:1;22505:9;22501:17;22492:6;22448:71;:::i;:::-;22529:80;22605:2;22594:9;22590:18;22581:6;22529:80;:::i;:::-;22656:9;22650:4;22646:20;22641:2;22630:9;22626:18;22619:48;22684:108;22787:4;22778:6;22684:108;:::i;:::-;22676:116;;22802:72;22870:2;22859:9;22855:18;22846:6;22802:72;:::i;:::-;22884:73;22952:3;22941:9;22937:19;22928:6;22884:73;:::i;:::-;22133:831;;;;;;;;:::o;22970:147::-;23071:11;23108:3;23093:18;;22970:147;;;;:::o;23123:114::-;;:::o;23243:398::-;23402:3;23423:83;23504:1;23499:3;23423:83;:::i;:::-;23416:90;;23515:93;23604:3;23515:93;:::i;:::-;23633:1;23628:3;23624:11;23617:18;;23243:398;;;:::o;23647:379::-;23831:3;23853:147;23996:3;23853:147;:::i;:::-;23846:154;;24017:3;24010:10;;23647:379;;;:::o;24032:807::-;24281:4;24319:3;24308:9;24304:19;24296:27;;24333:71;24401:1;24390:9;24386:17;24377:6;24333:71;:::i;:::-;24414:72;24482:2;24471:9;24467:18;24458:6;24414:72;:::i;:::-;24496:80;24572:2;24561:9;24557:18;24548:6;24496:80;:::i;:::-;24586;24662:2;24651:9;24647:18;24638:6;24586:80;:::i;:::-;24676:73;24744:3;24733:9;24729:19;24720:6;24676:73;:::i;:::-;24759;24827:3;24816:9;24812:19;24803:6;24759:73;:::i;:::-;24032:807;;;;;;;;;:::o;24845:663::-;24933:6;24941;24949;24998:2;24986:9;24977:7;24973:23;24969:32;24966:119;;;25004:79;;:::i;:::-;24966:119;25124:1;25149:64;25205:7;25196:6;25185:9;25181:22;25149:64;:::i;:::-;25139:74;;25095:128;25262:2;25288:64;25344:7;25335:6;25324:9;25320:22;25288:64;:::i;:::-;25278:74;;25233:129;25401:2;25427:64;25483:7;25474:6;25463:9;25459:22;25427:64;:::i;:::-;25417:74;;25372:129;24845:663;;;;;:::o;25514:332::-;25635:4;25673:2;25662:9;25658:18;25650:26;;25686:71;25754:1;25743:9;25739:17;25730:6;25686:71;:::i;:::-;25767:72;25835:2;25824:9;25820:18;25811:6;25767:72;:::i;:::-;25514:332;;;;;:::o

Swarm Source

ipfs://bb2c0c256bfa73d7a2c5cb0ffa3185771a81fdb04f3d466f5ef7324a59f53420

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.