ETH Price: $3,482.25 (+0.53%)

Contract

0x618279c51Eec6BCfE46161a040Ee3b9c60619170
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $3,482.25/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Max Txn Amou...160932612022-12-01 23:32:47754 days ago1669937567IN
Legion Capital: LEGION Token
0 ETH0.0003316511.46312298
Set Fee160866622022-12-01 1:26:35755 days ago1669857995IN
Legion Capital: LEGION Token
0 ETH0.0005366913.68144282
Transfer160865322022-12-01 1:00:35755 days ago1669856435IN
Legion Capital: LEGION Token
0 ETH0.0009477811.77401573
Transfer160865292022-12-01 0:59:59755 days ago1669856399IN
Legion Capital: LEGION Token
0 ETH0.0032483614.08724864
Approve160848892022-11-30 19:28:23756 days ago1669836503IN
Legion Capital: LEGION Token
0 ETH0.0009573520.25675233
Approve160848612022-11-30 19:22:35756 days ago1669836155IN
Legion Capital: LEGION Token
0 ETH0.0009786920.70837576
Transfer160830432022-11-30 13:16:59756 days ago1669814219IN
Legion Capital: LEGION Token
0 ETH0.0011080313.76480334
Transfer160803572022-11-30 4:15:59756 days ago1669781759IN
Legion Capital: LEGION Token
0 ETH0.0009743511.69726359
Approve160802122022-11-30 3:46:47756 days ago1669780007IN
Legion Capital: LEGION Token
0 ETH0.000580612.28512303
Transfer160796022022-11-30 1:44:35756 days ago1669772675IN
Legion Capital: LEGION Token
0 ETH0.0008750910.87106658
Transfer160792992022-11-30 0:43:35756 days ago1669769015IN
Legion Capital: LEGION Token
0 ETH0.0027322432.03627902
Transfer160787722022-11-29 22:57:35756 days ago1669762655IN
Legion Capital: LEGION Token
0 ETH0.0009581711.90137694
Transfer160787702022-11-29 22:56:59756 days ago1669762619IN
Legion Capital: LEGION Token
0 ETH0.0010017111.74536808
Transfer160787612022-11-29 22:55:11756 days ago1669762511IN
Legion Capital: LEGION Token
0 ETH0.000972611.40081866
Transfer160787562022-11-29 22:54:11756 days ago1669762451IN
Legion Capital: LEGION Token
0 ETH0.0009553811.20218487
Transfer160787522022-11-29 22:53:23756 days ago1669762403IN
Legion Capital: LEGION Token
0 ETH0.0009417911.04274075
Transfer160787442022-11-29 22:51:47756 days ago1669762307IN
Legion Capital: LEGION Token
0 ETH0.0009118910.68913675
Transfer160767992022-11-29 16:20:23757 days ago1669738823IN
Legion Capital: LEGION Token
0 ETH0.0014410917.3005036
Approve160731542022-11-29 4:06:59757 days ago1669694819IN
Legion Capital: LEGION Token
0 ETH0.0005487911.61193446
Approve160714902022-11-28 22:31:47757 days ago1669674707IN
Legion Capital: LEGION Token
0 ETH0.0006267513.26156944
Approve160604422022-11-27 9:31:23759 days ago1669541483IN
Legion Capital: LEGION Token
0 ETH0.0005111210.81501824
Approve160557152022-11-26 17:41:11760 days ago1669484471IN
Legion Capital: LEGION Token
0 ETH0.0006046412.7938184
Transfer160503022022-11-25 23:32:59760 days ago1669419179IN
Legion Capital: LEGION Token
0 ETH0.0009490611.39357088
Transfer160337512022-11-23 16:00:23763 days ago1669219223IN
Legion Capital: LEGION Token
0 ETH0.0033299414.61780099
Approve160304572022-11-23 4:57:35763 days ago1669179455IN
Legion Capital: LEGION Token
0 ETH0.0006067212.83783313
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
160865292022-12-01 0:59:59755 days ago1669856399
Legion Capital: LEGION Token
0.21373387 ETH
160865292022-12-01 0:59:59755 days ago1669856399
Legion Capital: LEGION Token
0.21373387 ETH
160865292022-12-01 0:59:59755 days ago1669856399
Legion Capital: LEGION Token
0.42746775 ETH
160848912022-11-30 19:28:47756 days ago1669836527
Legion Capital: LEGION Token
0.22457374 ETH
160848912022-11-30 19:28:47756 days ago1669836527
Legion Capital: LEGION Token
0.22457374 ETH
160848912022-11-30 19:28:47756 days ago1669836527
Legion Capital: LEGION Token
0.44914748 ETH
160848612022-11-30 19:22:35756 days ago1669836155
Legion Capital: LEGION Token
0.22457374 ETH
160848612022-11-30 19:22:35756 days ago1669836155
Legion Capital: LEGION Token
0.22457374 ETH
160848612022-11-30 19:22:35756 days ago1669836155
Legion Capital: LEGION Token
0.44914748 ETH
160731572022-11-29 4:07:35757 days ago1669694855
Legion Capital: LEGION Token
0.22020184 ETH
160731572022-11-29 4:07:35757 days ago1669694855
Legion Capital: LEGION Token
0.22020184 ETH
160731572022-11-29 4:07:35757 days ago1669694855
Legion Capital: LEGION Token
0.44040368 ETH
160700142022-11-28 17:34:59758 days ago1669656899
Legion Capital: LEGION Token
0.22929483 ETH
160700142022-11-28 17:34:59758 days ago1669656899
Legion Capital: LEGION Token
0.22929483 ETH
160700142022-11-28 17:34:59758 days ago1669656899
Legion Capital: LEGION Token
0.45858967 ETH
160337512022-11-23 16:00:23763 days ago1669219223
Legion Capital: LEGION Token
0.27212388 ETH
160337512022-11-23 16:00:23763 days ago1669219223
Legion Capital: LEGION Token
0.27212388 ETH
160337512022-11-23 16:00:23763 days ago1669219223
Legion Capital: LEGION Token
0.54424776 ETH
160304812022-11-23 5:02:23763 days ago1669179743
Legion Capital: LEGION Token
0.42910889 ETH
160304812022-11-23 5:02:23763 days ago1669179743
Legion Capital: LEGION Token
0.42910889 ETH
160304812022-11-23 5:02:23763 days ago1669179743
Legion Capital: LEGION Token
0.85821779 ETH
159543962022-11-12 14:01:23774 days ago1668261683
Legion Capital: LEGION Token
0.20050756 ETH
159543962022-11-12 14:01:23774 days ago1668261683
Legion Capital: LEGION Token
0.20050756 ETH
159543962022-11-12 14:01:23774 days ago1668261683
Legion Capital: LEGION Token
0.40101513 ETH
158983982022-11-04 18:18:47782 days ago1667585927
Legion Capital: LEGION Token
0.32851916 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LEGIONCAPITAL

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-01
*/

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

     /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }


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

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 LEGIONCAPITAL is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Legion Capital";
    string private constant _symbol = "LEGION";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 0;
    
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    
    mapping(address => bool) public bots;
    mapping (address => bool) public preTrader;
    mapping(address => uint256) private cooldown;
    
    address payable private _developmentAddress = payable(0xa6fc46fa154CAC08901D2D533a4e3d1df29620b0);
    address payable private _marketingAddress = payable(0xa6fc46fa154CAC08901D2D533a4e3d1df29620b0);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 10000000000 * 10**9; //100% wiill change to 2% after transfer
    uint256 public _maxWalletSize = 500000000 * 10**9; //5
    uint256 public _swapTokensAtAmount = 1000000 * 10**9; //0.01

    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[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        
        preTrader[owner()] = 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) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        
        _redisFee = 0;
        _taxFee = 0;
    }

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

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

        if (from != owner() && to != owner()) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
              
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                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)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
        }

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

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

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

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

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

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    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 setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    //Set MAx transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

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":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","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":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","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":[{"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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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"}]

6080604052678ac7230489e800006000196200001c91906200089d565b6000196200002b919062000824565b600655600060085560006009556000600a556000600b55600a54600c55600b54600d55600c54600e55600d54600f5573a6fc46fa154cac08901d2d533a4e3d1df29620b0601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a6fc46fa154cac08901d2d533a4e3d1df29620b0601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff021916908315150217905550678ac7230489e800006017556706f05b59d3b2000060185566038d7ea4c680006019553480156200016957600080fd5b5060006200017c6200073e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002316200073e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031057600080fd5b505afa15801562000325573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034b919062000786565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ae57600080fd5b505afa158015620003c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e9919062000786565b6040518363ffffffff1660e01b815260040162000408929190620007da565b602060405180830381600087803b1580156200042357600080fd5b505af115801562000438573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045e919062000786565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004b46200074660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000620006676200074660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006c86200073e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e800006040516200072f919062000807565b60405180910390a35062000952565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620007808162000938565b92915050565b6000602082840312156200079f576200079e62000933565b5b6000620007af848285016200076f565b91505092915050565b620007c3816200085f565b82525050565b620007d48162000893565b82525050565b6000604082019050620007f16000830185620007b8565b620008006020830184620007b8565b9392505050565b60006020820190506200081e6000830184620007c9565b92915050565b6000620008318262000893565b91506200083e8362000893565b925082821015620008545762000853620008d5565b5b828203905092915050565b60006200086c8262000873565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620008aa8262000893565b9150620008b78362000893565b925082620008ca57620008c962000904565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b62000943816200085f565b81146200094f57600080fd5b50565b613df080620009626000396000f3fe6080604052600436106101d05760003560e01c806374010ece116100f7578063a2a957bb11610095578063c3c8cd8011610064578063c3c8cd801461066e578063dd62ed3e14610685578063ea1644d5146106c2578063f2fde38b146106eb576101d7565b8063a2a957bb1461058e578063a9059cbb146105b7578063bdd795ef146105f4578063bfd7928414610631576101d7565b80638f70ccf7116100d15780638f70ccf7146104e65780638f9a55c01461050f57806395d89b411461053a57806398a5c31514610565576101d7565b806374010ece146104675780637d1db4a5146104905780638da5cb5b146104bb576101d7565b80632fd689e31161016f5780636d8aa8f81161013e5780636d8aa8f8146103d35780636fc3eaec146103fc57806370a0823114610413578063715018a614610450576101d7565b80632fd689e314610329578063313ce5671461035457806349bd5a5e1461037f5780636b999053146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632f9c456914610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612e4c565b610714565b005b34801561021157600080fd5b5061021a61083e565b60405161022791906132cc565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612e0c565b61087b565b6040516102649190613296565b60405180910390f35b34801561027957600080fd5b50610282610899565b60405161028f91906132b1565b60405180910390f35b3480156102a457600080fd5b506102ad6108bf565b6040516102ba91906134ce565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612d79565b6108cf565b6040516102f79190613296565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190612dcc565b6109a8565b005b34801561033557600080fd5b5061033e610b2b565b60405161034b91906134ce565b60405180910390f35b34801561036057600080fd5b50610369610b31565b6040516103769190613543565b60405180910390f35b34801561038b57600080fd5b50610394610b3a565b6040516103a1919061327b565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190612cdf565b610b60565b005b3480156103df57600080fd5b506103fa60048036038101906103f59190612e95565b610c50565b005b34801561040857600080fd5b50610411610d01565b005b34801561041f57600080fd5b5061043a60048036038101906104359190612cdf565b610dd2565b60405161044791906134ce565b60405180910390f35b34801561045c57600080fd5b50610465610e23565b005b34801561047357600080fd5b5061048e60048036038101906104899190612ec2565b610f76565b005b34801561049c57600080fd5b506104a5611015565b6040516104b291906134ce565b60405180910390f35b3480156104c757600080fd5b506104d061101b565b6040516104dd919061327b565b60405180910390f35b3480156104f257600080fd5b5061050d60048036038101906105089190612e95565b611044565b005b34801561051b57600080fd5b506105246110f6565b60405161053191906134ce565b60405180910390f35b34801561054657600080fd5b5061054f6110fc565b60405161055c91906132cc565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190612ec2565b611139565b005b34801561059a57600080fd5b506105b560048036038101906105b09190612eef565b6111d8565b005b3480156105c357600080fd5b506105de60048036038101906105d99190612e0c565b61128f565b6040516105eb9190613296565b60405180910390f35b34801561060057600080fd5b5061061b60048036038101906106169190612cdf565b6112ad565b6040516106289190613296565b60405180910390f35b34801561063d57600080fd5b5061065860048036038101906106539190612cdf565b6112cd565b6040516106659190613296565b60405180910390f35b34801561067a57600080fd5b506106836112ed565b005b34801561069157600080fd5b506106ac60048036038101906106a79190612d39565b6113c6565b6040516106b991906134ce565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190612ec2565b61144d565b005b3480156106f757600080fd5b50610712600480360381019061070d9190612cdf565b6114ec565b005b61071c6116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a09061342e565b60405180910390fd5b60005b815181101561083a576001601060008484815181106107ce576107cd6138c1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108329061381a565b9150506107ac565b5050565b60606040518060400160405280600e81526020017f4c6567696f6e204361706974616c000000000000000000000000000000000000815250905090565b600061088f6108886116ae565b84846116b6565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000678ac7230489e80000905090565b60006108dc848484611881565b61099d846108e86116ae565b61099885604051806060016040528060288152602001613d9360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094e6116ae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120719092919063ffffffff16565b6116b6565b600190509392505050565b6109b06116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a349061342e565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac7906133ee565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b686116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec9061342e565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c586116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc9061342e565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d426116ae565b73ffffffffffffffffffffffffffffffffffffffff161480610db85750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da06116ae565b73ffffffffffffffffffffffffffffffffffffffff16145b610dc157600080fd5b6000479050610dcf816120d5565b50565b6000610e1c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d0565b9050919050565b610e2b6116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaf9061342e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f7e6116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110029061342e565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61104c6116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d09061342e565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600681526020017f4c4547494f4e0000000000000000000000000000000000000000000000000000815250905090565b6111416116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c59061342e565b60405180910390fd5b8060198190555050565b6111e06116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112649061342e565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112a361129c6116ae565b8484611881565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132e6116ae565b73ffffffffffffffffffffffffffffffffffffffff1614806113a45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661138c6116ae565b73ffffffffffffffffffffffffffffffffffffffff16145b6113ad57600080fd5b60006113b830610dd2565b90506113c38161223e565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114556116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d99061342e565b60405180910390fd5b8060188190555050565b6114f46116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611581576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115789061342e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e89061336e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d906134ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d9061338e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161187491906134ce565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e89061346e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611961576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611958906132ee565b60405180910390fd5b600081116119a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199b9061344e565b60405180910390fd5b6119ac61101b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a1a57506119ea61101b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d7057601660149054906101000a900460ff16611ac057601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab69061330e565b60405180910390fd5b5b601754811115611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc9061334e565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ba95750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdf906133ae565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c955760185481611c4a84610dd2565b611c549190613604565b10611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b9061348e565b60405180910390fd5b5b6000611ca030610dd2565b9050600060195482101590506017548210611cbb5760175491505b808015611cd55750601660159054906101000a900460ff16155b8015611d2f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d45575060168054906101000a900460ff165b15611d6d57611d538261223e565b60004790506000811115611d6b57611d6a476120d5565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e175750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611eca5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ec95750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ed8576000905061205f565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f835750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f9b57600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120465750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561205e57600a54600c81905550600b54600d819055505b5b61206b848484846124c6565b50505050565b60008383111582906120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b091906132cc565b60405180910390fd5b50600083856120c891906136e5565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121256002846124f390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612150573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121a16002846124f390919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121cc573d6000803e3d6000fd5b5050565b6000600654821115612217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220e9061332e565b60405180910390fd5b600061222161253d565b905061223681846124f390919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612276576122756138f0565b5b6040519080825280602002602001820160405280156122a45781602001602082028036833780820191505090505b50905030816000815181106122bc576122bb6138c1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561235e57600080fd5b505afa158015612372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123969190612d0c565b816001815181106123aa576123a96138c1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061241130601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116b6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124759594939291906134e9565b600060405180830381600087803b15801561248f57600080fd5b505af11580156124a3573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806124d4576124d3612568565b5b6124df8484846125ab565b806124ed576124ec612776565b5b50505050565b600061253583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061278a565b905092915050565b600080600061254a6127ed565b9150915061256181836124f390919063ffffffff16565b9250505090565b6000600c5414801561257c57506000600d54145b15612586576125a9565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806125bd8761284c565b95509550955095509550955061261b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126b085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fe90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126fc8161295c565b6127068483612a19565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161276391906134ce565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080831182906127d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c891906132cc565b60405180910390fd5b50600083856127e0919061365a565b9050809150509392505050565b600080600060065490506000678ac7230489e800009050612821678ac7230489e800006006546124f390919063ffffffff16565b82101561283f57600654678ac7230489e80000935093505050612848565b81819350935050505b9091565b60008060008060008060008060006128698a600c54600d54612a53565b925092509250600061287961253d565b9050600080600061288c8e878787612ae9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612071565b905092915050565b600080828461290d9190613604565b905083811015612952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612949906133ce565b60405180910390fd5b8091505092915050565b600061296661253d565b9050600061297d8284612b7290919063ffffffff16565b90506129d181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fe90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612a2e826006546128b490919063ffffffff16565b600681905550612a49816007546128fe90919063ffffffff16565b6007819055505050565b600080600080612a7f6064612a71888a612b7290919063ffffffff16565b6124f390919063ffffffff16565b90506000612aa96064612a9b888b612b7290919063ffffffff16565b6124f390919063ffffffff16565b90506000612ad282612ac4858c6128b490919063ffffffff16565b6128b490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b028589612b7290919063ffffffff16565b90506000612b198689612b7290919063ffffffff16565b90506000612b308789612b7290919063ffffffff16565b90506000612b5982612b4b85876128b490919063ffffffff16565b6128b490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612b855760009050612be7565b60008284612b93919061368b565b9050828482612ba2919061365a565b14612be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd99061340e565b60405180910390fd5b809150505b92915050565b6000612c00612bfb84613583565b61355e565b90508083825260208201905082856020860282011115612c2357612c22613924565b5b60005b85811015612c535781612c398882612c5d565b845260208401935060208301925050600181019050612c26565b5050509392505050565b600081359050612c6c81613d4d565b92915050565b600081519050612c8181613d4d565b92915050565b600082601f830112612c9c57612c9b61391f565b5b8135612cac848260208601612bed565b91505092915050565b600081359050612cc481613d64565b92915050565b600081359050612cd981613d7b565b92915050565b600060208284031215612cf557612cf461392e565b5b6000612d0384828501612c5d565b91505092915050565b600060208284031215612d2257612d2161392e565b5b6000612d3084828501612c72565b91505092915050565b60008060408385031215612d5057612d4f61392e565b5b6000612d5e85828601612c5d565b9250506020612d6f85828601612c5d565b9150509250929050565b600080600060608486031215612d9257612d9161392e565b5b6000612da086828701612c5d565b9350506020612db186828701612c5d565b9250506040612dc286828701612cca565b9150509250925092565b60008060408385031215612de357612de261392e565b5b6000612df185828601612c5d565b9250506020612e0285828601612cb5565b9150509250929050565b60008060408385031215612e2357612e2261392e565b5b6000612e3185828601612c5d565b9250506020612e4285828601612cca565b9150509250929050565b600060208284031215612e6257612e6161392e565b5b600082013567ffffffffffffffff811115612e8057612e7f613929565b5b612e8c84828501612c87565b91505092915050565b600060208284031215612eab57612eaa61392e565b5b6000612eb984828501612cb5565b91505092915050565b600060208284031215612ed857612ed761392e565b5b6000612ee684828501612cca565b91505092915050565b60008060008060808587031215612f0957612f0861392e565b5b6000612f1787828801612cca565b9450506020612f2887828801612cca565b9350506040612f3987828801612cca565b9250506060612f4a87828801612cca565b91505092959194509250565b6000612f628383612f6e565b60208301905092915050565b612f7781613719565b82525050565b612f8681613719565b82525050565b6000612f97826135bf565b612fa181856135e2565b9350612fac836135af565b8060005b83811015612fdd578151612fc48882612f56565b9750612fcf836135d5565b925050600181019050612fb0565b5085935050505092915050565b612ff38161372b565b82525050565b6130028161376e565b82525050565b61301181613780565b82525050565b6000613022826135ca565b61302c81856135f3565b935061303c8185602086016137b6565b61304581613933565b840191505092915050565b600061305d6023836135f3565b915061306882613944565b604082019050919050565b6000613080603f836135f3565b915061308b82613993565b604082019050919050565b60006130a3602a836135f3565b91506130ae826139e2565b604082019050919050565b60006130c6601c836135f3565b91506130d182613a31565b602082019050919050565b60006130e96026836135f3565b91506130f482613a5a565b604082019050919050565b600061310c6022836135f3565b915061311782613aa9565b604082019050919050565b600061312f6023836135f3565b915061313a82613af8565b604082019050919050565b6000613152601b836135f3565b915061315d82613b47565b602082019050919050565b60006131756017836135f3565b915061318082613b70565b602082019050919050565b60006131986021836135f3565b91506131a382613b99565b604082019050919050565b60006131bb6020836135f3565b91506131c682613be8565b602082019050919050565b60006131de6029836135f3565b91506131e982613c11565b604082019050919050565b60006132016025836135f3565b915061320c82613c60565b604082019050919050565b60006132246023836135f3565b915061322f82613caf565b604082019050919050565b60006132476024836135f3565b915061325282613cfe565b604082019050919050565b61326681613757565b82525050565b61327581613761565b82525050565b60006020820190506132906000830184612f7d565b92915050565b60006020820190506132ab6000830184612fea565b92915050565b60006020820190506132c66000830184612ff9565b92915050565b600060208201905081810360008301526132e68184613017565b905092915050565b6000602082019050818103600083015261330781613050565b9050919050565b6000602082019050818103600083015261332781613073565b9050919050565b6000602082019050818103600083015261334781613096565b9050919050565b60006020820190508181036000830152613367816130b9565b9050919050565b60006020820190508181036000830152613387816130dc565b9050919050565b600060208201905081810360008301526133a7816130ff565b9050919050565b600060208201905081810360008301526133c781613122565b9050919050565b600060208201905081810360008301526133e781613145565b9050919050565b6000602082019050818103600083015261340781613168565b9050919050565b600060208201905081810360008301526134278161318b565b9050919050565b60006020820190508181036000830152613447816131ae565b9050919050565b60006020820190508181036000830152613467816131d1565b9050919050565b60006020820190508181036000830152613487816131f4565b9050919050565b600060208201905081810360008301526134a781613217565b9050919050565b600060208201905081810360008301526134c78161323a565b9050919050565b60006020820190506134e3600083018461325d565b92915050565b600060a0820190506134fe600083018861325d565b61350b6020830187613008565b818103604083015261351d8186612f8c565b905061352c6060830185612f7d565b613539608083018461325d565b9695505050505050565b6000602082019050613558600083018461326c565b92915050565b6000613568613579565b905061357482826137e9565b919050565b6000604051905090565b600067ffffffffffffffff82111561359e5761359d6138f0565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061360f82613757565b915061361a83613757565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561364f5761364e613863565b5b828201905092915050565b600061366582613757565b915061367083613757565b9250826136805761367f613892565b5b828204905092915050565b600061369682613757565b91506136a183613757565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136da576136d9613863565b5b828202905092915050565b60006136f082613757565b91506136fb83613757565b92508282101561370e5761370d613863565b5b828203905092915050565b600061372482613737565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061377982613792565b9050919050565b600061378b82613757565b9050919050565b600061379d826137a4565b9050919050565b60006137af82613737565b9050919050565b60005b838110156137d45780820151818401526020810190506137b9565b838111156137e3576000848401525b50505050565b6137f282613933565b810181811067ffffffffffffffff82111715613811576138106138f0565b5b80604052505050565b600061382582613757565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561385857613857613863565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613d5681613719565b8114613d6157600080fd5b50565b613d6d8161372b565b8114613d7857600080fd5b50565b613d8481613757565b8114613d8f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220277f4d60db8d51a0cc743fc0112071c2e70ee2fa82d015373d5a6fcd439f46a164736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c806374010ece116100f7578063a2a957bb11610095578063c3c8cd8011610064578063c3c8cd801461066e578063dd62ed3e14610685578063ea1644d5146106c2578063f2fde38b146106eb576101d7565b8063a2a957bb1461058e578063a9059cbb146105b7578063bdd795ef146105f4578063bfd7928414610631576101d7565b80638f70ccf7116100d15780638f70ccf7146104e65780638f9a55c01461050f57806395d89b411461053a57806398a5c31514610565576101d7565b806374010ece146104675780637d1db4a5146104905780638da5cb5b146104bb576101d7565b80632fd689e31161016f5780636d8aa8f81161013e5780636d8aa8f8146103d35780636fc3eaec146103fc57806370a0823114610413578063715018a614610450576101d7565b80632fd689e314610329578063313ce5671461035457806349bd5a5e1461037f5780636b999053146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632f9c456914610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612e4c565b610714565b005b34801561021157600080fd5b5061021a61083e565b60405161022791906132cc565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612e0c565b61087b565b6040516102649190613296565b60405180910390f35b34801561027957600080fd5b50610282610899565b60405161028f91906132b1565b60405180910390f35b3480156102a457600080fd5b506102ad6108bf565b6040516102ba91906134ce565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612d79565b6108cf565b6040516102f79190613296565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190612dcc565b6109a8565b005b34801561033557600080fd5b5061033e610b2b565b60405161034b91906134ce565b60405180910390f35b34801561036057600080fd5b50610369610b31565b6040516103769190613543565b60405180910390f35b34801561038b57600080fd5b50610394610b3a565b6040516103a1919061327b565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190612cdf565b610b60565b005b3480156103df57600080fd5b506103fa60048036038101906103f59190612e95565b610c50565b005b34801561040857600080fd5b50610411610d01565b005b34801561041f57600080fd5b5061043a60048036038101906104359190612cdf565b610dd2565b60405161044791906134ce565b60405180910390f35b34801561045c57600080fd5b50610465610e23565b005b34801561047357600080fd5b5061048e60048036038101906104899190612ec2565b610f76565b005b34801561049c57600080fd5b506104a5611015565b6040516104b291906134ce565b60405180910390f35b3480156104c757600080fd5b506104d061101b565b6040516104dd919061327b565b60405180910390f35b3480156104f257600080fd5b5061050d60048036038101906105089190612e95565b611044565b005b34801561051b57600080fd5b506105246110f6565b60405161053191906134ce565b60405180910390f35b34801561054657600080fd5b5061054f6110fc565b60405161055c91906132cc565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190612ec2565b611139565b005b34801561059a57600080fd5b506105b560048036038101906105b09190612eef565b6111d8565b005b3480156105c357600080fd5b506105de60048036038101906105d99190612e0c565b61128f565b6040516105eb9190613296565b60405180910390f35b34801561060057600080fd5b5061061b60048036038101906106169190612cdf565b6112ad565b6040516106289190613296565b60405180910390f35b34801561063d57600080fd5b5061065860048036038101906106539190612cdf565b6112cd565b6040516106659190613296565b60405180910390f35b34801561067a57600080fd5b506106836112ed565b005b34801561069157600080fd5b506106ac60048036038101906106a79190612d39565b6113c6565b6040516106b991906134ce565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190612ec2565b61144d565b005b3480156106f757600080fd5b50610712600480360381019061070d9190612cdf565b6114ec565b005b61071c6116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a09061342e565b60405180910390fd5b60005b815181101561083a576001601060008484815181106107ce576107cd6138c1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108329061381a565b9150506107ac565b5050565b60606040518060400160405280600e81526020017f4c6567696f6e204361706974616c000000000000000000000000000000000000815250905090565b600061088f6108886116ae565b84846116b6565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000678ac7230489e80000905090565b60006108dc848484611881565b61099d846108e86116ae565b61099885604051806060016040528060288152602001613d9360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094e6116ae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120719092919063ffffffff16565b6116b6565b600190509392505050565b6109b06116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a349061342e565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac7906133ee565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b686116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec9061342e565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c586116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc9061342e565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d426116ae565b73ffffffffffffffffffffffffffffffffffffffff161480610db85750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da06116ae565b73ffffffffffffffffffffffffffffffffffffffff16145b610dc157600080fd5b6000479050610dcf816120d5565b50565b6000610e1c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d0565b9050919050565b610e2b6116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaf9061342e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f7e6116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110029061342e565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61104c6116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d09061342e565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600681526020017f4c4547494f4e0000000000000000000000000000000000000000000000000000815250905090565b6111416116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c59061342e565b60405180910390fd5b8060198190555050565b6111e06116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112649061342e565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112a361129c6116ae565b8484611881565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132e6116ae565b73ffffffffffffffffffffffffffffffffffffffff1614806113a45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661138c6116ae565b73ffffffffffffffffffffffffffffffffffffffff16145b6113ad57600080fd5b60006113b830610dd2565b90506113c38161223e565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114556116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d99061342e565b60405180910390fd5b8060188190555050565b6114f46116ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611581576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115789061342e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e89061336e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d906134ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d9061338e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161187491906134ce565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e89061346e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611961576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611958906132ee565b60405180910390fd5b600081116119a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199b9061344e565b60405180910390fd5b6119ac61101b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a1a57506119ea61101b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d7057601660149054906101000a900460ff16611ac057601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab69061330e565b60405180910390fd5b5b601754811115611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc9061334e565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ba95750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdf906133ae565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c955760185481611c4a84610dd2565b611c549190613604565b10611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b9061348e565b60405180910390fd5b5b6000611ca030610dd2565b9050600060195482101590506017548210611cbb5760175491505b808015611cd55750601660159054906101000a900460ff16155b8015611d2f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d45575060168054906101000a900460ff165b15611d6d57611d538261223e565b60004790506000811115611d6b57611d6a476120d5565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e175750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611eca5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ec95750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ed8576000905061205f565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f835750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f9b57600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120465750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561205e57600a54600c81905550600b54600d819055505b5b61206b848484846124c6565b50505050565b60008383111582906120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b091906132cc565b60405180910390fd5b50600083856120c891906136e5565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121256002846124f390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612150573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121a16002846124f390919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121cc573d6000803e3d6000fd5b5050565b6000600654821115612217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220e9061332e565b60405180910390fd5b600061222161253d565b905061223681846124f390919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612276576122756138f0565b5b6040519080825280602002602001820160405280156122a45781602001602082028036833780820191505090505b50905030816000815181106122bc576122bb6138c1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561235e57600080fd5b505afa158015612372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123969190612d0c565b816001815181106123aa576123a96138c1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061241130601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116b6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124759594939291906134e9565b600060405180830381600087803b15801561248f57600080fd5b505af11580156124a3573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806124d4576124d3612568565b5b6124df8484846125ab565b806124ed576124ec612776565b5b50505050565b600061253583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061278a565b905092915050565b600080600061254a6127ed565b9150915061256181836124f390919063ffffffff16565b9250505090565b6000600c5414801561257c57506000600d54145b15612586576125a9565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806125bd8761284c565b95509550955095509550955061261b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126b085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fe90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126fc8161295c565b6127068483612a19565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161276391906134ce565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080831182906127d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c891906132cc565b60405180910390fd5b50600083856127e0919061365a565b9050809150509392505050565b600080600060065490506000678ac7230489e800009050612821678ac7230489e800006006546124f390919063ffffffff16565b82101561283f57600654678ac7230489e80000935093505050612848565b81819350935050505b9091565b60008060008060008060008060006128698a600c54600d54612a53565b925092509250600061287961253d565b9050600080600061288c8e878787612ae9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612071565b905092915050565b600080828461290d9190613604565b905083811015612952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612949906133ce565b60405180910390fd5b8091505092915050565b600061296661253d565b9050600061297d8284612b7290919063ffffffff16565b90506129d181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fe90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612a2e826006546128b490919063ffffffff16565b600681905550612a49816007546128fe90919063ffffffff16565b6007819055505050565b600080600080612a7f6064612a71888a612b7290919063ffffffff16565b6124f390919063ffffffff16565b90506000612aa96064612a9b888b612b7290919063ffffffff16565b6124f390919063ffffffff16565b90506000612ad282612ac4858c6128b490919063ffffffff16565b6128b490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b028589612b7290919063ffffffff16565b90506000612b198689612b7290919063ffffffff16565b90506000612b308789612b7290919063ffffffff16565b90506000612b5982612b4b85876128b490919063ffffffff16565b6128b490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612b855760009050612be7565b60008284612b93919061368b565b9050828482612ba2919061365a565b14612be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd99061340e565b60405180910390fd5b809150505b92915050565b6000612c00612bfb84613583565b61355e565b90508083825260208201905082856020860282011115612c2357612c22613924565b5b60005b85811015612c535781612c398882612c5d565b845260208401935060208301925050600181019050612c26565b5050509392505050565b600081359050612c6c81613d4d565b92915050565b600081519050612c8181613d4d565b92915050565b600082601f830112612c9c57612c9b61391f565b5b8135612cac848260208601612bed565b91505092915050565b600081359050612cc481613d64565b92915050565b600081359050612cd981613d7b565b92915050565b600060208284031215612cf557612cf461392e565b5b6000612d0384828501612c5d565b91505092915050565b600060208284031215612d2257612d2161392e565b5b6000612d3084828501612c72565b91505092915050565b60008060408385031215612d5057612d4f61392e565b5b6000612d5e85828601612c5d565b9250506020612d6f85828601612c5d565b9150509250929050565b600080600060608486031215612d9257612d9161392e565b5b6000612da086828701612c5d565b9350506020612db186828701612c5d565b9250506040612dc286828701612cca565b9150509250925092565b60008060408385031215612de357612de261392e565b5b6000612df185828601612c5d565b9250506020612e0285828601612cb5565b9150509250929050565b60008060408385031215612e2357612e2261392e565b5b6000612e3185828601612c5d565b9250506020612e4285828601612cca565b9150509250929050565b600060208284031215612e6257612e6161392e565b5b600082013567ffffffffffffffff811115612e8057612e7f613929565b5b612e8c84828501612c87565b91505092915050565b600060208284031215612eab57612eaa61392e565b5b6000612eb984828501612cb5565b91505092915050565b600060208284031215612ed857612ed761392e565b5b6000612ee684828501612cca565b91505092915050565b60008060008060808587031215612f0957612f0861392e565b5b6000612f1787828801612cca565b9450506020612f2887828801612cca565b9350506040612f3987828801612cca565b9250506060612f4a87828801612cca565b91505092959194509250565b6000612f628383612f6e565b60208301905092915050565b612f7781613719565b82525050565b612f8681613719565b82525050565b6000612f97826135bf565b612fa181856135e2565b9350612fac836135af565b8060005b83811015612fdd578151612fc48882612f56565b9750612fcf836135d5565b925050600181019050612fb0565b5085935050505092915050565b612ff38161372b565b82525050565b6130028161376e565b82525050565b61301181613780565b82525050565b6000613022826135ca565b61302c81856135f3565b935061303c8185602086016137b6565b61304581613933565b840191505092915050565b600061305d6023836135f3565b915061306882613944565b604082019050919050565b6000613080603f836135f3565b915061308b82613993565b604082019050919050565b60006130a3602a836135f3565b91506130ae826139e2565b604082019050919050565b60006130c6601c836135f3565b91506130d182613a31565b602082019050919050565b60006130e96026836135f3565b91506130f482613a5a565b604082019050919050565b600061310c6022836135f3565b915061311782613aa9565b604082019050919050565b600061312f6023836135f3565b915061313a82613af8565b604082019050919050565b6000613152601b836135f3565b915061315d82613b47565b602082019050919050565b60006131756017836135f3565b915061318082613b70565b602082019050919050565b60006131986021836135f3565b91506131a382613b99565b604082019050919050565b60006131bb6020836135f3565b91506131c682613be8565b602082019050919050565b60006131de6029836135f3565b91506131e982613c11565b604082019050919050565b60006132016025836135f3565b915061320c82613c60565b604082019050919050565b60006132246023836135f3565b915061322f82613caf565b604082019050919050565b60006132476024836135f3565b915061325282613cfe565b604082019050919050565b61326681613757565b82525050565b61327581613761565b82525050565b60006020820190506132906000830184612f7d565b92915050565b60006020820190506132ab6000830184612fea565b92915050565b60006020820190506132c66000830184612ff9565b92915050565b600060208201905081810360008301526132e68184613017565b905092915050565b6000602082019050818103600083015261330781613050565b9050919050565b6000602082019050818103600083015261332781613073565b9050919050565b6000602082019050818103600083015261334781613096565b9050919050565b60006020820190508181036000830152613367816130b9565b9050919050565b60006020820190508181036000830152613387816130dc565b9050919050565b600060208201905081810360008301526133a7816130ff565b9050919050565b600060208201905081810360008301526133c781613122565b9050919050565b600060208201905081810360008301526133e781613145565b9050919050565b6000602082019050818103600083015261340781613168565b9050919050565b600060208201905081810360008301526134278161318b565b9050919050565b60006020820190508181036000830152613447816131ae565b9050919050565b60006020820190508181036000830152613467816131d1565b9050919050565b60006020820190508181036000830152613487816131f4565b9050919050565b600060208201905081810360008301526134a781613217565b9050919050565b600060208201905081810360008301526134c78161323a565b9050919050565b60006020820190506134e3600083018461325d565b92915050565b600060a0820190506134fe600083018861325d565b61350b6020830187613008565b818103604083015261351d8186612f8c565b905061352c6060830185612f7d565b613539608083018461325d565b9695505050505050565b6000602082019050613558600083018461326c565b92915050565b6000613568613579565b905061357482826137e9565b919050565b6000604051905090565b600067ffffffffffffffff82111561359e5761359d6138f0565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061360f82613757565b915061361a83613757565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561364f5761364e613863565b5b828201905092915050565b600061366582613757565b915061367083613757565b9250826136805761367f613892565b5b828204905092915050565b600061369682613757565b91506136a183613757565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136da576136d9613863565b5b828202905092915050565b60006136f082613757565b91506136fb83613757565b92508282101561370e5761370d613863565b5b828203905092915050565b600061372482613737565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061377982613792565b9050919050565b600061378b82613757565b9050919050565b600061379d826137a4565b9050919050565b60006137af82613737565b9050919050565b60005b838110156137d45780820151818401526020810190506137b9565b838111156137e3576000848401525b50505050565b6137f282613933565b810181811067ffffffffffffffff82111715613811576138106138f0565b5b80604052505050565b600061382582613757565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561385857613857613863565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613d5681613719565b8114613d6157600080fd5b50565b613d6d8161372b565b8114613d7857600080fd5b50565b613d8481613757565b8114613d8f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220277f4d60db8d51a0cc743fc0112071c2e70ee2fa82d015373d5a6fcd439f46a164736f6c63430008070033

Deployed Bytecode Sourcemap

4218:13884:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13270:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6983:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7908:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5697:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7260:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8109:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17903:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6052:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7169:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5745:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13447:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17519:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13027:235;;;;;;;;;;;;;:::i;:::-;;7363:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1959:148;;;;;;;;;;;;;:::i;:::-;;17659:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5895:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1745:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12674:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5992:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7074:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17324:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16971:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7509:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5379:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5336:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12783:236;;;;;;;;;;;;;:::i;:::-;;7716:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17779:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1491:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13270:169;1882:12;:10;:12::i;:::-;1872:22;;:6;;;;;;;;;;:22;;;1864:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13346:9:::1;13341:91;13365:5;:12;13361:1;:16;13341:91;;;13416:4;13399;:14;13404:5;13410:1;13404:8;;;;;;;;:::i;:::-;;;;;;;;13399:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13379:3;;;;;:::i;:::-;;;;13341:91;;;;13270:169:::0;:::o;6983:83::-;7020:13;7053:5;;;;;;;;;;;;;;;;;7046:12;;6983:83;:::o;7908:193::-;8010:4;8032:39;8041:12;:10;:12::i;:::-;8055:7;8064:6;8032:8;:39::i;:::-;8089:4;8082:11;;7908:193;;;;:::o;5697:41::-;;;;;;;;;;;;;:::o;7260:95::-;7313:7;4782:19;7333:14;;7260:95;:::o;8109:446::-;8241:4;8258:36;8268:6;8276:9;8287:6;8258:9;:36::i;:::-;8305:220;8328:6;8349:12;:10;:12::i;:::-;8376:138;8432:6;8376:138;;;;;;;;;;;;;;;;;:11;:19;8388:6;8376:19;;;;;;;;;;;;;;;:33;8396:12;:10;:12::i;:::-;8376:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8305:8;:220::i;:::-;8543:4;8536:11;;8109:446;;;;;:::o;17903:196::-;1882:12;:10;:12::i;:::-;1872:22;;:6;;;;;;;;;;:22;;;1864:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18017:7:::1;17995:29;;:9;:18;18005:7;17995:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;17987:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;18084:7;18063:9;:18;18073:7;18063:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17903:196:::0;;:::o;6052:52::-;;;;:::o;7169:83::-;7210:5;4456:1;7228:16;;7169:83;:::o;5745:28::-;;;;;;;;;;;;;:::o;13447:92::-;1882:12;:10;:12::i;:::-;1872:22;;:6;;;;;;;;;;:22;;;1864:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13526:5:::1;13511:4;:12;13516:6;13511:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13447:92:::0;:::o;17519:101::-;1882:12;:10;:12::i;:::-;1872:22;;:6;;;;;;;;;;:22;;;1864:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17600:12:::1;17586:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;17519:101:::0;:::o;13027:235::-;13093:19;;;;;;;;;;;13077:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13132:17;;;;;;;;;;;13116:33;;:12;:10;:12::i;:::-;:33;;;13077:72;13069:81;;;;;;13161:26;13190:21;13161:50;;13222:32;13235:18;13222:12;:32::i;:::-;13058:204;13027:235::o;7363:138::-;7429:7;7456:37;7476:7;:16;7484:7;7476:16;;;;;;;;;;;;;;;;7456:19;:37::i;:::-;7449:44;;7363:138;;;:::o;1959:148::-;1882:12;:10;:12::i;:::-;1872:22;;:6;;;;;;;;;;:22;;;1864:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2066:1:::1;2029:40;;2050:6;::::0;::::1;;;;;;;;2029:40;;;;;;;;;;;;2097:1;2080:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1959:148::o:0;17659:108::-;1882:12;:10;:12::i;:::-;1872:22;;:6;;;;;;;;;;:22;;;1864:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17748:11:::1;17733:12;:26;;;;17659:108:::0;:::o;5895:49::-;;;;:::o;1745:79::-;1783:7;1810:6;;;;;;;;;;;1803:13;;1745:79;:::o;12674:101::-;1882:12;:10;:12::i;:::-;1872:22;;:6;;;;;;;;;;:22;;;1864:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12755:12:::1;12741:11;;:26;;;;;;;;;;;;;;;;;;12674:101:::0;:::o;5992:49::-;;;;:::o;7074:87::-;7113:13;7146:7;;;;;;;;;;;;;;;;;7139:14;;7074:87;:::o;17324:139::-;1882:12;:10;:12::i;:::-;1872:22;;:6;;;;;;;;;;:22;;;1864:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17437:18:::1;17415:19;:40;;;;17324:139:::0;:::o;16971:301::-;1882:12;:10;:12::i;:::-;1872:22;;:6;;;;;;;;;;:22;;;1864:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17122:13:::1;17105:14;:30;;;;17164:14;17146:15;:32;;;;17214:11;17199:12;:26;;;;17252:12;17236:13;:28;;;;16971:301:::0;;;;:::o;7509:199::-;7614:4;7636:42;7646:12;:10;:12::i;:::-;7660:9;7671:6;7636:9;:42::i;:::-;7696:4;7689:11;;7509:199;;;;:::o;5379:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5336:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12783:236::-;12849:19;;;;;;;;;;;12833:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12888:17;;;;;;;;;;;12872:33;;:12;:10;:12::i;:::-;:33;;;12833:72;12825:81;;;;;;12917:23;12943:24;12961:4;12943:9;:24::i;:::-;12917:50;;12978:33;12995:15;12978:16;:33::i;:::-;12814:205;12783:236::o;7716:184::-;7833:7;7865:11;:18;7877:5;7865:18;;;;;;;;;;;;;;;:27;7884:7;7865:27;;;;;;;;;;;;;;;;7858:34;;7716:184;;;;:::o;17779:115::-;1882:12;:10;:12::i;:::-;1872:22;;:6;;;;;;;;;;:22;;;1864:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17873:13:::1;17856:14;:30;;;;17779:115:::0;:::o;1491:244::-;1882:12;:10;:12::i;:::-;1872:22;;:6;;;;;;;;;;:22;;;1864:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1600:1:::1;1580:22;;:8;:22;;;;1572:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1690:8;1661:38;;1682:6;::::0;::::1;;;;;;;;1661:38;;;;;;;;;;;;1719:8;1710:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1491:244:::0;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;9258:369::-;9402:1;9385:19;;:5;:19;;;;9377:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9483:1;9464:21;;:7;:21;;;;9456:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9565:6;9535:11;:18;9547:5;9535:18;;;;;;;;;;;;;;;:27;9554:7;9535:27;;;;;;;;;;;;;;;:36;;;;9603:7;9587:32;;9596:5;9587:32;;;9612:6;9587:32;;;;;;:::i;:::-;;;;;;;;9258:369;;;:::o;9635:2372::-;9773:1;9757:18;;:4;:18;;;;9749:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9850:1;9836:16;;:2;:16;;;;9828:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9920:1;9911:6;:10;9903:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9992:7;:5;:7::i;:::-;9984:15;;:4;:15;;;;:32;;;;;10009:7;:5;:7::i;:::-;10003:13;;:2;:13;;;;9984:32;9980:1265;;;10085:11;;;;;;;;;;;10080:144;;10125:9;:15;10135:4;10125:15;;;;;;;;;;;;;;;;;;;;;;;;;10117:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10080:144;10272:12;;10262:6;:22;;10254:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10341:4;:10;10346:4;10341:10;;;;;;;;;;;;;;;;;;;;;;;;;10340:11;:24;;;;;10356:4;:8;10361:2;10356:8;;;;;;;;;;;;;;;;;;;;;;;;;10355:9;10340:24;10332:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10442:13;;;;;;;;;;;10436:19;;:2;:19;;;10433:146;;10509:14;;10500:6;10484:13;10494:2;10484:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10476:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10433:146;10607:28;10638:24;10656:4;10638:9;:24::i;:::-;10607:55;;10677:12;10716:19;;10692:20;:43;;10677:58;;10779:12;;10755:20;:36;10752:124;;10848:12;;10825:35;;10752:124;10908:7;:18;;;;;10920:6;;;;;;;;;;;10919:7;10908:18;:43;;;;;10938:13;;;;;;;;;;;10930:21;;:4;:21;;;;10908:43;:58;;;;;10955:11;;;;;;;;;;10908:58;10904:330;;;10987:38;11004:20;10987:16;:38::i;:::-;11044:26;11073:21;11044:50;;11138:1;11117:18;:22;11113:106;;;11164:35;11177:21;11164:12;:35::i;:::-;11113:106;10968:266;10904:330;10018:1227;;9980:1265;11265:12;11280:4;11265:19;;11329:18;:24;11348:4;11329:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11357:18;:22;11376:2;11357:22;;;;;;;;;;;;;;;;;;;;;;;;;11329:50;11328:102;;;;11393:13;;;;;;;;;;;11385:21;;:4;:21;;;;:44;;;;;11416:13;;;;;;;;;;;11410:19;;:2;:19;;;;11385:44;11328:102;11324:622;;;11457:5;11447:15;;11324:622;;;11552:13;;;;;;;;;;;11544:21;;:4;:21;;;:55;;;;;11583:15;;;;;;;;;;;11569:30;;:2;:30;;;;11544:55;11541:162;;;11632:14;;11620:9;:26;;;;11675:12;;11665:7;:22;;;;11541:162;11766:13;;;;;;;;;;;11760:19;;:2;:19;;;:55;;;;;11799:15;;;;;;;;;;;11783:32;;:4;:32;;;;11760:55;11756:165;;;11848:15;;11836:9;:27;;;;11892:13;;11882:7;:23;;;;11756:165;11324:622;11958:41;11973:4;11979:2;11983:6;11991:7;11958:14;:41::i;:::-;9738:2269;9635:2372;;;:::o;2469:224::-;2589:7;2622:1;2617;:6;;2625:12;2609:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2649:9;2665:1;2661;:5;;;;:::i;:::-;2649:17;;2684:1;2677:8;;;2469:224;;;;;:::o;12506:160::-;12563:19;;;;;;;;;;;:28;;:43;12592:13;12603:1;12592:6;:10;;:13;;;;:::i;:::-;12563:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12617:17;;;;;;;;;;;:26;;:41;12644:13;12655:1;12644:6;:10;;:13;;;;:::i;:::-;12617:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12506:160;:::o;8563:323::-;8658:7;8716;;8705;:18;;8683:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8804:19;8826:10;:8;:10::i;:::-;8804:32;;8854:24;8866:11;8854:7;:11;;:24;;;;:::i;:::-;8847:31;;;8563:323;;;:::o;12015:483::-;6214:4;6205:6;;:13;;;;;;;;;;;;;;;;;;12093:21:::1;12131:1;12117:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12093:40;;12162:4;12144;12149:1;12144:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12188:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12178:4;12183:1;12178:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12221:62;12238:4;12253:15;;;;;;;;;;;12271:11;12221:8;:62::i;:::-;12294:15;;;;;;;;;;;:66;;;12375:11;12401:1;12417:4;12444;12464:15;12294:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12082:416;6250:5:::0;6241:6;;:14;;;;;;;;;;;;;;;;;;12015:483;:::o;13547:282::-;13703:7;13698:28;;13712:14;:12;:14::i;:::-;13698:28;13737:44;13755:6;13763:9;13774:6;13737:17;:44::i;:::-;13797:7;13792:29;;13806:15;:13;:15::i;:::-;13792:29;13547:282;;;;:::o;2955:132::-;3013:7;3040:39;3044:1;3047;3040:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3033:46;;2955:132;;;;:::o;16522:166::-;16564:7;16585:15;16602;16621:19;:17;:19::i;:::-;16584:56;;;;16660:20;16672:7;16660;:11;;:20;;;;:::i;:::-;16653:27;;;;16522:166;:::o;8894:231::-;8954:1;8941:9;;:14;:30;;;;;8970:1;8959:7;;:12;8941:30;8937:43;;;8973:7;;8937:43;9016:9;;8996:17;:29;;;;9054:7;;9036:15;:25;;;;9094:1;9082:9;:13;;;;9116:1;9106:7;:11;;;;8894:231;:::o;13837:610::-;13984:15;14014:23;14052:12;14079:23;14117:12;14144:13;14171:19;14182:7;14171:10;:19::i;:::-;13969:221;;;;;;;;;;;;14219:28;14239:7;14219;:15;14227:6;14219:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14201:7;:15;14209:6;14201:15;;;;;;;;;;;;;;;:46;;;;14279:39;14302:15;14279:7;:18;14287:9;14279:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14258:7;:18;14266:9;14258:18;;;;;;;;;;;;;;;:60;;;;14329:16;14339:5;14329:9;:16::i;:::-;14356:23;14368:4;14374;14356:11;:23::i;:::-;14412:9;14395:44;;14404:6;14395:44;;;14423:15;14395:44;;;;;;:::i;:::-;;;;;;;;13958:489;;;;;;13837:610;;;:::o;9133:117::-;9189:17;;9177:9;:29;;;;9227:15;;9217:7;:25;;;;9133:117::o;3095:223::-;3215:7;3247:1;3243;:5;3250:12;3235:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3274:9;3290:1;3286;:5;;;;:::i;:::-;3274:17;;3309:1;3302:8;;;3095:223;;;;;:::o;16696:263::-;16747:7;16756;16776:15;16794:7;;16776:25;;16812:15;4782:19;16812:25;;16862:20;4782:19;16862:7;;:11;;:20;;;;:::i;:::-;16852:7;:30;16848:61;;;16892:7;;4782:19;16884:25;;;;;;;;16848:61;16934:7;16943;16926:25;;;;;;16696:263;;;:::o;14866:625::-;14966:7;14988;15010;15032;15054;15076;15112:23;15137:12;15151:13;15181:40;15193:7;15202:9;;15213:7;;15181:11;:40::i;:::-;15111:110;;;;;;15232:19;15254:10;:8;:10::i;:::-;15232:32;;15276:15;15293:23;15318:12;15347:46;15359:7;15368:4;15374:5;15381:11;15347;:46::i;:::-;15275:118;;;;;;15422:7;15431:15;15448:4;15454:15;15471:4;15477:5;15414:69;;;;;;;;;;;;;;;;;;;14866:625;;;;;;;:::o;2325:136::-;2383:7;2410:43;2414:1;2417;2410:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2403:50;;2325:136;;;;:::o;2138:179::-;2196:7;2216:9;2232:1;2228;:5;;;;:::i;:::-;2216:17;;2257:1;2252;:6;;2244:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2308:1;2301:8;;;2138:179;;;;:::o;14455:211::-;14508:19;14530:10;:8;:10::i;:::-;14508:32;;14551:13;14567:22;14577:11;14567:5;:9;;:22;;;;:::i;:::-;14551:38;;14625:33;14652:5;14625:7;:22;14641:4;14625:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14600:7;:22;14616:4;14600:22;;;;;;;;;;;;;;;:58;;;;14497:169;;14455:211;:::o;14674:147::-;14752:17;14764:4;14752:7;;:11;;:17;;;;:::i;:::-;14742:7;:27;;;;14793:20;14808:4;14793:10;;:14;;:20;;;;:::i;:::-;14780:10;:33;;;;14674:147;;:::o;15499:471::-;15668:7;15690;15712;15747:12;15762:30;15788:3;15762:21;15774:8;15762:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15747:45;;15803:13;15819:28;15843:3;15819:19;15831:6;15819:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15803:44;;15858:23;15884:28;15906:5;15884:17;15896:4;15884:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15858:54;;15933:15;15950:4;15956:5;15925:37;;;;;;;;;15499:471;;;;;;;:::o;15978:536::-;16172:7;16194;16216;16251:15;16269:24;16281:11;16269:7;:11;;:24;;;;:::i;:::-;16251:42;;16304:12;16319:21;16328:11;16319:4;:8;;:21;;;;:::i;:::-;16304:36;;16351:13;16367:22;16377:11;16367:5;:9;;:22;;;;:::i;:::-;16351:38;;16400:23;16426:28;16448:5;16426:17;16438:4;16426:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16400:54;;16475:7;16484:15;16501:4;16467:39;;;;;;;;;;15978:536;;;;;;;;:::o;2701:246::-;2759:7;2788:1;2783;:6;2779:47;;;2813:1;2806:8;;;;2779:47;2836:9;2852:1;2848;:5;;;;:::i;:::-;2836:17;;2881:1;2876;2872;:5;;;;:::i;:::-;:10;2864:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2938:1;2931:8;;;2701:246;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:133::-;1482:5;1520:6;1507:20;1498:29;;1536:30;1560:5;1536:30;:::i;:::-;1439:133;;;;:::o;1578:139::-;1624:5;1662:6;1649:20;1640:29;;1678:33;1705:5;1678:33;:::i;:::-;1578:139;;;;:::o;1723:329::-;1782:6;1831:2;1819:9;1810:7;1806:23;1802:32;1799:119;;;1837:79;;:::i;:::-;1799:119;1957:1;1982:53;2027:7;2018:6;2007:9;2003:22;1982:53;:::i;:::-;1972:63;;1928:117;1723:329;;;;:::o;2058:351::-;2128:6;2177:2;2165:9;2156:7;2152:23;2148:32;2145:119;;;2183:79;;:::i;:::-;2145:119;2303:1;2328:64;2384:7;2375:6;2364:9;2360:22;2328:64;:::i;:::-;2318:74;;2274:128;2058:351;;;;:::o;2415:474::-;2483:6;2491;2540:2;2528:9;2519:7;2515:23;2511:32;2508:119;;;2546:79;;:::i;:::-;2508:119;2666:1;2691:53;2736:7;2727:6;2716:9;2712:22;2691:53;:::i;:::-;2681:63;;2637:117;2793:2;2819:53;2864:7;2855:6;2844:9;2840:22;2819:53;:::i;:::-;2809:63;;2764:118;2415:474;;;;;:::o;2895:619::-;2972:6;2980;2988;3037:2;3025:9;3016:7;3012:23;3008:32;3005:119;;;3043:79;;:::i;:::-;3005:119;3163:1;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3134:117;3290:2;3316:53;3361:7;3352:6;3341:9;3337:22;3316:53;:::i;:::-;3306:63;;3261:118;3418:2;3444:53;3489:7;3480:6;3469:9;3465:22;3444:53;:::i;:::-;3434:63;;3389:118;2895:619;;;;;:::o;3520:468::-;3585:6;3593;3642:2;3630:9;3621:7;3617:23;3613:32;3610:119;;;3648:79;;:::i;:::-;3610:119;3768:1;3793:53;3838:7;3829:6;3818:9;3814:22;3793:53;:::i;:::-;3783:63;;3739:117;3895:2;3921:50;3963:7;3954:6;3943:9;3939:22;3921:50;:::i;:::-;3911:60;;3866:115;3520:468;;;;;:::o;3994:474::-;4062:6;4070;4119:2;4107:9;4098:7;4094:23;4090:32;4087:119;;;4125:79;;:::i;:::-;4087:119;4245:1;4270:53;4315:7;4306:6;4295:9;4291:22;4270:53;:::i;:::-;4260:63;;4216:117;4372:2;4398:53;4443:7;4434:6;4423:9;4419:22;4398:53;:::i;:::-;4388:63;;4343:118;3994:474;;;;;:::o;4474:539::-;4558:6;4607:2;4595:9;4586:7;4582:23;4578:32;4575:119;;;4613:79;;:::i;:::-;4575:119;4761:1;4750:9;4746:17;4733:31;4791:18;4783:6;4780:30;4777:117;;;4813:79;;:::i;:::-;4777:117;4918:78;4988:7;4979:6;4968:9;4964:22;4918:78;:::i;:::-;4908:88;;4704:302;4474:539;;;;:::o;5019:323::-;5075:6;5124:2;5112:9;5103:7;5099:23;5095:32;5092:119;;;5130:79;;:::i;:::-;5092:119;5250:1;5275:50;5317:7;5308:6;5297:9;5293:22;5275:50;:::i;:::-;5265:60;;5221:114;5019:323;;;;:::o;5348:329::-;5407:6;5456:2;5444:9;5435:7;5431:23;5427:32;5424:119;;;5462:79;;:::i;:::-;5424:119;5582:1;5607:53;5652:7;5643:6;5632:9;5628:22;5607:53;:::i;:::-;5597:63;;5553:117;5348:329;;;;:::o;5683:765::-;5769:6;5777;5785;5793;5842:3;5830:9;5821:7;5817:23;5813:33;5810:120;;;5849:79;;:::i;:::-;5810:120;5969:1;5994:53;6039:7;6030:6;6019:9;6015:22;5994:53;:::i;:::-;5984:63;;5940:117;6096:2;6122:53;6167:7;6158:6;6147:9;6143:22;6122:53;:::i;:::-;6112:63;;6067:118;6224:2;6250:53;6295:7;6286:6;6275:9;6271:22;6250:53;:::i;:::-;6240:63;;6195:118;6352:2;6378:53;6423:7;6414:6;6403:9;6399:22;6378:53;:::i;:::-;6368:63;;6323:118;5683:765;;;;;;;:::o;6454:179::-;6523:10;6544:46;6586:3;6578:6;6544:46;:::i;:::-;6622:4;6617:3;6613:14;6599:28;;6454:179;;;;:::o;6639:108::-;6716:24;6734:5;6716:24;:::i;:::-;6711:3;6704:37;6639:108;;:::o;6753:118::-;6840:24;6858:5;6840:24;:::i;:::-;6835:3;6828:37;6753:118;;:::o;6907:732::-;7026:3;7055:54;7103:5;7055:54;:::i;:::-;7125:86;7204:6;7199:3;7125:86;:::i;:::-;7118:93;;7235:56;7285:5;7235:56;:::i;:::-;7314:7;7345:1;7330:284;7355:6;7352:1;7349:13;7330:284;;;7431:6;7425:13;7458:63;7517:3;7502:13;7458:63;:::i;:::-;7451:70;;7544:60;7597:6;7544:60;:::i;:::-;7534:70;;7390:224;7377:1;7374;7370:9;7365:14;;7330:284;;;7334:14;7630:3;7623:10;;7031:608;;;6907:732;;;;:::o;7645:109::-;7726:21;7741:5;7726:21;:::i;:::-;7721:3;7714:34;7645:109;;:::o;7760:183::-;7873:63;7930:5;7873:63;:::i;:::-;7868:3;7861:76;7760:183;;:::o;7949:147::-;8044:45;8083:5;8044:45;:::i;:::-;8039:3;8032:58;7949:147;;:::o;8102:364::-;8190:3;8218:39;8251:5;8218:39;:::i;:::-;8273:71;8337:6;8332:3;8273:71;:::i;:::-;8266:78;;8353:52;8398:6;8393:3;8386:4;8379:5;8375:16;8353:52;:::i;:::-;8430:29;8452:6;8430:29;:::i;:::-;8425:3;8421:39;8414:46;;8194:272;8102:364;;;;:::o;8472:366::-;8614:3;8635:67;8699:2;8694:3;8635:67;:::i;:::-;8628:74;;8711:93;8800:3;8711:93;:::i;:::-;8829:2;8824:3;8820:12;8813:19;;8472:366;;;:::o;8844:::-;8986:3;9007:67;9071:2;9066:3;9007:67;:::i;:::-;9000:74;;9083:93;9172:3;9083:93;:::i;:::-;9201:2;9196:3;9192:12;9185:19;;8844:366;;;:::o;9216:::-;9358:3;9379:67;9443:2;9438:3;9379:67;:::i;:::-;9372:74;;9455:93;9544:3;9455:93;:::i;:::-;9573:2;9568:3;9564:12;9557:19;;9216:366;;;:::o;9588:::-;9730:3;9751:67;9815:2;9810:3;9751:67;:::i;:::-;9744:74;;9827:93;9916:3;9827:93;:::i;:::-;9945:2;9940:3;9936:12;9929:19;;9588:366;;;:::o;9960:::-;10102:3;10123:67;10187:2;10182:3;10123:67;:::i;:::-;10116:74;;10199:93;10288:3;10199:93;:::i;:::-;10317:2;10312:3;10308:12;10301:19;;9960:366;;;:::o;10332:::-;10474:3;10495:67;10559:2;10554:3;10495:67;:::i;:::-;10488:74;;10571:93;10660:3;10571:93;:::i;:::-;10689:2;10684:3;10680:12;10673:19;;10332:366;;;:::o;10704:::-;10846:3;10867:67;10931:2;10926:3;10867:67;:::i;:::-;10860:74;;10943:93;11032:3;10943:93;:::i;:::-;11061:2;11056:3;11052:12;11045:19;;10704:366;;;:::o;11076:::-;11218:3;11239:67;11303:2;11298:3;11239:67;:::i;:::-;11232:74;;11315:93;11404:3;11315:93;:::i;:::-;11433:2;11428:3;11424:12;11417:19;;11076:366;;;:::o;11448:::-;11590:3;11611:67;11675:2;11670:3;11611:67;:::i;:::-;11604:74;;11687:93;11776:3;11687:93;:::i;:::-;11805:2;11800:3;11796:12;11789:19;;11448:366;;;:::o;11820:::-;11962:3;11983:67;12047:2;12042:3;11983:67;:::i;:::-;11976:74;;12059:93;12148:3;12059:93;:::i;:::-;12177:2;12172:3;12168:12;12161:19;;11820:366;;;:::o;12192:::-;12334:3;12355:67;12419:2;12414:3;12355:67;:::i;:::-;12348:74;;12431:93;12520:3;12431:93;:::i;:::-;12549:2;12544:3;12540:12;12533:19;;12192:366;;;:::o;12564:::-;12706:3;12727:67;12791:2;12786:3;12727:67;:::i;:::-;12720:74;;12803:93;12892:3;12803:93;:::i;:::-;12921:2;12916:3;12912:12;12905:19;;12564:366;;;:::o;12936:::-;13078:3;13099:67;13163:2;13158:3;13099:67;:::i;:::-;13092:74;;13175:93;13264:3;13175:93;:::i;:::-;13293:2;13288:3;13284:12;13277:19;;12936:366;;;:::o;13308:::-;13450:3;13471:67;13535:2;13530:3;13471:67;:::i;:::-;13464:74;;13547:93;13636:3;13547:93;:::i;:::-;13665:2;13660:3;13656:12;13649:19;;13308:366;;;:::o;13680:::-;13822:3;13843:67;13907:2;13902:3;13843:67;:::i;:::-;13836:74;;13919:93;14008:3;13919:93;:::i;:::-;14037:2;14032:3;14028:12;14021:19;;13680:366;;;:::o;14052:118::-;14139:24;14157:5;14139:24;:::i;:::-;14134:3;14127:37;14052:118;;:::o;14176:112::-;14259:22;14275:5;14259:22;:::i;:::-;14254:3;14247:35;14176:112;;:::o;14294:222::-;14387:4;14425:2;14414:9;14410:18;14402:26;;14438:71;14506:1;14495:9;14491:17;14482:6;14438:71;:::i;:::-;14294:222;;;;:::o;14522:210::-;14609:4;14647:2;14636:9;14632:18;14624:26;;14660:65;14722:1;14711:9;14707:17;14698:6;14660:65;:::i;:::-;14522:210;;;;:::o;14738:274::-;14857:4;14895:2;14884:9;14880:18;14872:26;;14908:97;15002:1;14991:9;14987:17;14978:6;14908:97;:::i;:::-;14738:274;;;;:::o;15018:313::-;15131:4;15169:2;15158:9;15154:18;15146:26;;15218:9;15212:4;15208:20;15204:1;15193:9;15189:17;15182:47;15246:78;15319:4;15310:6;15246:78;:::i;:::-;15238:86;;15018:313;;;;:::o;15337:419::-;15503:4;15541:2;15530:9;15526:18;15518:26;;15590:9;15584:4;15580:20;15576:1;15565:9;15561:17;15554:47;15618:131;15744:4;15618:131;:::i;:::-;15610:139;;15337:419;;;:::o;15762:::-;15928:4;15966:2;15955:9;15951:18;15943:26;;16015:9;16009:4;16005:20;16001:1;15990:9;15986:17;15979:47;16043:131;16169:4;16043:131;:::i;:::-;16035:139;;15762:419;;;:::o;16187:::-;16353:4;16391:2;16380:9;16376:18;16368:26;;16440:9;16434:4;16430:20;16426:1;16415:9;16411:17;16404:47;16468:131;16594:4;16468:131;:::i;:::-;16460:139;;16187:419;;;:::o;16612:::-;16778:4;16816:2;16805:9;16801:18;16793:26;;16865:9;16859:4;16855:20;16851:1;16840:9;16836:17;16829:47;16893:131;17019:4;16893:131;:::i;:::-;16885:139;;16612:419;;;:::o;17037:::-;17203:4;17241:2;17230:9;17226:18;17218:26;;17290:9;17284:4;17280:20;17276:1;17265:9;17261:17;17254:47;17318:131;17444:4;17318:131;:::i;:::-;17310:139;;17037:419;;;:::o;17462:::-;17628:4;17666:2;17655:9;17651:18;17643:26;;17715:9;17709:4;17705:20;17701:1;17690:9;17686:17;17679:47;17743:131;17869:4;17743:131;:::i;:::-;17735:139;;17462:419;;;:::o;17887:::-;18053:4;18091:2;18080:9;18076:18;18068:26;;18140:9;18134:4;18130:20;18126:1;18115:9;18111:17;18104:47;18168:131;18294:4;18168:131;:::i;:::-;18160:139;;17887:419;;;:::o;18312:::-;18478:4;18516:2;18505:9;18501:18;18493:26;;18565:9;18559:4;18555:20;18551:1;18540:9;18536:17;18529:47;18593:131;18719:4;18593:131;:::i;:::-;18585:139;;18312:419;;;:::o;18737:::-;18903:4;18941:2;18930:9;18926:18;18918:26;;18990:9;18984:4;18980:20;18976:1;18965:9;18961:17;18954:47;19018:131;19144:4;19018:131;:::i;:::-;19010:139;;18737:419;;;:::o;19162:::-;19328:4;19366:2;19355:9;19351:18;19343:26;;19415:9;19409:4;19405:20;19401:1;19390:9;19386:17;19379:47;19443:131;19569:4;19443:131;:::i;:::-;19435:139;;19162:419;;;:::o;19587:::-;19753:4;19791:2;19780:9;19776:18;19768:26;;19840:9;19834:4;19830:20;19826:1;19815:9;19811:17;19804:47;19868:131;19994:4;19868:131;:::i;:::-;19860:139;;19587:419;;;:::o;20012:::-;20178:4;20216:2;20205:9;20201:18;20193:26;;20265:9;20259:4;20255:20;20251:1;20240:9;20236:17;20229:47;20293:131;20419:4;20293:131;:::i;:::-;20285:139;;20012:419;;;:::o;20437:::-;20603:4;20641:2;20630:9;20626:18;20618:26;;20690:9;20684:4;20680:20;20676:1;20665:9;20661:17;20654:47;20718:131;20844:4;20718:131;:::i;:::-;20710:139;;20437:419;;;:::o;20862:::-;21028:4;21066:2;21055:9;21051:18;21043:26;;21115:9;21109:4;21105:20;21101:1;21090:9;21086:17;21079:47;21143:131;21269:4;21143:131;:::i;:::-;21135:139;;20862:419;;;:::o;21287:::-;21453:4;21491:2;21480:9;21476:18;21468:26;;21540:9;21534:4;21530:20;21526:1;21515:9;21511:17;21504:47;21568:131;21694:4;21568:131;:::i;:::-;21560:139;;21287:419;;;:::o;21712:222::-;21805:4;21843:2;21832:9;21828:18;21820:26;;21856:71;21924:1;21913:9;21909:17;21900:6;21856:71;:::i;:::-;21712:222;;;;:::o;21940:831::-;22203:4;22241:3;22230:9;22226:19;22218:27;;22255:71;22323:1;22312:9;22308:17;22299:6;22255:71;:::i;:::-;22336:80;22412:2;22401:9;22397:18;22388:6;22336:80;:::i;:::-;22463:9;22457:4;22453:20;22448:2;22437:9;22433:18;22426:48;22491:108;22594:4;22585:6;22491:108;:::i;:::-;22483:116;;22609:72;22677:2;22666:9;22662:18;22653:6;22609:72;:::i;:::-;22691:73;22759:3;22748:9;22744:19;22735:6;22691:73;:::i;:::-;21940:831;;;;;;;;:::o;22777:214::-;22866:4;22904:2;22893:9;22889:18;22881:26;;22917:67;22981:1;22970:9;22966:17;22957:6;22917:67;:::i;:::-;22777:214;;;;:::o;22997:129::-;23031:6;23058:20;;:::i;:::-;23048:30;;23087:33;23115:4;23107:6;23087:33;:::i;:::-;22997:129;;;:::o;23132:75::-;23165:6;23198:2;23192:9;23182:19;;23132:75;:::o;23213:311::-;23290:4;23380:18;23372:6;23369:30;23366:56;;;23402:18;;:::i;:::-;23366:56;23452:4;23444:6;23440:17;23432:25;;23512:4;23506;23502:15;23494:23;;23213:311;;;:::o;23530:132::-;23597:4;23620:3;23612:11;;23650:4;23645:3;23641:14;23633:22;;23530:132;;;:::o;23668:114::-;23735:6;23769:5;23763:12;23753:22;;23668:114;;;:::o;23788:99::-;23840:6;23874:5;23868:12;23858:22;;23788:99;;;:::o;23893:113::-;23963:4;23995;23990:3;23986:14;23978:22;;23893:113;;;:::o;24012:184::-;24111:11;24145:6;24140:3;24133:19;24185:4;24180:3;24176:14;24161:29;;24012:184;;;;:::o;24202:169::-;24286:11;24320:6;24315:3;24308:19;24360:4;24355:3;24351:14;24336:29;;24202:169;;;;:::o;24377:305::-;24417:3;24436:20;24454:1;24436:20;:::i;:::-;24431:25;;24470:20;24488:1;24470:20;:::i;:::-;24465:25;;24624:1;24556:66;24552:74;24549:1;24546:81;24543:107;;;24630:18;;:::i;:::-;24543:107;24674:1;24671;24667:9;24660:16;;24377:305;;;;:::o;24688:185::-;24728:1;24745:20;24763:1;24745:20;:::i;:::-;24740:25;;24779:20;24797:1;24779:20;:::i;:::-;24774:25;;24818:1;24808:35;;24823:18;;:::i;:::-;24808:35;24865:1;24862;24858:9;24853:14;;24688:185;;;;:::o;24879:348::-;24919:7;24942:20;24960:1;24942:20;:::i;:::-;24937:25;;24976:20;24994:1;24976:20;:::i;:::-;24971:25;;25164:1;25096:66;25092:74;25089:1;25086:81;25081:1;25074:9;25067:17;25063:105;25060:131;;;25171:18;;:::i;:::-;25060:131;25219:1;25216;25212:9;25201:20;;24879:348;;;;:::o;25233:191::-;25273:4;25293:20;25311:1;25293:20;:::i;:::-;25288:25;;25327:20;25345:1;25327:20;:::i;:::-;25322:25;;25366:1;25363;25360:8;25357:34;;;25371:18;;:::i;:::-;25357:34;25416:1;25413;25409:9;25401:17;;25233:191;;;;:::o;25430:96::-;25467:7;25496:24;25514:5;25496:24;:::i;:::-;25485:35;;25430:96;;;:::o;25532:90::-;25566:7;25609:5;25602:13;25595:21;25584:32;;25532:90;;;:::o;25628:126::-;25665:7;25705:42;25698:5;25694:54;25683:65;;25628:126;;;:::o;25760:77::-;25797:7;25826:5;25815:16;;25760:77;;;:::o;25843:86::-;25878:7;25918:4;25911:5;25907:16;25896:27;;25843:86;;;:::o;25935:152::-;26011:9;26044:37;26075:5;26044:37;:::i;:::-;26031:50;;25935:152;;;:::o;26093:121::-;26151:9;26184:24;26202:5;26184:24;:::i;:::-;26171:37;;26093:121;;;:::o;26220:126::-;26270:9;26303:37;26334:5;26303:37;:::i;:::-;26290:50;;26220:126;;;:::o;26352:113::-;26402:9;26435:24;26453:5;26435:24;:::i;:::-;26422:37;;26352:113;;;:::o;26471:307::-;26539:1;26549:113;26563:6;26560:1;26557:13;26549:113;;;26648:1;26643:3;26639:11;26633:18;26629:1;26624:3;26620:11;26613:39;26585:2;26582:1;26578:10;26573:15;;26549:113;;;26680:6;26677:1;26674:13;26671:101;;;26760:1;26751:6;26746:3;26742:16;26735:27;26671:101;26520:258;26471:307;;;:::o;26784:281::-;26867:27;26889:4;26867:27;:::i;:::-;26859:6;26855:40;26997:6;26985:10;26982:22;26961:18;26949:10;26946:34;26943:62;26940:88;;;27008:18;;:::i;:::-;26940:88;27048:10;27044:2;27037:22;26827:238;26784:281;;:::o;27071:233::-;27110:3;27133:24;27151:5;27133:24;:::i;:::-;27124:33;;27179:66;27172:5;27169:77;27166:103;;;27249:18;;:::i;:::-;27166:103;27296:1;27289:5;27285:13;27278:20;;27071:233;;;:::o;27310:180::-;27358:77;27355:1;27348:88;27455:4;27452:1;27445:15;27479:4;27476:1;27469:15;27496:180;27544:77;27541:1;27534:88;27641:4;27638:1;27631:15;27665:4;27662:1;27655:15;27682:180;27730:77;27727:1;27720:88;27827:4;27824:1;27817:15;27851:4;27848:1;27841:15;27868:180;27916:77;27913:1;27906:88;28013:4;28010:1;28003:15;28037:4;28034:1;28027:15;28054:117;28163:1;28160;28153:12;28177:117;28286:1;28283;28276:12;28300:117;28409:1;28406;28399:12;28423:117;28532:1;28529;28522:12;28546:102;28587:6;28638:2;28634:7;28629:2;28622:5;28618:14;28614:28;28604:38;;28546:102;;;:::o;28654:222::-;28794:34;28790:1;28782:6;28778:14;28771:58;28863:5;28858:2;28850:6;28846:15;28839:30;28654:222;:::o;28882:250::-;29022:34;29018:1;29010:6;29006:14;28999:58;29091:33;29086:2;29078:6;29074:15;29067:58;28882:250;:::o;29138:229::-;29278:34;29274:1;29266:6;29262:14;29255:58;29347:12;29342:2;29334:6;29330:15;29323:37;29138:229;:::o;29373:178::-;29513:30;29509:1;29501:6;29497:14;29490:54;29373:178;:::o;29557:225::-;29697:34;29693:1;29685:6;29681:14;29674:58;29766:8;29761:2;29753:6;29749:15;29742:33;29557:225;:::o;29788:221::-;29928:34;29924:1;29916:6;29912:14;29905:58;29997:4;29992:2;29984:6;29980:15;29973:29;29788:221;:::o;30015:222::-;30155:34;30151:1;30143:6;30139:14;30132:58;30224:5;30219:2;30211:6;30207:15;30200:30;30015:222;:::o;30243:177::-;30383:29;30379:1;30371:6;30367:14;30360:53;30243:177;:::o;30426:173::-;30566:25;30562:1;30554:6;30550:14;30543:49;30426:173;:::o;30605:220::-;30745:34;30741:1;30733:6;30729:14;30722:58;30814:3;30809:2;30801:6;30797:15;30790:28;30605:220;:::o;30831:182::-;30971:34;30967:1;30959:6;30955:14;30948:58;30831:182;:::o;31019:228::-;31159:34;31155:1;31147:6;31143:14;31136:58;31228:11;31223:2;31215:6;31211:15;31204:36;31019:228;:::o;31253:224::-;31393:34;31389:1;31381:6;31377:14;31370:58;31462:7;31457:2;31449:6;31445:15;31438:32;31253:224;:::o;31483:222::-;31623:34;31619:1;31611:6;31607:14;31600:58;31692:5;31687:2;31679:6;31675:15;31668:30;31483:222;:::o;31711:223::-;31851:34;31847:1;31839:6;31835:14;31828:58;31920:6;31915:2;31907:6;31903:15;31896:31;31711:223;:::o;31940:122::-;32013:24;32031:5;32013:24;:::i;:::-;32006:5;32003:35;31993:63;;32052:1;32049;32042:12;31993:63;31940:122;:::o;32068:116::-;32138:21;32153:5;32138:21;:::i;:::-;32131:5;32128:32;32118:60;;32174:1;32171;32164:12;32118:60;32068:116;:::o;32190:122::-;32263:24;32281:5;32263:24;:::i;:::-;32256:5;32253:35;32243:63;;32302:1;32299;32292:12;32243:63;32190:122;:::o

Swarm Source

ipfs://277f4d60db8d51a0cc743fc0112071c2e70ee2fa82d015373d5a6fcd439f46a1

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

Legion Capital is a utility token that acquires innovative, income-generating crypto assets and uses the associated profits to benefit $LEGION holders.

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.