ETH Price: $3,414.46 (-0.68%)
Gas: 6 Gwei

Contract

0x23464fb65ff1a8e7a9a1318Dfa56185a4950cF8B
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve201407432024-06-21 14:38:1126 days ago1718980691IN
SAFUAPE: SAPE Token
0 ETH0.0004896410.42882396
Approve188693382023-12-26 10:40:59204 days ago1703587259IN
SAFUAPE: SAPE Token
0 ETH0.0007915216.77695895
Approve187557172023-12-10 12:09:35220 days ago1702210175IN
SAFUAPE: SAPE Token
0 ETH0.0005288521.19249796
Transfer187189432023-12-05 8:25:59225 days ago1701764759IN
SAFUAPE: SAPE Token
0 ETH0.0035322241.81141351
Transfer187189382023-12-05 8:24:59225 days ago1701764699IN
SAFUAPE: SAPE Token
0 ETH0.003556642.09991031
Transfer187189342023-12-05 8:24:11225 days ago1701764651IN
SAFUAPE: SAPE Token
0 ETH0.0038381245.43230336
Transfer187189292023-12-05 8:23:11225 days ago1701764591IN
SAFUAPE: SAPE Token
0 ETH0.0035429141.93792813
Transfer187189242023-12-05 8:22:11225 days ago1701764531IN
SAFUAPE: SAPE Token
0 ETH0.0038561645.6458457
Transfer187189202023-12-05 8:21:23225 days ago1701764483IN
SAFUAPE: SAPE Token
0 ETH0.004031547.72141811
Transfer187189152023-12-05 8:20:23225 days ago1701764423IN
SAFUAPE: SAPE Token
0 ETH0.003514241.59801581
Transfer187189092023-12-05 8:19:11225 days ago1701764351IN
SAFUAPE: SAPE Token
0 ETH0.003475841.14349197
Transfer187189022023-12-05 8:17:47225 days ago1701764267IN
SAFUAPE: SAPE Token
0 ETH0.0039199846.40129541
Transfer187188932023-12-05 8:15:59225 days ago1701764159IN
SAFUAPE: SAPE Token
0 ETH0.0041450549.0655023
Transfer187188872023-12-05 8:14:47225 days ago1701764087IN
SAFUAPE: SAPE Token
0 ETH0.003993447.27039849
Transfer187188802023-12-05 8:13:23225 days ago1701764003IN
SAFUAPE: SAPE Token
0 ETH0.0036528243.23894195
Approve187188702023-12-05 8:11:23225 days ago1701763883IN
SAFUAPE: SAPE Token
0 ETH0.0021641446.14096722
Approve183678342023-10-17 4:52:59274 days ago1697518379IN
SAFUAPE: SAPE Token
0 ETH0.000242655.16831551
Approve183265742023-10-11 10:22:23280 days ago1697019743IN
SAFUAPE: SAPE Token
0 ETH0.000280035.93549425
Approve176976242023-07-15 8:30:47368 days ago1689409847IN
SAFUAPE: SAPE Token
0 ETH0.0006584513.95645496
Approve176975992023-07-15 8:25:35368 days ago1689409535IN
SAFUAPE: SAPE Token
0 ETH0.0006401213.56807324
Approve175560472023-06-25 10:58:35388 days ago1687690715IN
SAFUAPE: SAPE Token
0 ETH0.0007653516.22242978
Approve175463792023-06-24 2:19:35389 days ago1687573175IN
SAFUAPE: SAPE Token
0 ETH0.000750815.91397385
Approve170121272023-04-09 17:12:59465 days ago1681060379IN
SAFUAPE: SAPE Token
0 ETH0.0005633722.57582773
Approve169818922023-04-05 10:08:47469 days ago1680689327IN
SAFUAPE: SAPE Token
0 ETH0.0011207923.90205367
Approve168238852023-03-14 4:42:47491 days ago1678768967IN
SAFUAPE: SAPE Token
0 ETH0.0008530318.08089819
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
201407432024-06-21 14:38:1126 days ago1718980691
SAFUAPE: SAPE Token
0.00085294 ETH
201407432024-06-21 14:38:1126 days ago1718980691
SAFUAPE: SAPE Token
0.00085294 ETH
183678612023-10-17 4:58:23274 days ago1697518703
SAFUAPE: SAPE Token
0.01769186 ETH
183678612023-10-17 4:58:23274 days ago1697518703
SAFUAPE: SAPE Token
0.01769186 ETH
175463832023-06-24 2:20:23389 days ago1687573223
SAFUAPE: SAPE Token
0.01125317 ETH
175463832023-06-24 2:20:23389 days ago1687573223
SAFUAPE: SAPE Token
0.01125317 ETH
166117382023-02-12 9:19:11521 days ago1676193551
SAFUAPE: SAPE Token
0.00607367 ETH
166117382023-02-12 9:19:11521 days ago1676193551
SAFUAPE: SAPE Token
0.00607367 ETH
166115502023-02-12 8:41:35521 days ago1676191295
SAFUAPE: SAPE Token
0.01792121 ETH
166115502023-02-12 8:41:35521 days ago1676191295
SAFUAPE: SAPE Token
0.01792121 ETH
163105852023-01-01 8:00:35563 days ago1672560035
SAFUAPE: SAPE Token
0.01620478 ETH
163105852023-01-01 8:00:35563 days ago1672560035
SAFUAPE: SAPE Token
0.01620478 ETH
163105822023-01-01 7:59:59563 days ago1672559999
SAFUAPE: SAPE Token
0.01628644 ETH
163105822023-01-01 7:59:59563 days ago1672559999
SAFUAPE: SAPE Token
0.01628644 ETH
162711052022-12-26 19:45:59569 days ago1672083959
SAFUAPE: SAPE Token
0.01630902 ETH
162711052022-12-26 19:45:59569 days ago1672083959
SAFUAPE: SAPE Token
0.01630902 ETH
162710922022-12-26 19:43:23569 days ago1672083803
SAFUAPE: SAPE Token
0.00400526 ETH
162710922022-12-26 19:43:23569 days ago1672083803
SAFUAPE: SAPE Token
0.00400526 ETH
162031712022-12-17 8:17:59578 days ago1671265079
SAFUAPE: SAPE Token
0.01087526 ETH
162031712022-12-17 8:17:59578 days ago1671265079
SAFUAPE: SAPE Token
0.01087526 ETH
162031682022-12-17 8:17:23578 days ago1671265043
SAFUAPE: SAPE Token
0.01279109 ETH
162031682022-12-17 8:17:23578 days ago1671265043
SAFUAPE: SAPE Token
0.01279109 ETH
162031622022-12-17 8:16:11578 days ago1671264971
SAFUAPE: SAPE Token
0.01100297 ETH
162031622022-12-17 8:16:11578 days ago1671264971
SAFUAPE: SAPE Token
0.01100297 ETH
162031352022-12-17 8:10:47578 days ago1671264647
SAFUAPE: SAPE Token
0.01247921 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SAFUAPE

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-18
*/

// _,_
//    .--.  .-"     "-.  .--.
//   / .. \/  .-. .-.  \/ .. \
//  | |  '|  /   Y   \  |'  | |
//  | \   \  \ 0 | 0 /  /   / |
//   \ '- ,\.-"`` ``"-./, -' /
//    `'-' /_   ^ ^   _\ '-'`
//        |  \._   _./  |
//        \   \ `~` /   /
//         '._ '-=-' _.'
//             '---'
// WEBSITE: safuape.finance
// TELEGRAM: https://t.me/SafuApeETH
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
}

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract SAFUAPE is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "SAFUAPE";
    string private constant _symbol = "SAPE";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping (address => uint256) private _buyMap;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    mapping(address => bool) private _isSniper;
    uint256 public launchTime;

    // Jeets out Fee
    uint256 private _redisFeeJeets = 0;
    uint256 private _taxFeeJeets = 17;

    // Buy Fee
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 5;
    
    // Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 12;
    
    // Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _burnFee = 0;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    uint256 private _previousburnFee = _burnFee;
    
    address payable private _marketingAddress = payable(0xB6cE6712871B8FCcAF2a593C56680866442F29b3);
    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public timeJeets = 2 hours;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool private isMaxBuyActivated = true;
    
    uint256 public _maxTxAmount = 15e9 * 10**9; //1.5%
    uint256 public _maxWalletSize = 3e10 * 10**9; //3%
    uint256 public _swapTokensAtAmount = 1000 * 10**9;
    uint256 public _minimumBuyAmount = 15e9 * 10**9 ; // 1.5%

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[deadAddress] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0 && _burnFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        _previousburnFee = _burnFee;
        
        _redisFee = 0;
        _taxFee = 0;
        _burnFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
        _burnFee = _previousburnFee;
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!_isSniper[to], 'Stop sniping!');
        require(!_isSniper[from], 'Stop sniping!');
        require(!_isSniper[_msgSender()], 'Stop sniping!');

        if (from != owner() && to != owner()) {
            
            // Trade start check
            if (!tradingOpen) {
                revert("Trading not yet enabled!");
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (to != address(this) && from != address(this) && to != _marketingAddress && from != _marketingAddress) {
                    require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                }
            }

            if (to != uniswapV2Pair && to != _marketingAddress && to != address(this) && to != deadAddress) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                if (isMaxBuyActivated) {
                    if (block.timestamp <= launchTime + 20 minutes) {
                        require(amount <= _minimumBuyAmount, "Amount too much");
                    }
                }
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance > _swapTokensAtAmount;
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                uint256 burntAmount = 0;
                if (_burnFee > 0) {
                    burntAmount = contractTokenBalance.mul(_burnFee).div(10**2);
                    burnTokens(burntAmount);
                }
                swapTokensForEth(contractTokenBalance - burntAmount);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        // Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            // Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                    _buyMap[to] = block.timestamp;
                    _redisFee = _redisFeeOnBuy;
                    _taxFee = _taxFeeOnBuy;
                    // antibot
                    if (block.timestamp == launchTime) {
                        _isSniper[to] = true;
                    }
            }
    
            // Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (_buyMap[from] != 0 && (_buyMap[from] + timeJeets >= block.timestamp)) {
                    _redisFee = _redisFeeJeets;
                    _taxFee = _taxFeeJeets;
                } else {
                    _redisFee = _redisFeeOnSell;
                    _taxFee = _taxFeeOnSell;
                }
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function burnTokens(uint256 burntAmount) private {
        _transfer(address(this), deadAddress, burntAmount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
        launchTime = block.timestamp;
    }

    function setMarketingWallet(address marketingAddress) external {
        require(_msgSender() == _marketingAddress);
        _marketingAddress = payable(marketingAddress);
        _isExcludedFromFee[_marketingAddress] = true;
    }

    function setIsMaxBuyActivated(bool _isMaxBuyActivated) public onlyOwner {
        isMaxBuyActivated = _isMaxBuyActivated;
    }

    function manualswap(uint256 amount) external {
        require(_msgSender() == _marketingAddress);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function addSniper(address sniper) external onlyOwner {
        _isSniper[sniper] = true;
    }

    function removeSniper(address sniper) external onlyOwner {
        if (_isSniper[sniper]) {
            _isSniper[sniper] = false;
        }
    }

    function isSniper(address sniper) external view returns (bool){
        return _isSniper[sniper];
    }

    function manualsend() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);

        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();

        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }

    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    function setMaxTxnAmount(uint256 maxTxAmount) external onlyOwner {
        require(maxTxAmount >= 5e9 * 10**9, "Maximum transaction amount must be greater than 0.5%");
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) external onlyOwner {
        require(maxWalletSize >= _maxWalletSize);
        _maxWalletSize = maxWalletSize;
    }

    // USUAL TAXES CANNOT BE RAISED MORE THAN 15%
    function setTaxFee(uint256 amountBuy, uint256 amountSell) external onlyOwner {
        require(amountBuy >= 0 && amountBuy <= 13);
        require(amountSell >= 0 && amountSell <= 13);
        _taxFeeOnBuy = amountBuy;
        _taxFeeOnSell = amountSell;
    }

    function setRefFee(uint256 amountRefBuy, uint256 amountRefSell) external onlyOwner {
        require(amountRefBuy >= 0 && amountRefBuy <= 1);
        require(amountRefSell >= 0 && amountRefSell <= 1);
        _redisFeeOnBuy = amountRefBuy;
        _redisFeeOnSell = amountRefSell;
    }

    function setBurnFee(uint256 amount) external onlyOwner {
        require(amount >= 0 && amount <= 1);
        _burnFee = amount;
    }

    // FAST SELL TAXES CANNOT BE RAISED MORE THAN 20% and 4 hours
    function setJeetsFee(uint256 amountRedisJeets, uint256 amountTaxJeets) external onlyOwner {
        require(amountRedisJeets >= 0 && amountRedisJeets <= 1);
        require(amountTaxJeets >= 0 && amountTaxJeets <= 19);
        _redisFeeJeets = amountRedisJeets;
        _taxFeeJeets = amountTaxJeets;
    }

    function setTimeJeets(uint256 hoursTime) external onlyOwner {
        require(hoursTime >= 0 && hoursTime <= 4);
        timeJeets = hoursTime * 1 hours;
    }

}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minimumBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"addSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isMaxBuyActivated","type":"bool"}],"name":"setIsMaxBuyActivated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRedisJeets","type":"uint256"},{"internalType":"uint256","name":"amountTaxJeets","type":"uint256"}],"name":"setJeetsFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRefBuy","type":"uint256"},{"internalType":"uint256","name":"amountRefSell","type":"uint256"}],"name":"setRefFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"hoursTime","type":"uint256"}],"name":"setTimeJeets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"timeJeets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d919062000805565b6000196200002c91906200078c565b6007556000600b556011600c556000600d556005600e556000600f55600c601055600f54601155601054601255600060135560115460145560125460155560135460165573b6ce6712871b8fccaf2a593c56680866442f29b3601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c206018556000601a60156101000a81548160ff0219169083151502179055506001601a60166101000a81548160ff0219169083151502179055506001601a60176101000a81548160ff02191690831515021790555067d02ab486cedc0000601b556801a055690d9db80000601c5564e8d4a51000601d5567d02ab486cedc0000601e553480156200015757600080fd5b5060006200016a620006a660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600754600260006200021f620006a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002fe57600080fd5b505afa15801562000313573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003399190620006ee565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039c57600080fd5b505afa158015620003b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d79190620006ee565b6040518363ffffffff1660e01b8152600401620003f692919062000742565b602060405180830381600087803b1580156200041157600080fd5b505af115801562000426573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044c9190620006ee565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000620004a2620006ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200062f620006a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200069791906200076f565b60405180910390a350620008ba565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006e881620008a0565b92915050565b6000602082840312156200070757620007066200089b565b5b60006200071784828501620006d7565b91505092915050565b6200072b81620007c7565b82525050565b6200073c81620007fb565b82525050565b600060408201905062000759600083018562000720565b62000768602083018462000720565b9392505050565b600060208201905062000786600083018462000731565b92915050565b60006200079982620007fb565b9150620007a683620007fb565b925082821015620007bc57620007bb6200083d565b5b828203905092915050565b6000620007d482620007db565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200081282620007fb565b91506200081f83620007fb565b9250826200083257620008316200086c565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008ab81620007c7565b8114620008b757600080fd5b50565b6146b580620008ca6000396000f3fe60806040526004361061021e5760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e146107a4578063e0f9f6a0146107e1578063ea1644d51461080a578063f2fde38b14610833578063fe72c3c11461085c57610225565b806395d89b41146106c15780639ec350ed146106ec5780639f13157114610715578063a9059cbb1461073e578063c55284901461077b57610225565b80637d1db4a5116100f25780637d1db4a5146105ee578063881dce60146106195780638da5cb5b146106425780638f70ccf71461066d5780638f9a55c01461069657610225565b806370a0823114610546578063715018a61461058357806374010ece1461059a578063790ca413146105c357610225565b806333251a0b116101a65780634bf2c7c9116101755780634bf2c7c9146104895780635d098b38146104b25780636b9cf534146104db5780636d8aa8f8146105065780636fc3eaec1461052f57610225565b806333251a0b146103e357806338eea22d1461040c5780633e3e95981461043557806349bd5a5e1461045e57610225565b806318160ddd116101ed57806318160ddd146102fa57806323b872dd1461032557806327c8f835146103625780632fd689e31461038d578063313ce567146103b857610225565b806306fdde031461022a578063095ea7b3146102555780630f3a325f146102925780631694505e146102cf57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610887565b60405161024c9190613bff565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190613769565b6108c4565b6040516102899190613bc9565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b4919061367c565b6108e2565b6040516102c69190613bc9565b60405180910390f35b3480156102db57600080fd5b506102e4610938565b6040516102f19190613be4565b60405180910390f35b34801561030657600080fd5b5061030f61095e565b60405161031c9190613e41565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190613716565b61096f565b6040516103599190613bc9565b60405180910390f35b34801561036e57600080fd5b50610377610a48565b6040516103849190613bae565b60405180910390f35b34801561039957600080fd5b506103a2610a4e565b6040516103af9190613e41565b60405180910390f35b3480156103c457600080fd5b506103cd610a54565b6040516103da9190613eb6565b60405180910390f35b3480156103ef57600080fd5b5061040a6004803603810190610405919061367c565b610a5d565b005b34801561041857600080fd5b50610433600480360381019061042e9190613803565b610ba0565b005b34801561044157600080fd5b5061045c6004803603810190610457919061367c565b610c7d565b005b34801561046a57600080fd5b50610473610d6d565b6040516104809190613bae565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab91906137d6565b610d93565b005b3480156104be57600080fd5b506104d960048036038101906104d4919061367c565b610e4d565b005b3480156104e757600080fd5b506104f0610f6c565b6040516104fd9190613e41565b60405180910390f35b34801561051257600080fd5b5061052d600480360381019061052891906137a9565b610f72565b005b34801561053b57600080fd5b50610544611024565b005b34801561055257600080fd5b5061056d6004803603810190610568919061367c565b611096565b60405161057a9190613e41565b60405180910390f35b34801561058f57600080fd5b506105986110e7565b005b3480156105a657600080fd5b506105c160048036038101906105bc91906137d6565b61123a565b005b3480156105cf57600080fd5b506105d8611324565b6040516105e59190613e41565b60405180910390f35b3480156105fa57600080fd5b5061060361132a565b6040516106109190613e41565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b91906137d6565b611330565b005b34801561064e57600080fd5b506106576113f4565b6040516106649190613bae565b60405180910390f35b34801561067957600080fd5b50610694600480360381019061068f91906137a9565b61141d565b005b3480156106a257600080fd5b506106ab6114d6565b6040516106b89190613e41565b60405180910390f35b3480156106cd57600080fd5b506106d66114dc565b6040516106e39190613bff565b60405180910390f35b3480156106f857600080fd5b50610713600480360381019061070e9190613803565b611519565b005b34801561072157600080fd5b5061073c600480360381019061073791906137a9565b6115f6565b005b34801561074a57600080fd5b5061076560048036038101906107609190613769565b6116a8565b6040516107729190613bc9565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190613803565b6116c6565b005b3480156107b057600080fd5b506107cb60048036038101906107c691906136d6565b6117a3565b6040516107d89190613e41565b60405180910390f35b3480156107ed57600080fd5b50610808600480360381019061080391906137d6565b61182a565b005b34801561081657600080fd5b50610831600480360381019061082c91906137d6565b6118f1565b005b34801561083f57600080fd5b5061085a6004803603810190610855919061367c565b61199f565b005b34801561086857600080fd5b50610871611b61565b60405161087e9190613e41565b60405180910390f35b60606040518060400160405280600781526020017f5341465541504500000000000000000000000000000000000000000000000000815250905090565b60006108d86108d1611b67565b8484611b6f565b6001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b600061097c848484611d3a565b610a3d84610988611b67565b610a388560405180606001604052806028815260200161465860289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ee611b67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b009092919063ffffffff16565b611b6f565b600190509392505050565b61dead81565b601d5481565b60006009905090565b610a65611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990613d61565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b9d576000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b610ba8611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c90613d61565b60405180910390fd5b60008210158015610c47575060018211155b610c5057600080fd5b60008110158015610c62575060018111155b610c6b57600080fd5b81600d8190555080600f819055505050565b610c85611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990613d61565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d9b611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f90613d61565b60405180910390fd5b60008110158015610e3a575060018111155b610e4357600080fd5b8060138190555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e8e611b67565b73ffffffffffffffffffffffffffffffffffffffff1614610eae57600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601e5481565b610f7a611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe90613d61565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611065611b67565b73ffffffffffffffffffffffffffffffffffffffff161461108557600080fd5b600047905061109381612b64565b50565b60006110e0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bd0565b9050919050565b6110ef611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390613d61565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611242611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690613d61565b60405180910390fd5b674563918244f4000081101561131a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131190613d21565b60405180910390fd5b80601b8190555050565b600a5481565b601b5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611371611b67565b73ffffffffffffffffffffffffffffffffffffffff161461139157600080fd5b61139a30611096565b81111580156113a95750600081115b6113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90613e21565b60405180910390fd5b6113f181612c3e565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611425611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a990613d61565b60405180910390fd5b80601a60146101000a81548160ff02191690831515021790555042600a8190555050565b601c5481565b60606040518060400160405280600481526020017f5341504500000000000000000000000000000000000000000000000000000000815250905090565b611521611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a590613d61565b60405180910390fd5b600082101580156115c0575060018211155b6115c957600080fd5b600081101580156115db575060138111155b6115e457600080fd5b81600b8190555080600c819055505050565b6115fe611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168290613d61565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b60006116bc6116b5611b67565b8484611d3a565b6001905092915050565b6116ce611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290613d61565b60405180910390fd5b6000821015801561176d5750600d8211155b61177657600080fd5b600081101580156117885750600d8111155b61179157600080fd5b81600e81905550806010819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611832611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b690613d61565b60405180910390fd5b600081101580156118d1575060048111155b6118da57600080fd5b610e10816118e89190613fad565b60188190555050565b6118f9611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d90613d61565b60405180910390fd5b601c5481101561199557600080fd5b80601c8190555050565b6119a7611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b90613d61565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9b90613ca1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd690613e01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613cc1565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d2d9190613e41565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da190613da1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190613c21565b60405180910390fd5b60008111611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5490613d81565b60405180910390fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee190613de1565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6e90613de1565b60405180910390fd5b60096000611f83611b67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561200b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200290613de1565b60405180910390fd5b6120136113f4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561208157506120516113f4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561269f57601a60149054906101000a900460ff166120d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cc90613c41565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156121805750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122ed573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156121ed57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156122475750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122a15750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122ec57601b548111156122eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e290613c81565b60405180910390fd5b5b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156123995750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123d157503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561240b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156124da57601c548161241d84611096565b6124279190613f26565b10612467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245e90613dc1565b60405180910390fd5b601a60179054906101000a900460ff16156124d9576104b0600a5461248c9190613f26565b42116124d857601e548111156124d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ce90613ce1565b60405180910390fd5b5b5b5b60006124e530611096565b90506000601d548211905080801561250a5750601a60159054906101000a900460ff16155b80156125645750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561257c5750601a60169054906101000a900460ff165b80156125d25750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126285750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561269c57600080601354111561266d57612661606461265360135486612ec690919063ffffffff16565b612f4190919063ffffffff16565b905061266c81612f8b565b5b612681818461267c9190614007565b612c3e565b600047905060008111156126995761269847612b64565b5b50505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127465750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127f95750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156127f85750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156128075760009050612aee565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156128b25750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156129715742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d54601181905550600e54601281905550600a54421415612970576001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612a1c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612aed576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015612abd575042601854600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aba9190613f26565b10155b15612ad957600b54601181905550600c54601281905550612aec565b600f546011819055506010546012819055505b5b5b612afa84848484612f9b565b50505050565b6000838311158290612b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3f9190613bff565b60405180910390fd5b5060008385612b579190614007565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612bcc573d6000803e3d6000fd5b5050565b6000600754821115612c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0e90613c61565b60405180910390fd5b6000612c21612fc8565b9050612c368184612f4190919063ffffffff16565b915050919050565b6001601a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612c7657612c75614198565b5b604051908082528060200260200182016040528015612ca45781602001602082028036833780820191505090505b5090503081600081518110612cbc57612cbb614169565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d5e57600080fd5b505afa158015612d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d9691906136a9565b81600181518110612daa57612da9614169565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e1130601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b6f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e75959493929190613e5c565b600060405180830381600087803b158015612e8f57600080fd5b505af1158015612ea3573d6000803e3d6000fd5b50505050506000601a60156101000a81548160ff02191690831515021790555050565b600080831415612ed95760009050612f3b565b60008284612ee79190613fad565b9050828482612ef69190613f7c565b14612f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f2d90613d41565b60405180910390fd5b809150505b92915050565b6000612f8383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ff3565b905092915050565b612f983061dead83611d3a565b50565b80612fa957612fa8613056565b5b612fb48484846130b8565b80612fc257612fc1613283565b5b50505050565b6000806000612fd56132a0565b91509150612fec8183612f4190919063ffffffff16565b9250505090565b6000808311829061303a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130319190613bff565b60405180910390fd5b50600083856130499190613f7c565b9050809150509392505050565b600060115414801561306a57506000601254145b801561307857506000601354145b15613082576130b6565b6011546014819055506012546015819055506013546016819055506000601181905550600060128190555060006013819055505b565b6000806000806000806130ca87613302565b95509550955095509550955061312886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461336a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131bd85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133b490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061320981613412565b61321384836134cf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516132709190613e41565b60405180910390a3505050505050505050565b601454601181905550601554601281905550601654601381905550565b600080600060075490506000683635c9adc5dea0000090506132d6683635c9adc5dea00000600754612f4190919063ffffffff16565b8210156132f557600754683635c9adc5dea000009350935050506132fe565b81819350935050505b9091565b600080600080600080600080600061331f8a601154601254613509565b925092509250600061332f612fc8565b905060008060006133428e87878761359f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006133ac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b00565b905092915050565b60008082846133c39190613f26565b905083811015613408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ff90613d01565b60405180910390fd5b8091505092915050565b600061341c612fc8565b905060006134338284612ec690919063ffffffff16565b905061348781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133b490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6134e48260075461336a90919063ffffffff16565b6007819055506134ff816008546133b490919063ffffffff16565b6008819055505050565b6000806000806135356064613527888a612ec690919063ffffffff16565b612f4190919063ffffffff16565b9050600061355f6064613551888b612ec690919063ffffffff16565b612f4190919063ffffffff16565b905060006135888261357a858c61336a90919063ffffffff16565b61336a90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806135b88589612ec690919063ffffffff16565b905060006135cf8689612ec690919063ffffffff16565b905060006135e68789612ec690919063ffffffff16565b9050600061360f82613601858761336a90919063ffffffff16565b61336a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061363781614612565b92915050565b60008151905061364c81614612565b92915050565b60008135905061366181614629565b92915050565b60008135905061367681614640565b92915050565b600060208284031215613692576136916141c7565b5b60006136a084828501613628565b91505092915050565b6000602082840312156136bf576136be6141c7565b5b60006136cd8482850161363d565b91505092915050565b600080604083850312156136ed576136ec6141c7565b5b60006136fb85828601613628565b925050602061370c85828601613628565b9150509250929050565b60008060006060848603121561372f5761372e6141c7565b5b600061373d86828701613628565b935050602061374e86828701613628565b925050604061375f86828701613667565b9150509250925092565b600080604083850312156137805761377f6141c7565b5b600061378e85828601613628565b925050602061379f85828601613667565b9150509250929050565b6000602082840312156137bf576137be6141c7565b5b60006137cd84828501613652565b91505092915050565b6000602082840312156137ec576137eb6141c7565b5b60006137fa84828501613667565b91505092915050565b6000806040838503121561381a576138196141c7565b5b600061382885828601613667565b925050602061383985828601613667565b9150509250929050565b600061384f838361385b565b60208301905092915050565b6138648161403b565b82525050565b6138738161403b565b82525050565b600061388482613ee1565b61388e8185613f04565b935061389983613ed1565b8060005b838110156138ca5781516138b18882613843565b97506138bc83613ef7565b92505060018101905061389d565b5085935050505092915050565b6138e08161404d565b82525050565b6138ef81614090565b82525050565b6138fe816140a2565b82525050565b600061390f82613eec565b6139198185613f15565b93506139298185602086016140d8565b613932816141cc565b840191505092915050565b600061394a602383613f15565b9150613955826141dd565b604082019050919050565b600061396d601883613f15565b91506139788261422c565b602082019050919050565b6000613990602a83613f15565b915061399b82614255565b604082019050919050565b60006139b3601c83613f15565b91506139be826142a4565b602082019050919050565b60006139d6602683613f15565b91506139e1826142cd565b604082019050919050565b60006139f9602283613f15565b9150613a048261431c565b604082019050919050565b6000613a1c600f83613f15565b9150613a278261436b565b602082019050919050565b6000613a3f601b83613f15565b9150613a4a82614394565b602082019050919050565b6000613a62603483613f15565b9150613a6d826143bd565b604082019050919050565b6000613a85602183613f15565b9150613a908261440c565b604082019050919050565b6000613aa8602083613f15565b9150613ab38261445b565b602082019050919050565b6000613acb602983613f15565b9150613ad682614484565b604082019050919050565b6000613aee602583613f15565b9150613af9826144d3565b604082019050919050565b6000613b11602383613f15565b9150613b1c82614522565b604082019050919050565b6000613b34600d83613f15565b9150613b3f82614571565b602082019050919050565b6000613b57602483613f15565b9150613b628261459a565b604082019050919050565b6000613b7a600c83613f15565b9150613b85826145e9565b602082019050919050565b613b9981614079565b82525050565b613ba881614083565b82525050565b6000602082019050613bc3600083018461386a565b92915050565b6000602082019050613bde60008301846138d7565b92915050565b6000602082019050613bf960008301846138e6565b92915050565b60006020820190508181036000830152613c198184613904565b905092915050565b60006020820190508181036000830152613c3a8161393d565b9050919050565b60006020820190508181036000830152613c5a81613960565b9050919050565b60006020820190508181036000830152613c7a81613983565b9050919050565b60006020820190508181036000830152613c9a816139a6565b9050919050565b60006020820190508181036000830152613cba816139c9565b9050919050565b60006020820190508181036000830152613cda816139ec565b9050919050565b60006020820190508181036000830152613cfa81613a0f565b9050919050565b60006020820190508181036000830152613d1a81613a32565b9050919050565b60006020820190508181036000830152613d3a81613a55565b9050919050565b60006020820190508181036000830152613d5a81613a78565b9050919050565b60006020820190508181036000830152613d7a81613a9b565b9050919050565b60006020820190508181036000830152613d9a81613abe565b9050919050565b60006020820190508181036000830152613dba81613ae1565b9050919050565b60006020820190508181036000830152613dda81613b04565b9050919050565b60006020820190508181036000830152613dfa81613b27565b9050919050565b60006020820190508181036000830152613e1a81613b4a565b9050919050565b60006020820190508181036000830152613e3a81613b6d565b9050919050565b6000602082019050613e566000830184613b90565b92915050565b600060a082019050613e716000830188613b90565b613e7e60208301876138f5565b8181036040830152613e908186613879565b9050613e9f606083018561386a565b613eac6080830184613b90565b9695505050505050565b6000602082019050613ecb6000830184613b9f565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f3182614079565b9150613f3c83614079565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f7157613f7061410b565b5b828201905092915050565b6000613f8782614079565b9150613f9283614079565b925082613fa257613fa161413a565b5b828204905092915050565b6000613fb882614079565b9150613fc383614079565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ffc57613ffb61410b565b5b828202905092915050565b600061401282614079565b915061401d83614079565b9250828210156140305761402f61410b565b5b828203905092915050565b600061404682614059565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061409b826140b4565b9050919050565b60006140ad82614079565b9050919050565b60006140bf826140c6565b9050919050565b60006140d182614059565b9050919050565b60005b838110156140f65780820151818401526020810190506140db565b83811115614105576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e7420746f6f206d7563680000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4d6178696d756d207472616e73616374696f6e20616d6f756e74206d7573742060008201527f62652067726561746572207468616e20302e3525000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f53746f7020736e6970696e672100000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b61461b8161403b565b811461462657600080fd5b50565b6146328161404d565b811461463d57600080fd5b50565b61464981614079565b811461465457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220995ec47c0ead734a16386317e11eda7d02dcb19c9efc966cc1fb5b5d24834d8564736f6c63430008070033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e146107a4578063e0f9f6a0146107e1578063ea1644d51461080a578063f2fde38b14610833578063fe72c3c11461085c57610225565b806395d89b41146106c15780639ec350ed146106ec5780639f13157114610715578063a9059cbb1461073e578063c55284901461077b57610225565b80637d1db4a5116100f25780637d1db4a5146105ee578063881dce60146106195780638da5cb5b146106425780638f70ccf71461066d5780638f9a55c01461069657610225565b806370a0823114610546578063715018a61461058357806374010ece1461059a578063790ca413146105c357610225565b806333251a0b116101a65780634bf2c7c9116101755780634bf2c7c9146104895780635d098b38146104b25780636b9cf534146104db5780636d8aa8f8146105065780636fc3eaec1461052f57610225565b806333251a0b146103e357806338eea22d1461040c5780633e3e95981461043557806349bd5a5e1461045e57610225565b806318160ddd116101ed57806318160ddd146102fa57806323b872dd1461032557806327c8f835146103625780632fd689e31461038d578063313ce567146103b857610225565b806306fdde031461022a578063095ea7b3146102555780630f3a325f146102925780631694505e146102cf57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610887565b60405161024c9190613bff565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190613769565b6108c4565b6040516102899190613bc9565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b4919061367c565b6108e2565b6040516102c69190613bc9565b60405180910390f35b3480156102db57600080fd5b506102e4610938565b6040516102f19190613be4565b60405180910390f35b34801561030657600080fd5b5061030f61095e565b60405161031c9190613e41565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190613716565b61096f565b6040516103599190613bc9565b60405180910390f35b34801561036e57600080fd5b50610377610a48565b6040516103849190613bae565b60405180910390f35b34801561039957600080fd5b506103a2610a4e565b6040516103af9190613e41565b60405180910390f35b3480156103c457600080fd5b506103cd610a54565b6040516103da9190613eb6565b60405180910390f35b3480156103ef57600080fd5b5061040a6004803603810190610405919061367c565b610a5d565b005b34801561041857600080fd5b50610433600480360381019061042e9190613803565b610ba0565b005b34801561044157600080fd5b5061045c6004803603810190610457919061367c565b610c7d565b005b34801561046a57600080fd5b50610473610d6d565b6040516104809190613bae565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab91906137d6565b610d93565b005b3480156104be57600080fd5b506104d960048036038101906104d4919061367c565b610e4d565b005b3480156104e757600080fd5b506104f0610f6c565b6040516104fd9190613e41565b60405180910390f35b34801561051257600080fd5b5061052d600480360381019061052891906137a9565b610f72565b005b34801561053b57600080fd5b50610544611024565b005b34801561055257600080fd5b5061056d6004803603810190610568919061367c565b611096565b60405161057a9190613e41565b60405180910390f35b34801561058f57600080fd5b506105986110e7565b005b3480156105a657600080fd5b506105c160048036038101906105bc91906137d6565b61123a565b005b3480156105cf57600080fd5b506105d8611324565b6040516105e59190613e41565b60405180910390f35b3480156105fa57600080fd5b5061060361132a565b6040516106109190613e41565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b91906137d6565b611330565b005b34801561064e57600080fd5b506106576113f4565b6040516106649190613bae565b60405180910390f35b34801561067957600080fd5b50610694600480360381019061068f91906137a9565b61141d565b005b3480156106a257600080fd5b506106ab6114d6565b6040516106b89190613e41565b60405180910390f35b3480156106cd57600080fd5b506106d66114dc565b6040516106e39190613bff565b60405180910390f35b3480156106f857600080fd5b50610713600480360381019061070e9190613803565b611519565b005b34801561072157600080fd5b5061073c600480360381019061073791906137a9565b6115f6565b005b34801561074a57600080fd5b5061076560048036038101906107609190613769565b6116a8565b6040516107729190613bc9565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190613803565b6116c6565b005b3480156107b057600080fd5b506107cb60048036038101906107c691906136d6565b6117a3565b6040516107d89190613e41565b60405180910390f35b3480156107ed57600080fd5b50610808600480360381019061080391906137d6565b61182a565b005b34801561081657600080fd5b50610831600480360381019061082c91906137d6565b6118f1565b005b34801561083f57600080fd5b5061085a6004803603810190610855919061367c565b61199f565b005b34801561086857600080fd5b50610871611b61565b60405161087e9190613e41565b60405180910390f35b60606040518060400160405280600781526020017f5341465541504500000000000000000000000000000000000000000000000000815250905090565b60006108d86108d1611b67565b8484611b6f565b6001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b600061097c848484611d3a565b610a3d84610988611b67565b610a388560405180606001604052806028815260200161465860289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ee611b67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b009092919063ffffffff16565b611b6f565b600190509392505050565b61dead81565b601d5481565b60006009905090565b610a65611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990613d61565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b9d576000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b610ba8611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c90613d61565b60405180910390fd5b60008210158015610c47575060018211155b610c5057600080fd5b60008110158015610c62575060018111155b610c6b57600080fd5b81600d8190555080600f819055505050565b610c85611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990613d61565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d9b611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f90613d61565b60405180910390fd5b60008110158015610e3a575060018111155b610e4357600080fd5b8060138190555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e8e611b67565b73ffffffffffffffffffffffffffffffffffffffff1614610eae57600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601e5481565b610f7a611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe90613d61565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611065611b67565b73ffffffffffffffffffffffffffffffffffffffff161461108557600080fd5b600047905061109381612b64565b50565b60006110e0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bd0565b9050919050565b6110ef611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390613d61565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611242611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690613d61565b60405180910390fd5b674563918244f4000081101561131a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131190613d21565b60405180910390fd5b80601b8190555050565b600a5481565b601b5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611371611b67565b73ffffffffffffffffffffffffffffffffffffffff161461139157600080fd5b61139a30611096565b81111580156113a95750600081115b6113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90613e21565b60405180910390fd5b6113f181612c3e565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611425611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a990613d61565b60405180910390fd5b80601a60146101000a81548160ff02191690831515021790555042600a8190555050565b601c5481565b60606040518060400160405280600481526020017f5341504500000000000000000000000000000000000000000000000000000000815250905090565b611521611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a590613d61565b60405180910390fd5b600082101580156115c0575060018211155b6115c957600080fd5b600081101580156115db575060138111155b6115e457600080fd5b81600b8190555080600c819055505050565b6115fe611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168290613d61565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b60006116bc6116b5611b67565b8484611d3a565b6001905092915050565b6116ce611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290613d61565b60405180910390fd5b6000821015801561176d5750600d8211155b61177657600080fd5b600081101580156117885750600d8111155b61179157600080fd5b81600e81905550806010819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611832611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b690613d61565b60405180910390fd5b600081101580156118d1575060048111155b6118da57600080fd5b610e10816118e89190613fad565b60188190555050565b6118f9611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d90613d61565b60405180910390fd5b601c5481101561199557600080fd5b80601c8190555050565b6119a7611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b90613d61565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9b90613ca1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd690613e01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613cc1565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d2d9190613e41565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da190613da1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190613c21565b60405180910390fd5b60008111611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5490613d81565b60405180910390fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee190613de1565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6e90613de1565b60405180910390fd5b60096000611f83611b67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561200b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200290613de1565b60405180910390fd5b6120136113f4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561208157506120516113f4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561269f57601a60149054906101000a900460ff166120d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cc90613c41565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156121805750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122ed573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156121ed57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156122475750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122a15750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122ec57601b548111156122eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e290613c81565b60405180910390fd5b5b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156123995750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123d157503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561240b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156124da57601c548161241d84611096565b6124279190613f26565b10612467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245e90613dc1565b60405180910390fd5b601a60179054906101000a900460ff16156124d9576104b0600a5461248c9190613f26565b42116124d857601e548111156124d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ce90613ce1565b60405180910390fd5b5b5b5b60006124e530611096565b90506000601d548211905080801561250a5750601a60159054906101000a900460ff16155b80156125645750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561257c5750601a60169054906101000a900460ff165b80156125d25750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126285750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561269c57600080601354111561266d57612661606461265360135486612ec690919063ffffffff16565b612f4190919063ffffffff16565b905061266c81612f8b565b5b612681818461267c9190614007565b612c3e565b600047905060008111156126995761269847612b64565b5b50505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127465750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127f95750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156127f85750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156128075760009050612aee565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156128b25750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156129715742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d54601181905550600e54601281905550600a54421415612970576001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612a1c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612aed576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015612abd575042601854600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aba9190613f26565b10155b15612ad957600b54601181905550600c54601281905550612aec565b600f546011819055506010546012819055505b5b5b612afa84848484612f9b565b50505050565b6000838311158290612b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3f9190613bff565b60405180910390fd5b5060008385612b579190614007565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612bcc573d6000803e3d6000fd5b5050565b6000600754821115612c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0e90613c61565b60405180910390fd5b6000612c21612fc8565b9050612c368184612f4190919063ffffffff16565b915050919050565b6001601a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612c7657612c75614198565b5b604051908082528060200260200182016040528015612ca45781602001602082028036833780820191505090505b5090503081600081518110612cbc57612cbb614169565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d5e57600080fd5b505afa158015612d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d9691906136a9565b81600181518110612daa57612da9614169565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e1130601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b6f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e75959493929190613e5c565b600060405180830381600087803b158015612e8f57600080fd5b505af1158015612ea3573d6000803e3d6000fd5b50505050506000601a60156101000a81548160ff02191690831515021790555050565b600080831415612ed95760009050612f3b565b60008284612ee79190613fad565b9050828482612ef69190613f7c565b14612f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f2d90613d41565b60405180910390fd5b809150505b92915050565b6000612f8383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ff3565b905092915050565b612f983061dead83611d3a565b50565b80612fa957612fa8613056565b5b612fb48484846130b8565b80612fc257612fc1613283565b5b50505050565b6000806000612fd56132a0565b91509150612fec8183612f4190919063ffffffff16565b9250505090565b6000808311829061303a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130319190613bff565b60405180910390fd5b50600083856130499190613f7c565b9050809150509392505050565b600060115414801561306a57506000601254145b801561307857506000601354145b15613082576130b6565b6011546014819055506012546015819055506013546016819055506000601181905550600060128190555060006013819055505b565b6000806000806000806130ca87613302565b95509550955095509550955061312886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461336a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131bd85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133b490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061320981613412565b61321384836134cf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516132709190613e41565b60405180910390a3505050505050505050565b601454601181905550601554601281905550601654601381905550565b600080600060075490506000683635c9adc5dea0000090506132d6683635c9adc5dea00000600754612f4190919063ffffffff16565b8210156132f557600754683635c9adc5dea000009350935050506132fe565b81819350935050505b9091565b600080600080600080600080600061331f8a601154601254613509565b925092509250600061332f612fc8565b905060008060006133428e87878761359f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006133ac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b00565b905092915050565b60008082846133c39190613f26565b905083811015613408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ff90613d01565b60405180910390fd5b8091505092915050565b600061341c612fc8565b905060006134338284612ec690919063ffffffff16565b905061348781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133b490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6134e48260075461336a90919063ffffffff16565b6007819055506134ff816008546133b490919063ffffffff16565b6008819055505050565b6000806000806135356064613527888a612ec690919063ffffffff16565b612f4190919063ffffffff16565b9050600061355f6064613551888b612ec690919063ffffffff16565b612f4190919063ffffffff16565b905060006135888261357a858c61336a90919063ffffffff16565b61336a90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806135b88589612ec690919063ffffffff16565b905060006135cf8689612ec690919063ffffffff16565b905060006135e68789612ec690919063ffffffff16565b9050600061360f82613601858761336a90919063ffffffff16565b61336a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061363781614612565b92915050565b60008151905061364c81614612565b92915050565b60008135905061366181614629565b92915050565b60008135905061367681614640565b92915050565b600060208284031215613692576136916141c7565b5b60006136a084828501613628565b91505092915050565b6000602082840312156136bf576136be6141c7565b5b60006136cd8482850161363d565b91505092915050565b600080604083850312156136ed576136ec6141c7565b5b60006136fb85828601613628565b925050602061370c85828601613628565b9150509250929050565b60008060006060848603121561372f5761372e6141c7565b5b600061373d86828701613628565b935050602061374e86828701613628565b925050604061375f86828701613667565b9150509250925092565b600080604083850312156137805761377f6141c7565b5b600061378e85828601613628565b925050602061379f85828601613667565b9150509250929050565b6000602082840312156137bf576137be6141c7565b5b60006137cd84828501613652565b91505092915050565b6000602082840312156137ec576137eb6141c7565b5b60006137fa84828501613667565b91505092915050565b6000806040838503121561381a576138196141c7565b5b600061382885828601613667565b925050602061383985828601613667565b9150509250929050565b600061384f838361385b565b60208301905092915050565b6138648161403b565b82525050565b6138738161403b565b82525050565b600061388482613ee1565b61388e8185613f04565b935061389983613ed1565b8060005b838110156138ca5781516138b18882613843565b97506138bc83613ef7565b92505060018101905061389d565b5085935050505092915050565b6138e08161404d565b82525050565b6138ef81614090565b82525050565b6138fe816140a2565b82525050565b600061390f82613eec565b6139198185613f15565b93506139298185602086016140d8565b613932816141cc565b840191505092915050565b600061394a602383613f15565b9150613955826141dd565b604082019050919050565b600061396d601883613f15565b91506139788261422c565b602082019050919050565b6000613990602a83613f15565b915061399b82614255565b604082019050919050565b60006139b3601c83613f15565b91506139be826142a4565b602082019050919050565b60006139d6602683613f15565b91506139e1826142cd565b604082019050919050565b60006139f9602283613f15565b9150613a048261431c565b604082019050919050565b6000613a1c600f83613f15565b9150613a278261436b565b602082019050919050565b6000613a3f601b83613f15565b9150613a4a82614394565b602082019050919050565b6000613a62603483613f15565b9150613a6d826143bd565b604082019050919050565b6000613a85602183613f15565b9150613a908261440c565b604082019050919050565b6000613aa8602083613f15565b9150613ab38261445b565b602082019050919050565b6000613acb602983613f15565b9150613ad682614484565b604082019050919050565b6000613aee602583613f15565b9150613af9826144d3565b604082019050919050565b6000613b11602383613f15565b9150613b1c82614522565b604082019050919050565b6000613b34600d83613f15565b9150613b3f82614571565b602082019050919050565b6000613b57602483613f15565b9150613b628261459a565b604082019050919050565b6000613b7a600c83613f15565b9150613b85826145e9565b602082019050919050565b613b9981614079565b82525050565b613ba881614083565b82525050565b6000602082019050613bc3600083018461386a565b92915050565b6000602082019050613bde60008301846138d7565b92915050565b6000602082019050613bf960008301846138e6565b92915050565b60006020820190508181036000830152613c198184613904565b905092915050565b60006020820190508181036000830152613c3a8161393d565b9050919050565b60006020820190508181036000830152613c5a81613960565b9050919050565b60006020820190508181036000830152613c7a81613983565b9050919050565b60006020820190508181036000830152613c9a816139a6565b9050919050565b60006020820190508181036000830152613cba816139c9565b9050919050565b60006020820190508181036000830152613cda816139ec565b9050919050565b60006020820190508181036000830152613cfa81613a0f565b9050919050565b60006020820190508181036000830152613d1a81613a32565b9050919050565b60006020820190508181036000830152613d3a81613a55565b9050919050565b60006020820190508181036000830152613d5a81613a78565b9050919050565b60006020820190508181036000830152613d7a81613a9b565b9050919050565b60006020820190508181036000830152613d9a81613abe565b9050919050565b60006020820190508181036000830152613dba81613ae1565b9050919050565b60006020820190508181036000830152613dda81613b04565b9050919050565b60006020820190508181036000830152613dfa81613b27565b9050919050565b60006020820190508181036000830152613e1a81613b4a565b9050919050565b60006020820190508181036000830152613e3a81613b6d565b9050919050565b6000602082019050613e566000830184613b90565b92915050565b600060a082019050613e716000830188613b90565b613e7e60208301876138f5565b8181036040830152613e908186613879565b9050613e9f606083018561386a565b613eac6080830184613b90565b9695505050505050565b6000602082019050613ecb6000830184613b9f565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f3182614079565b9150613f3c83614079565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f7157613f7061410b565b5b828201905092915050565b6000613f8782614079565b9150613f9283614079565b925082613fa257613fa161413a565b5b828204905092915050565b6000613fb882614079565b9150613fc383614079565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ffc57613ffb61410b565b5b828202905092915050565b600061401282614079565b915061401d83614079565b9250828210156140305761402f61410b565b5b828203905092915050565b600061404682614059565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061409b826140b4565b9050919050565b60006140ad82614079565b9050919050565b60006140bf826140c6565b9050919050565b60006140d182614059565b9050919050565b60005b838110156140f65780820151818401526020810190506140db565b83811115614105576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e7420746f6f206d7563680000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4d6178696d756d207472616e73616374696f6e20616d6f756e74206d7573742060008201527f62652067726561746572207468616e20302e3525000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f53746f7020736e6970696e672100000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b61461b8161403b565b811461462657600080fd5b50565b6146328161404d565b811461463d57600080fd5b50565b61464981614079565b811461465457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220995ec47c0ead734a16386317e11eda7d02dcb19c9efc966cc1fb5b5d24834d8564736f6c63430008070033

Deployed Bytecode Sourcemap

4447:16549:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7379:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8304:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15425:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6097:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7656:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8505:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5967:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6451:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7565:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15267:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19999:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15162:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6145:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20298:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14549:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6507:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19162:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15538:196;;;;;;;;;;;;;:::i;:::-;;7759:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1926:148;;;;;;;;;;;;;:::i;:::-;;19275:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5204:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6339:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14929:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1712:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14401:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6395:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7470:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20510:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14792:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7905:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19726:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8112:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20829:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19499:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2086:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6056:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7379:83;7416:13;7449:5;;;;;;;;;;;;;;;;;7442:12;;7379:83;:::o;8304:193::-;8406:4;8428:39;8437:12;:10;:12::i;:::-;8451:7;8460:6;8428:8;:39::i;:::-;8485:4;8478:11;;8304:193;;;;:::o;15425:105::-;15482:4;15505:9;:17;15515:6;15505:17;;;;;;;;;;;;;;;;;;;;;;;;;15498:24;;15425:105;;;:::o;6097:41::-;;;;;;;;;;;;;:::o;7656:95::-;7709:7;5047:12;7729:14;;7656:95;:::o;8505:446::-;8637:4;8654:36;8664:6;8672:9;8683:6;8654:9;:36::i;:::-;8701:220;8724:6;8745:12;:10;:12::i;:::-;8772:138;8828:6;8772:138;;;;;;;;;;;;;;;;;:11;:19;8784:6;8772:19;;;;;;;;;;;;;;;:33;8792:12;:10;:12::i;:::-;8772:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8701:8;:220::i;:::-;8939:4;8932:11;;8505:446;;;;;:::o;5967:80::-;6005:42;5967:80;:::o;6451:49::-;;;;:::o;7565:83::-;7606:5;4670:1;7624:16;;7565:83;:::o;15267:150::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15339:9:::1;:17;15349:6;15339:17;;;;;;;;;;;;;;;;;;;;;;;;;15335:75;;;15393:5;15373:9;:17;15383:6;15373:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;15335:75;15267:150:::0;:::o;19999:291::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20117:1:::1;20101:12;:17;;:38;;;;;20138:1;20122:12;:17;;20101:38;20093:47;;;::::0;::::1;;20176:1;20159:13;:18;;:40;;;;;20198:1;20181:13;:18;;20159:40;20151:49;;;::::0;::::1;;20228:12;20211:14;:29;;;;20269:13;20251:15;:31;;;;19999:291:::0;;:::o;15162:97::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15247:4:::1;15227:9;:17;15237:6;15227:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;15162:97:::0;:::o;6145:28::-;;;;;;;;;;;;;:::o;20298:137::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20382:1:::1;20372:6;:11;;:26;;;;;20397:1;20387:6;:11;;20372:26;20364:35;;;::::0;::::1;;20421:6;20410:8;:17;;;;20298:137:::0;:::o;14549:235::-;14647:17;;;;;;;;;;;14631:33;;:12;:10;:12::i;:::-;:33;;;14623:42;;;;;;14704:16;14676:17;;:45;;;;;;;;;;;;;;;;;;14772:4;14732:18;:37;14751:17;;;;;;;;;;;14732:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;14549:235;:::o;6507:47::-;;;;:::o;19162:101::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19243:12:::1;19229:11;;:26;;;;;;;;;;;;;;;;;;19162:101:::0;:::o;15538:196::-;15604:17;;;;;;;;;;;15588:33;;:12;:10;:12::i;:::-;:33;;;15580:42;;;;;;15633:26;15662:21;15633:50;;15694:32;15707:18;15694:12;:32::i;:::-;15569:165;15538:196::o;7759:138::-;7825:7;7852:37;7872:7;:16;7880:7;7872:16;;;;;;;;;;;;;;;;7852:19;:37::i;:::-;7845:44;;7759:138;;;:::o;1926:148::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2033:1:::1;1996:40;;2017:6;::::0;::::1;;;;;;;;1996:40;;;;;;;;;;;;2064:1;2047:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1926:148::o:0;19275:212::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19374:11:::1;19359;:26;;19351:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;19468:11;19453:12;:26;;;;19275:212:::0;:::o;5204:25::-;;;;:::o;6339:42::-;;;;:::o;14929:225::-;15009:17;;;;;;;;;;;14993:33;;:12;:10;:12::i;:::-;:33;;;14985:42;;;;;;15056:24;15074:4;15056:9;:24::i;:::-;15046:6;:34;;:48;;;;;15093:1;15084:6;:10;15046:48;15038:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15122:24;15139:6;15122:16;:24::i;:::-;14929:225;:::o;1712:79::-;1750:7;1777:6;;;;;;;;;;;1770:13;;1712:79;:::o;14401:140::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14482:12:::1;14468:11;;:26;;;;;;;;;;;;;;;;;;14518:15;14505:10;:28;;;;14401:140:::0;:::o;6395:44::-;;;;:::o;7470:87::-;7509:13;7542:7;;;;;;;;;;;;;;;;;7535:14;;7470:87;:::o;20510:311::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20639:1:::1;20619:16;:21;;:46;;;;;20664:1;20644:16;:21;;20619:46;20611:55;;;::::0;::::1;;20703:1;20685:14;:19;;:43;;;;;20726:2;20708:14;:20;;20685:43;20677:52;;;::::0;::::1;;20757:16;20740:14;:33;;;;20799:14;20784:12;:29;;;;20510:311:::0;;:::o;14792:129::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14895:18:::1;14875:17;;:38;;;;;;;;;;;;;;;;;;14792:129:::0;:::o;7905:199::-;8010:4;8032:42;8042:12;:10;:12::i;:::-;8056:9;8067:6;8032:9;:42::i;:::-;8092:4;8085:11;;7905:199;;;;:::o;19726:265::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19835:1:::1;19822:9;:14;;:33;;;;;19853:2;19840:9;:15;;19822:33;19814:42;;;::::0;::::1;;19889:1;19875:10;:15;;:35;;;;;19908:2;19894:10;:16;;19875:35;19867:44;;;::::0;::::1;;19937:9;19922:12;:24;;;;19973:10;19957:13;:26;;;;19726:265:::0;;:::o;8112:184::-;8229:7;8261:11;:18;8273:5;8261:18;;;;;;;;;;;;;;;:27;8280:7;8261:27;;;;;;;;;;;;;;;;8254:34;;8112:184;;;;:::o;20829:162::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20921:1:::1;20908:9;:14;;:32;;;;;20939:1;20926:9;:14;;20908:32;20900:41;;;::::0;::::1;;20976:7;20964:9;:19;;;;:::i;:::-;20952:9;:31;;;;20829:162:::0;:::o;19499:168::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19603:14:::1;;19586:13;:31;;19578:40;;;::::0;::::1;;19646:13;19629:14;:30;;;;19499:168:::0;:::o;2086:244::-;1849:12;:10;:12::i;:::-;1839:22;;:6;;;;;;;;;;:22;;;1831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2195:1:::1;2175:22;;:8;:22;;;;2167:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2285:8;2256:38;;2277:6;::::0;::::1;;;;;;;;2256:38;;;;;;;;;;;;2314:8;2305:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2086:244:::0;:::o;6056:34::-;;;;:::o;471:98::-;524:7;551:10;544:17;;471:98;:::o;9770:369::-;9914:1;9897:19;;:5;:19;;;;9889:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9995:1;9976:21;;:7;:21;;;;9968:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10077:6;10047:11;:18;10059:5;10047:18;;;;;;;;;;;;;;;:27;10066:7;10047:27;;;;;;;;;;;;;;;:36;;;;10115:7;10099:32;;10108:5;10099:32;;;10124:6;10099:32;;;;;;:::i;:::-;;;;;;;;9770:369;;;:::o;10147:3522::-;10285:1;10269:18;;:4;:18;;;;10261:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10362:1;10348:16;;:2;:16;;;;10340:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10432:1;10423:6;:10;10415:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10499:9;:13;10509:2;10499:13;;;;;;;;;;;;;;;;;;;;;;;;;10498:14;10490:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;10550:9;:15;10560:4;10550:15;;;;;;;;;;;;;;;;;;;;;;;;;10549:16;10541:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;10603:9;:23;10613:12;:10;:12::i;:::-;10603:23;;;;;;;;;;;;;;;;;;;;;;;;;10602:24;10594:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10669:7;:5;:7::i;:::-;10661:15;;:4;:15;;;;:32;;;;;10686:7;:5;:7::i;:::-;10680:13;;:2;:13;;;;10661:32;10657:1815;;;10763:11;;;;;;;;;;;10758:87;;10795:34;;;;;;;;;;:::i;:::-;;;;;;;;10758:87;10883:13;;;;;;;;;;;10877:19;;:2;:19;;;:55;;;;;10916:15;;;;;;;;;;;10900:32;;:4;:32;;;;10877:55;10873:307;;;10971:4;10957:19;;:2;:19;;;;:44;;;;;10996:4;10980:21;;:4;:21;;;;10957:44;:71;;;;;11011:17;;;;;;;;;;;11005:23;;:2;:23;;;;10957:71;:100;;;;;11040:17;;;;;;;;;;;11032:25;;:4;:25;;;;10957:100;10953:212;;;11100:12;;11090:6;:22;;11082:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10953:212;10873:307;11206:13;;;;;;;;;;;11200:19;;:2;:19;;;;:46;;;;;11229:17;;;;;;;;;;;11223:23;;:2;:23;;;;11200:46;:69;;;;;11264:4;11250:19;;:2;:19;;;;11200:69;:90;;;;;6005:42;11273:17;;:2;:17;;;;11200:90;11196:455;;;11344:14;;11335:6;11319:13;11329:2;11319:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11311:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11421:17;;;;;;;;;;;11417:219;;;11499:10;11486;;:23;;;;:::i;:::-;11467:15;:42;11463:154;;11556:17;;11546:6;:27;;11538:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;11463:154;11417:219;11196:455;11679:28;11710:24;11728:4;11710:9;:24::i;:::-;11679:55;;11749:12;11787:19;;11764:20;:42;11749:57;;11839:7;:18;;;;;11851:6;;;;;;;;;;;11850:7;11839:18;:43;;;;;11869:13;;;;;;;;;;;11861:21;;:4;:21;;;;11839:43;:58;;;;;11886:11;;;;;;;;;;;11839:58;:87;;;;;11902:18;:24;11921:4;11902:24;;;;;;;;;;;;;;;;;;;;;;;;;11901:25;11839:87;:114;;;;;11931:18;:22;11950:2;11931:22;;;;;;;;;;;;;;;;;;;;;;;;;11930:23;11839:114;11835:626;;;11974:19;12031:1;12020:8;;:12;12016:166;;;12071:45;12110:5;12071:34;12096:8;;12071:20;:24;;:34;;;;:::i;:::-;:38;;:45;;;;:::i;:::-;12057:59;;12139:23;12150:11;12139:10;:23::i;:::-;12016:166;12200:52;12240:11;12217:20;:34;;;;:::i;:::-;12200:16;:52::i;:::-;12271:26;12300:21;12271:50;;12365:1;12344:18;:22;12340:106;;;12391:35;12404:21;12391:12;:35::i;:::-;12340:106;11955:506;;11835:626;10695:1777;;10657:1815;12492:12;12507:4;12492:19;;12557:18;:24;12576:4;12557:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12585:18;:22;12604:2;12585:22;;;;;;;;;;;;;;;;;;;;;;;;;12557:50;12556:102;;;;12621:13;;;;;;;;;;;12613:21;;:4;:21;;;;:44;;;;;12644:13;;;;;;;;;;;12638:19;;:2;:19;;;;12613:44;12556:102;12552:1056;;;12685:5;12675:15;;12552:1056;;;12767:13;;;;;;;;;;;12759:21;;:4;:21;;;:55;;;;;12798:15;;;;;;;;;;;12784:30;;:2;:30;;;;12759:55;12756:382;;;12853:15;12839:7;:11;12847:2;12839:11;;;;;;;;;;;;;;;:29;;;;12903:14;;12891:9;:26;;;;12950:12;;12940:7;:22;;;;13040:10;;13021:15;:29;13017:106;;;13095:4;13079:9;:13;13089:2;13079:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13017:106;12756:382;13202:13;;;;;;;;;;;13196:19;;:2;:19;;;:55;;;;;13235:15;;;;;;;;;;;13219:32;;:4;:32;;;;13196:55;13192:405;;;13293:1;13276:7;:13;13284:4;13276:13;;;;;;;;;;;;;;;;:18;;:68;;;;;13328:15;13315:9;;13299:7;:13;13307:4;13299:13;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;:44;;13276:68;13272:310;;;13381:14;;13369:9;:26;;;;13428:12;;13418:7;:22;;;;13272:310;;;13501:15;;13489:9;:27;;;;13549:13;;13539:7;:23;;;;13272:310;13192:405;12552:1056;13620:41;13635:4;13641:2;13645:6;13653:7;13620:14;:41::i;:::-;10250:3419;10147:3522;;;:::o;2698:224::-;2818:7;2851:1;2846;:6;;2854:12;2838:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2878:9;2894:1;2890;:5;;;;:::i;:::-;2878:17;;2913:1;2906:8;;;2698:224;;;;;:::o;14294:99::-;14351:17;;;;;;;;;;;:26;;:34;14378:6;14351:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14294:99;:::o;8959:323::-;9054:7;9112;;9101;:18;;9079:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9200:19;9222:10;:8;:10::i;:::-;9200:32;;9250:24;9262:11;9250:7;:11;;:24;;;;:::i;:::-;9243:31;;;8959:323;;;:::o;13803:483::-;6666:4;6657:6;;:13;;;;;;;;;;;;;;;;;;13881:21:::1;13919:1;13905:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13881:40;;13950:4;13932;13937:1;13932:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13976:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13966:4;13971:1;13966:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14009:62;14026:4;14041:15;;;;;;;;;;;14059:11;14009:8;:62::i;:::-;14082:15;;;;;;;;;;;:66;;;14163:11;14189:1;14205:4;14232;14252:15;14082:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13870:416;6702:5:::0;6693:6;;:14;;;;;;;;;;;;;;;;;;13803:483;:::o;2930:246::-;2988:7;3017:1;3012;:6;3008:47;;;3042:1;3035:8;;;;3008:47;3065:9;3081:1;3077;:5;;;;:::i;:::-;3065:17;;3110:1;3105;3101;:5;;;;:::i;:::-;:10;3093:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3167:1;3160:8;;;2930:246;;;;;:::o;3184:132::-;3242:7;3269:39;3273:1;3276;3269:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3262:46;;3184:132;;;;:::o;13677:118::-;13737:50;13755:4;6005:42;13775:11;13737:9;:50::i;:::-;13677:118;:::o;15742:282::-;15898:7;15893:28;;15907:14;:12;:14::i;:::-;15893:28;15932:44;15950:6;15958:9;15969:6;15932:17;:44::i;:::-;15992:7;15987:29;;16001:15;:13;:15::i;:::-;15987:29;15742:282;;;;:::o;18717:166::-;18759:7;18780:15;18797;18816:19;:17;:19::i;:::-;18779:56;;;;18855:20;18867:7;18855;:11;;:20;;;;:::i;:::-;18848:27;;;;18717:166;:::o;3324:223::-;3444:7;3476:1;3472;:5;3479:12;3464:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3503:9;3519:1;3515;:5;;;;:::i;:::-;3503:17;;3538:1;3531:8;;;3324:223;;;;;:::o;9290:309::-;9350:1;9337:9;;:14;:30;;;;;9366:1;9355:7;;:12;9337:30;:47;;;;;9383:1;9371:8;;:13;9337:47;9333:60;;;9386:7;;9333:60;9429:9;;9409:17;:29;;;;9467:7;;9449:15;:25;;;;9504:8;;9485:16;:27;;;;9545:1;9533:9;:13;;;;9567:1;9557:7;:11;;;;9590:1;9579:8;:12;;;;9290:309;:::o;16032:610::-;16179:15;16209:23;16247:12;16274:23;16312:12;16339:13;16366:19;16377:7;16366:10;:19::i;:::-;16164:221;;;;;;;;;;;;16414:28;16434:7;16414;:15;16422:6;16414:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16396:7;:15;16404:6;16396:15;;;;;;;;;;;;;;;:46;;;;16474:39;16497:15;16474:7;:18;16482:9;16474:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;16453:7;:18;16461:9;16453:18;;;;;;;;;;;;;;;:60;;;;16524:16;16534:5;16524:9;:16::i;:::-;16551:23;16563:4;16569;16551:11;:23::i;:::-;16607:9;16590:44;;16599:6;16590:44;;;16618:15;16590:44;;;;;;:::i;:::-;;;;;;;;16153:489;;;;;;16032:610;;;:::o;9607:155::-;9663:17;;9651:9;:29;;;;9701:15;;9691:7;:25;;;;9738:16;;9727:8;:27;;;;9607:155::o;18891:263::-;18942:7;18951;18971:15;18989:7;;18971:25;;19007:15;5047:12;19007:25;;19057:20;5047:12;19057:7;;:11;;:20;;;;:::i;:::-;19047:7;:30;19043:61;;;19087:7;;5047:12;19079:25;;;;;;;;19043:61;19129:7;19138;19121:25;;;;;;18891:263;;;:::o;17061:625::-;17161:7;17183;17205;17227;17249;17271;17307:23;17332:12;17346:13;17376:40;17388:7;17397:9;;17408:7;;17376:11;:40::i;:::-;17306:110;;;;;;17427:19;17449:10;:8;:10::i;:::-;17427:32;;17471:15;17488:23;17513:12;17542:46;17554:7;17563:4;17569:5;17576:11;17542;:46::i;:::-;17470:118;;;;;;17617:7;17626:15;17643:4;17649:15;17666:4;17672:5;17609:69;;;;;;;;;;;;;;;;;;;17061:625;;;;;;;:::o;2554:136::-;2612:7;2639:43;2643:1;2646;2639:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2632:50;;2554:136;;;;:::o;2367:179::-;2425:7;2445:9;2461:1;2457;:5;;;;:::i;:::-;2445:17;;2486:1;2481;:6;;2473:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2537:1;2530:8;;;2367:179;;;;:::o;16650:211::-;16703:19;16725:10;:8;:10::i;:::-;16703:32;;16746:13;16762:22;16772:11;16762:5;:9;;:22;;;;:::i;:::-;16746:38;;16820:33;16847:5;16820:7;:22;16836:4;16820:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16795:7;:22;16811:4;16795:22;;;;;;;;;;;;;;;:58;;;;16692:169;;16650:211;:::o;16869:147::-;16947:17;16959:4;16947:7;;:11;;:17;;;;:::i;:::-;16937:7;:27;;;;16988:20;17003:4;16988:10;;:14;;:20;;;;:::i;:::-;16975:10;:33;;;;16869:147;;:::o;17694:471::-;17863:7;17885;17907;17942:12;17957:30;17983:3;17957:21;17969:8;17957:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;17942:45;;17998:13;18014:28;18038:3;18014:19;18026:6;18014:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17998:44;;18053:23;18079:28;18101:5;18079:17;18091:4;18079:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18053:54;;18128:15;18145:4;18151:5;18120:37;;;;;;;;;17694:471;;;;;;;:::o;18173:536::-;18367:7;18389;18411;18446:15;18464:24;18476:11;18464:7;:11;;:24;;;;:::i;:::-;18446:42;;18499:12;18514:21;18523:11;18514:4;:8;;:21;;;;:::i;:::-;18499:36;;18546:13;18562:22;18572:11;18562:5;:9;;:22;;;;:::i;:::-;18546:38;;18595:23;18621:28;18643:5;18621:17;18633:4;18621:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18595:54;;18670:7;18679:15;18696:4;18662:39;;;;;;;;;;18173:536;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;440:139;;;;:::o;585:329::-;644:6;693:2;681:9;672:7;668:23;664:32;661:119;;;699:79;;:::i;:::-;661:119;819:1;844:53;889:7;880:6;869:9;865:22;844:53;:::i;:::-;834:63;;790:117;585:329;;;;:::o;920:351::-;990:6;1039:2;1027:9;1018:7;1014:23;1010:32;1007:119;;;1045:79;;:::i;:::-;1007:119;1165:1;1190:64;1246:7;1237:6;1226:9;1222:22;1190:64;:::i;:::-;1180:74;;1136:128;920:351;;;;:::o;1277:474::-;1345:6;1353;1402:2;1390:9;1381:7;1377:23;1373:32;1370:119;;;1408:79;;:::i;:::-;1370:119;1528:1;1553:53;1598:7;1589:6;1578:9;1574:22;1553:53;:::i;:::-;1543:63;;1499:117;1655:2;1681:53;1726:7;1717:6;1706:9;1702:22;1681:53;:::i;:::-;1671:63;;1626:118;1277:474;;;;;:::o;1757:619::-;1834:6;1842;1850;1899:2;1887:9;1878:7;1874:23;1870:32;1867:119;;;1905:79;;:::i;:::-;1867:119;2025:1;2050:53;2095:7;2086:6;2075:9;2071:22;2050:53;:::i;:::-;2040:63;;1996:117;2152:2;2178:53;2223:7;2214:6;2203:9;2199:22;2178:53;:::i;:::-;2168:63;;2123:118;2280:2;2306:53;2351:7;2342:6;2331:9;2327:22;2306:53;:::i;:::-;2296:63;;2251:118;1757:619;;;;;:::o;2382:474::-;2450:6;2458;2507:2;2495:9;2486:7;2482:23;2478:32;2475:119;;;2513:79;;:::i;:::-;2475:119;2633:1;2658:53;2703:7;2694:6;2683:9;2679:22;2658:53;:::i;:::-;2648:63;;2604:117;2760:2;2786:53;2831:7;2822:6;2811:9;2807:22;2786:53;:::i;:::-;2776:63;;2731:118;2382:474;;;;;:::o;2862:323::-;2918:6;2967:2;2955:9;2946:7;2942:23;2938:32;2935:119;;;2973:79;;:::i;:::-;2935:119;3093:1;3118:50;3160:7;3151:6;3140:9;3136:22;3118:50;:::i;:::-;3108:60;;3064:114;2862:323;;;;:::o;3191:329::-;3250:6;3299:2;3287:9;3278:7;3274:23;3270:32;3267:119;;;3305:79;;:::i;:::-;3267:119;3425:1;3450:53;3495:7;3486:6;3475:9;3471:22;3450:53;:::i;:::-;3440:63;;3396:117;3191:329;;;;:::o;3526:474::-;3594:6;3602;3651:2;3639:9;3630:7;3626:23;3622:32;3619:119;;;3657:79;;:::i;:::-;3619:119;3777:1;3802:53;3847:7;3838:6;3827:9;3823:22;3802:53;:::i;:::-;3792:63;;3748:117;3904:2;3930:53;3975:7;3966:6;3955:9;3951:22;3930:53;:::i;:::-;3920:63;;3875:118;3526:474;;;;;:::o;4006:179::-;4075:10;4096:46;4138:3;4130:6;4096:46;:::i;:::-;4174:4;4169:3;4165:14;4151:28;;4006:179;;;;:::o;4191:108::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4191:108;;:::o;4305:118::-;4392:24;4410:5;4392:24;:::i;:::-;4387:3;4380:37;4305:118;;:::o;4459:732::-;4578:3;4607:54;4655:5;4607:54;:::i;:::-;4677:86;4756:6;4751:3;4677:86;:::i;:::-;4670:93;;4787:56;4837:5;4787:56;:::i;:::-;4866:7;4897:1;4882:284;4907:6;4904:1;4901:13;4882:284;;;4983:6;4977:13;5010:63;5069:3;5054:13;5010:63;:::i;:::-;5003:70;;5096:60;5149:6;5096:60;:::i;:::-;5086:70;;4942:224;4929:1;4926;4922:9;4917:14;;4882:284;;;4886:14;5182:3;5175:10;;4583:608;;;4459:732;;;;:::o;5197:109::-;5278:21;5293:5;5278:21;:::i;:::-;5273:3;5266:34;5197:109;;:::o;5312:183::-;5425:63;5482:5;5425:63;:::i;:::-;5420:3;5413:76;5312:183;;:::o;5501:147::-;5596:45;5635:5;5596:45;:::i;:::-;5591:3;5584:58;5501:147;;:::o;5654:364::-;5742:3;5770:39;5803:5;5770:39;:::i;:::-;5825:71;5889:6;5884:3;5825:71;:::i;:::-;5818:78;;5905:52;5950:6;5945:3;5938:4;5931:5;5927:16;5905:52;:::i;:::-;5982:29;6004:6;5982:29;:::i;:::-;5977:3;5973:39;5966:46;;5746:272;5654:364;;;;:::o;6024:366::-;6166:3;6187:67;6251:2;6246:3;6187:67;:::i;:::-;6180:74;;6263:93;6352:3;6263:93;:::i;:::-;6381:2;6376:3;6372:12;6365:19;;6024:366;;;:::o;6396:::-;6538:3;6559:67;6623:2;6618:3;6559:67;:::i;:::-;6552:74;;6635:93;6724:3;6635:93;:::i;:::-;6753:2;6748:3;6744:12;6737:19;;6396:366;;;:::o;6768:::-;6910:3;6931:67;6995:2;6990:3;6931:67;:::i;:::-;6924:74;;7007:93;7096:3;7007:93;:::i;:::-;7125:2;7120:3;7116:12;7109:19;;6768:366;;;:::o;7140:::-;7282:3;7303:67;7367:2;7362:3;7303:67;:::i;:::-;7296:74;;7379:93;7468:3;7379:93;:::i;:::-;7497:2;7492:3;7488:12;7481:19;;7140:366;;;:::o;7512:::-;7654:3;7675:67;7739:2;7734:3;7675:67;:::i;:::-;7668:74;;7751:93;7840:3;7751:93;:::i;:::-;7869:2;7864:3;7860:12;7853:19;;7512:366;;;:::o;7884:::-;8026:3;8047:67;8111:2;8106:3;8047:67;:::i;:::-;8040:74;;8123:93;8212:3;8123:93;:::i;:::-;8241:2;8236:3;8232:12;8225:19;;7884:366;;;:::o;8256:::-;8398:3;8419:67;8483:2;8478:3;8419:67;:::i;:::-;8412:74;;8495:93;8584:3;8495:93;:::i;:::-;8613:2;8608:3;8604:12;8597:19;;8256:366;;;:::o;8628:::-;8770:3;8791:67;8855:2;8850:3;8791:67;:::i;:::-;8784:74;;8867:93;8956:3;8867:93;:::i;:::-;8985:2;8980:3;8976:12;8969:19;;8628:366;;;:::o;9000:::-;9142:3;9163:67;9227:2;9222:3;9163:67;:::i;:::-;9156:74;;9239:93;9328:3;9239:93;:::i;:::-;9357:2;9352:3;9348:12;9341:19;;9000:366;;;:::o;9372:::-;9514:3;9535:67;9599:2;9594:3;9535:67;:::i;:::-;9528:74;;9611:93;9700:3;9611:93;:::i;:::-;9729:2;9724:3;9720:12;9713:19;;9372:366;;;:::o;9744:::-;9886:3;9907:67;9971:2;9966:3;9907:67;:::i;:::-;9900:74;;9983:93;10072:3;9983:93;:::i;:::-;10101:2;10096:3;10092:12;10085:19;;9744:366;;;:::o;10116:::-;10258:3;10279:67;10343:2;10338:3;10279:67;:::i;:::-;10272:74;;10355:93;10444:3;10355:93;:::i;:::-;10473:2;10468:3;10464:12;10457:19;;10116:366;;;:::o;10488:::-;10630:3;10651:67;10715:2;10710:3;10651:67;:::i;:::-;10644:74;;10727:93;10816:3;10727:93;:::i;:::-;10845:2;10840:3;10836:12;10829:19;;10488:366;;;:::o;10860:::-;11002:3;11023:67;11087:2;11082:3;11023:67;:::i;:::-;11016:74;;11099:93;11188:3;11099:93;:::i;:::-;11217:2;11212:3;11208:12;11201:19;;10860:366;;;:::o;11232:::-;11374:3;11395:67;11459:2;11454:3;11395:67;:::i;:::-;11388:74;;11471:93;11560:3;11471:93;:::i;:::-;11589:2;11584:3;11580:12;11573:19;;11232:366;;;:::o;11604:::-;11746:3;11767:67;11831:2;11826:3;11767:67;:::i;:::-;11760:74;;11843:93;11932:3;11843:93;:::i;:::-;11961:2;11956:3;11952:12;11945:19;;11604:366;;;:::o;11976:::-;12118:3;12139:67;12203:2;12198:3;12139:67;:::i;:::-;12132:74;;12215:93;12304:3;12215:93;:::i;:::-;12333:2;12328:3;12324:12;12317:19;;11976:366;;;:::o;12348:118::-;12435:24;12453:5;12435:24;:::i;:::-;12430:3;12423:37;12348:118;;:::o;12472:112::-;12555:22;12571:5;12555:22;:::i;:::-;12550:3;12543:35;12472:112;;:::o;12590:222::-;12683:4;12721:2;12710:9;12706:18;12698:26;;12734:71;12802:1;12791:9;12787:17;12778:6;12734:71;:::i;:::-;12590:222;;;;:::o;12818:210::-;12905:4;12943:2;12932:9;12928:18;12920:26;;12956:65;13018:1;13007:9;13003:17;12994:6;12956:65;:::i;:::-;12818:210;;;;:::o;13034:274::-;13153:4;13191:2;13180:9;13176:18;13168:26;;13204:97;13298:1;13287:9;13283:17;13274:6;13204:97;:::i;:::-;13034:274;;;;:::o;13314:313::-;13427:4;13465:2;13454:9;13450:18;13442:26;;13514:9;13508:4;13504:20;13500:1;13489:9;13485:17;13478:47;13542:78;13615:4;13606:6;13542:78;:::i;:::-;13534:86;;13314:313;;;;:::o;13633:419::-;13799:4;13837:2;13826:9;13822:18;13814:26;;13886:9;13880:4;13876:20;13872:1;13861:9;13857:17;13850:47;13914:131;14040:4;13914:131;:::i;:::-;13906:139;;13633:419;;;:::o;14058:::-;14224:4;14262:2;14251:9;14247:18;14239:26;;14311:9;14305:4;14301:20;14297:1;14286:9;14282:17;14275:47;14339:131;14465:4;14339:131;:::i;:::-;14331:139;;14058:419;;;:::o;14483:::-;14649:4;14687:2;14676:9;14672:18;14664:26;;14736:9;14730:4;14726:20;14722:1;14711:9;14707:17;14700:47;14764:131;14890:4;14764:131;:::i;:::-;14756:139;;14483:419;;;:::o;14908:::-;15074:4;15112:2;15101:9;15097:18;15089:26;;15161:9;15155:4;15151:20;15147:1;15136:9;15132:17;15125:47;15189:131;15315:4;15189:131;:::i;:::-;15181:139;;14908:419;;;:::o;15333:::-;15499:4;15537:2;15526:9;15522:18;15514:26;;15586:9;15580:4;15576:20;15572:1;15561:9;15557:17;15550:47;15614:131;15740:4;15614:131;:::i;:::-;15606:139;;15333:419;;;:::o;15758:::-;15924:4;15962:2;15951:9;15947:18;15939:26;;16011:9;16005:4;16001:20;15997:1;15986:9;15982:17;15975:47;16039:131;16165:4;16039:131;:::i;:::-;16031:139;;15758:419;;;:::o;16183:::-;16349:4;16387:2;16376:9;16372:18;16364:26;;16436:9;16430:4;16426:20;16422:1;16411:9;16407:17;16400:47;16464:131;16590:4;16464:131;:::i;:::-;16456:139;;16183:419;;;:::o;16608:::-;16774:4;16812:2;16801:9;16797:18;16789:26;;16861:9;16855:4;16851:20;16847:1;16836:9;16832:17;16825:47;16889:131;17015:4;16889:131;:::i;:::-;16881:139;;16608:419;;;:::o;17033:::-;17199:4;17237:2;17226:9;17222:18;17214:26;;17286:9;17280:4;17276:20;17272:1;17261:9;17257:17;17250:47;17314:131;17440:4;17314:131;:::i;:::-;17306:139;;17033:419;;;:::o;17458:::-;17624:4;17662:2;17651:9;17647:18;17639:26;;17711:9;17705:4;17701:20;17697:1;17686:9;17682:17;17675:47;17739:131;17865:4;17739:131;:::i;:::-;17731:139;;17458:419;;;:::o;17883:::-;18049:4;18087:2;18076:9;18072:18;18064:26;;18136:9;18130:4;18126:20;18122:1;18111:9;18107:17;18100:47;18164:131;18290:4;18164:131;:::i;:::-;18156:139;;17883:419;;;:::o;18308:::-;18474:4;18512:2;18501:9;18497:18;18489:26;;18561:9;18555:4;18551:20;18547:1;18536:9;18532:17;18525:47;18589:131;18715:4;18589:131;:::i;:::-;18581:139;;18308:419;;;:::o;18733:::-;18899:4;18937:2;18926:9;18922:18;18914:26;;18986:9;18980:4;18976:20;18972:1;18961:9;18957:17;18950:47;19014:131;19140:4;19014:131;:::i;:::-;19006:139;;18733:419;;;:::o;19158:::-;19324:4;19362:2;19351:9;19347:18;19339:26;;19411:9;19405:4;19401:20;19397:1;19386:9;19382:17;19375:47;19439:131;19565:4;19439:131;:::i;:::-;19431:139;;19158:419;;;:::o;19583:::-;19749:4;19787:2;19776:9;19772:18;19764:26;;19836:9;19830:4;19826:20;19822:1;19811:9;19807:17;19800:47;19864:131;19990:4;19864:131;:::i;:::-;19856:139;;19583:419;;;:::o;20008:::-;20174:4;20212:2;20201:9;20197:18;20189:26;;20261:9;20255:4;20251:20;20247:1;20236:9;20232:17;20225:47;20289:131;20415:4;20289:131;:::i;:::-;20281:139;;20008:419;;;:::o;20433:::-;20599:4;20637:2;20626:9;20622:18;20614:26;;20686:9;20680:4;20676:20;20672:1;20661:9;20657:17;20650:47;20714:131;20840:4;20714:131;:::i;:::-;20706:139;;20433:419;;;:::o;20858:222::-;20951:4;20989:2;20978:9;20974:18;20966:26;;21002:71;21070:1;21059:9;21055:17;21046:6;21002:71;:::i;:::-;20858:222;;;;:::o;21086:831::-;21349:4;21387:3;21376:9;21372:19;21364:27;;21401:71;21469:1;21458:9;21454:17;21445:6;21401:71;:::i;:::-;21482:80;21558:2;21547:9;21543:18;21534:6;21482:80;:::i;:::-;21609:9;21603:4;21599:20;21594:2;21583:9;21579:18;21572:48;21637:108;21740:4;21731:6;21637:108;:::i;:::-;21629:116;;21755:72;21823:2;21812:9;21808:18;21799:6;21755:72;:::i;:::-;21837:73;21905:3;21894:9;21890:19;21881:6;21837:73;:::i;:::-;21086:831;;;;;;;;:::o;21923:214::-;22012:4;22050:2;22039:9;22035:18;22027:26;;22063:67;22127:1;22116:9;22112:17;22103:6;22063:67;:::i;:::-;21923:214;;;;:::o;22224:132::-;22291:4;22314:3;22306:11;;22344:4;22339:3;22335:14;22327:22;;22224:132;;;:::o;22362:114::-;22429:6;22463:5;22457:12;22447:22;;22362:114;;;:::o;22482:99::-;22534:6;22568:5;22562:12;22552:22;;22482:99;;;:::o;22587:113::-;22657:4;22689;22684:3;22680:14;22672:22;;22587:113;;;:::o;22706:184::-;22805:11;22839:6;22834:3;22827:19;22879:4;22874:3;22870:14;22855:29;;22706:184;;;;:::o;22896:169::-;22980:11;23014:6;23009:3;23002:19;23054:4;23049:3;23045:14;23030:29;;22896:169;;;;:::o;23071:305::-;23111:3;23130:20;23148:1;23130:20;:::i;:::-;23125:25;;23164:20;23182:1;23164:20;:::i;:::-;23159:25;;23318:1;23250:66;23246:74;23243:1;23240:81;23237:107;;;23324:18;;:::i;:::-;23237:107;23368:1;23365;23361:9;23354:16;;23071:305;;;;:::o;23382:185::-;23422:1;23439:20;23457:1;23439:20;:::i;:::-;23434:25;;23473:20;23491:1;23473:20;:::i;:::-;23468:25;;23512:1;23502:35;;23517:18;;:::i;:::-;23502:35;23559:1;23556;23552:9;23547:14;;23382:185;;;;:::o;23573:348::-;23613:7;23636:20;23654:1;23636:20;:::i;:::-;23631:25;;23670:20;23688:1;23670:20;:::i;:::-;23665:25;;23858:1;23790:66;23786:74;23783:1;23780:81;23775:1;23768:9;23761:17;23757:105;23754:131;;;23865:18;;:::i;:::-;23754:131;23913:1;23910;23906:9;23895:20;;23573:348;;;;:::o;23927:191::-;23967:4;23987:20;24005:1;23987:20;:::i;:::-;23982:25;;24021:20;24039:1;24021:20;:::i;:::-;24016:25;;24060:1;24057;24054:8;24051:34;;;24065:18;;:::i;:::-;24051:34;24110:1;24107;24103:9;24095:17;;23927:191;;;;:::o;24124:96::-;24161:7;24190:24;24208:5;24190:24;:::i;:::-;24179:35;;24124:96;;;:::o;24226:90::-;24260:7;24303:5;24296:13;24289:21;24278:32;;24226:90;;;:::o;24322:126::-;24359:7;24399:42;24392:5;24388:54;24377:65;;24322:126;;;:::o;24454:77::-;24491:7;24520:5;24509:16;;24454:77;;;:::o;24537:86::-;24572:7;24612:4;24605:5;24601:16;24590:27;;24537:86;;;:::o;24629:152::-;24705:9;24738:37;24769:5;24738:37;:::i;:::-;24725:50;;24629:152;;;:::o;24787:121::-;24845:9;24878:24;24896:5;24878:24;:::i;:::-;24865:37;;24787:121;;;:::o;24914:126::-;24964:9;24997:37;25028:5;24997:37;:::i;:::-;24984:50;;24914:126;;;:::o;25046:113::-;25096:9;25129:24;25147:5;25129:24;:::i;:::-;25116:37;;25046:113;;;:::o;25165:307::-;25233:1;25243:113;25257:6;25254:1;25251:13;25243:113;;;25342:1;25337:3;25333:11;25327:18;25323:1;25318:3;25314:11;25307:39;25279:2;25276:1;25272:10;25267:15;;25243:113;;;25374:6;25371:1;25368:13;25365:101;;;25454:1;25445:6;25440:3;25436:16;25429:27;25365:101;25214:258;25165:307;;;:::o;25478:180::-;25526:77;25523:1;25516:88;25623:4;25620:1;25613:15;25647:4;25644:1;25637:15;25664:180;25712:77;25709:1;25702:88;25809:4;25806:1;25799:15;25833:4;25830:1;25823:15;25850:180;25898:77;25895:1;25888:88;25995:4;25992:1;25985:15;26019:4;26016:1;26009:15;26036:180;26084:77;26081:1;26074:88;26181:4;26178:1;26171:15;26205:4;26202:1;26195:15;26345:117;26454:1;26451;26444:12;26468:102;26509:6;26560:2;26556:7;26551:2;26544:5;26540:14;26536:28;26526:38;;26468:102;;;:::o;26576:222::-;26716:34;26712:1;26704:6;26700:14;26693:58;26785:5;26780:2;26772:6;26768:15;26761:30;26576:222;:::o;26804:174::-;26944:26;26940:1;26932:6;26928:14;26921:50;26804:174;:::o;26984:229::-;27124:34;27120:1;27112:6;27108:14;27101:58;27193:12;27188:2;27180:6;27176:15;27169:37;26984:229;:::o;27219:178::-;27359:30;27355:1;27347:6;27343:14;27336:54;27219:178;:::o;27403:225::-;27543:34;27539:1;27531:6;27527:14;27520:58;27612:8;27607:2;27599:6;27595:15;27588:33;27403:225;:::o;27634:221::-;27774:34;27770:1;27762:6;27758:14;27751:58;27843:4;27838:2;27830:6;27826:15;27819:29;27634:221;:::o;27861:165::-;28001:17;27997:1;27989:6;27985:14;27978:41;27861:165;:::o;28032:177::-;28172:29;28168:1;28160:6;28156:14;28149:53;28032:177;:::o;28215:239::-;28355:34;28351:1;28343:6;28339:14;28332:58;28424:22;28419:2;28411:6;28407:15;28400:47;28215:239;:::o;28460:220::-;28600:34;28596:1;28588:6;28584:14;28577:58;28669:3;28664:2;28656:6;28652:15;28645:28;28460:220;:::o;28686:182::-;28826:34;28822:1;28814:6;28810:14;28803:58;28686:182;:::o;28874:228::-;29014:34;29010:1;29002:6;28998:14;28991:58;29083:11;29078:2;29070:6;29066:15;29059:36;28874:228;:::o;29108:224::-;29248:34;29244:1;29236:6;29232:14;29225:58;29317:7;29312:2;29304:6;29300:15;29293:32;29108:224;:::o;29338:222::-;29478:34;29474:1;29466:6;29462:14;29455:58;29547:5;29542:2;29534:6;29530:15;29523:30;29338:222;:::o;29566:163::-;29706:15;29702:1;29694:6;29690:14;29683:39;29566:163;:::o;29735:223::-;29875:34;29871:1;29863:6;29859:14;29852:58;29944:6;29939:2;29931:6;29927:15;29920:31;29735:223;:::o;29964:162::-;30104:14;30100:1;30092:6;30088:14;30081:38;29964:162;:::o;30132:122::-;30205:24;30223:5;30205:24;:::i;:::-;30198:5;30195:35;30185:63;;30244:1;30241;30234:12;30185:63;30132:122;:::o;30260:116::-;30330:21;30345:5;30330:21;:::i;:::-;30323:5;30320:32;30310:60;;30366:1;30363;30356:12;30310:60;30260:116;:::o;30382:122::-;30455:24;30473:5;30455:24;:::i;:::-;30448:5;30445:35;30435:63;;30494:1;30491;30484:12;30435:63;30382:122;:::o

Swarm Source

ipfs://995ec47c0ead734a16386317e11eda7d02dcb19c9efc966cc1fb5b5d24834d85

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

A decentralized exchange and dividend generator.

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.