ETH Price: $3,724.57 (+3.64%)

Contract

0xFEeF53360CfAA0fDc800DA8a89FE6d298BbD5aA2
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve201783552024-06-26 20:50:35157 days ago1719435035IN
0xFEeF5336...98BbD5aA2
0 ETH0.000133745.36077647
Approve201783542024-06-26 20:50:23157 days ago1719435023IN
0xFEeF5336...98BbD5aA2
0 ETH0.000137185.51194756
Transfer198362112024-05-10 0:57:59204 days ago1715302679IN
0xFEeF5336...98BbD5aA2
0 ETH0.000394523.81504367
Transfer198220022024-05-08 1:15:59206 days ago1715130959IN
0xFEeF5336...98BbD5aA2
0 ETH0.001600335.92973201
Approve190202742024-01-16 15:13:35319 days ago1705418015IN
0xFEeF5336...98BbD5aA2
0 ETH0.0030137663.88754425
Approve190202572024-01-16 15:10:11319 days ago1705417811IN
0xFEeF5336...98BbD5aA2
0 ETH0.003196767.67938105
Approve190196432024-01-16 13:07:11319 days ago1705410431IN
0xFEeF5336...98BbD5aA2
0 ETH0.0015065832.17487184
Approve190154242024-01-15 22:59:59320 days ago1705359599IN
0xFEeF5336...98BbD5aA2
0 ETH0.0012058625.53004153
Approve190154072024-01-15 22:56:35320 days ago1705359395IN
0xFEeF5336...98BbD5aA2
0 ETH0.0012127925.70962065
Approve190154042024-01-15 22:55:59320 days ago1705359359IN
0xFEeF5336...98BbD5aA2
0 ETH0.0012338226.12214666
Approve190154022024-01-15 22:55:35320 days ago1705359335IN
0xFEeF5336...98BbD5aA2
0 ETH0.001155124.45541607
Approve190154022024-01-15 22:55:35320 days ago1705359335IN
0xFEeF5336...98BbD5aA2
0 ETH0.0012023325.45541607
Set Fee190154012024-01-15 22:55:23320 days ago1705359323IN
0xFEeF5336...98BbD5aA2
0 ETH0.0008534723.4459173
Approve190154012024-01-15 22:55:23320 days ago1705359323IN
0xFEeF5336...98BbD5aA2
0 ETH0.0012443926.3459173
Set Max Wallet S...190153972024-01-15 22:54:35320 days ago1705359275IN
0xFEeF5336...98BbD5aA2
0 ETH0.0006780523.38858538
Set Max Txn Amou...190153972024-01-15 22:54:35320 days ago1705359275IN
0xFEeF5336...98BbD5aA2
0 ETH0.0006785923.38858538
Approve190153972024-01-15 22:54:35320 days ago1705359275IN
0xFEeF5336...98BbD5aA2
0 ETH0.0012416826.28858538
Approve190153972024-01-15 22:54:35320 days ago1705359275IN
0xFEeF5336...98BbD5aA2
0 ETH0.0012416826.28858538
Approve190153962024-01-15 22:54:23320 days ago1705359263IN
0xFEeF5336...98BbD5aA2
0 ETH0.0011335924
Approve190153962024-01-15 22:54:23320 days ago1705359263IN
0xFEeF5336...98BbD5aA2
0 ETH0.0012721726.93405862
Approve190153962024-01-15 22:54:23320 days ago1705359263IN
0xFEeF5336...98BbD5aA2
0 ETH0.0018389738.93405862
Approve190153952024-01-15 22:54:11320 days ago1705359251IN
0xFEeF5336...98BbD5aA2
0 ETH0.0013083827.70055088
Approve190153952024-01-15 22:54:11320 days ago1705359251IN
0xFEeF5336...98BbD5aA2
0 ETH0.0013083827.70055088
Approve190153952024-01-15 22:54:11320 days ago1705359251IN
0xFEeF5336...98BbD5aA2
0 ETH0.0016390134.70055088
Approve190153952024-01-15 22:54:11320 days ago1705359251IN
0xFEeF5336...98BbD5aA2
0 ETH0.0016862435.70055088
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
198220022024-05-08 1:15:59206 days ago1715130959
0xFEeF5336...98BbD5aA2
0.14705379 ETH
198220022024-05-08 1:15:59206 days ago1715130959
0xFEeF5336...98BbD5aA2
0.14705379 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.1400726 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.1400726 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.14395734 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.14395734 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.14800605 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.14800605 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.15222808 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.15222808 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.15663348 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.15663348 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.16123302 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.16123302 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.24553364 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.24553364 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.09541334 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.09541334 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.74638429 ETH
190154202024-01-15 22:59:11320 days ago1705359551
0xFEeF5336...98BbD5aA2
0.74638429 ETH
190154182024-01-15 22:58:47320 days ago1705359527
0xFEeF5336...98BbD5aA2
0.85027235 ETH
190154182024-01-15 22:58:47320 days ago1705359527
0xFEeF5336...98BbD5aA2
0.85027235 ETH
190154142024-01-15 22:57:59320 days ago1705359479
0xFEeF5336...98BbD5aA2
0.99934592 ETH
190154142024-01-15 22:57:59320 days ago1705359479
0xFEeF5336...98BbD5aA2
0.99934592 ETH
190153952024-01-15 22:54:11320 days ago1705359251
0xFEeF5336...98BbD5aA2
0.03252159 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Nite

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-13
*/

/**

Nite AI: Venture into the forefront of decentralized exchange with Nite AI ,the pioneering platform for self-service listing with perpetual features and every investor discovers a universe of potential.

Twitter: https://twitter.com/NiteERC20
Telegram: https://t.me/NiteAI
Website: https://nite-ai.com
Docs: https://docs.nite-ai.com

*/

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

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

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

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

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

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

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

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

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

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

}

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract Nite is Context, IERC20, Ownable {
    string private constant _name = "Nite AI";
    string private constant _symbol = "NITE";
    uint8 private constant _decimals = 18;

    address payable private _marketingAddress = payable(0xcFbc9E01df20878FcCD3a9bFb57562523a3C653D);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    using SafeMath for uint256;

    uint256 private constant _tTotal = 10000000 * 10 ** _decimals;
    uint256 public _maxTxAmount = 25000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 25000 * 10 ** _decimals;
    uint256 public _swapTokensAtAmount = 1000 * 10 ** _decimals;

    mapping(address => bool) public bots; 
    mapping (address => uint256) public _buyMap;

    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 _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 5;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 5;

    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        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(from == owner(), "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 && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                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 {
        _marketingAddress.transfer(amount);
    }

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

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

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

    function setTaxToZero() external{
        require(_msgSender() == _marketingAddress);
        _redisFeeOnBuy = 0;
        _redisFeeOnSell = 0;
        _taxFeeOnBuy = 0;
        _taxFeeOnSell = 0;
        _previousredisFee = 0;
        _previoustaxFee = 0;
    }

    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 maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","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":[],"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":[],"name":"setTaxToZero","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"}]

608060405273cfbc9e01df20878fccd3a9bfb57562523a3c653d60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600460146101000a81548160ff0219169083151502179055505f600460156101000a81548160ff0219169083151502179055506001600460166101000a81548160ff0219169083151502179055506012600a620000b7919062000803565b6161a8620000c6919062000853565b6005556012600a620000d9919062000803565b6161a8620000e8919062000853565b6006556012600a620000fb919062000803565b6103e86200010a919062000853565b6007556012600a6200011d919062000803565b629896806200012d919062000853565b5f196200013b9190620008ca565b5f1962000149919062000901565b600e555f60105560056011555f601255600560135560125460145560135460155560145460165560155460175534801562000182575f80fd5b505f620001946200064360201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600e54600a5f620002466200064360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000325573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200034b9190620009a0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003d79190620009a0565b6040518363ffffffff1660e01b8152600401620003f6929190620009e1565b6020604051808303815f875af115801562000413573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004399190620009a0565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d5f6200048d6200064a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620005b76200064360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000615919062000803565b6298968062000625919062000853565b60405162000634919062000a1d565b60405180910390a35062000a38565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620006fb57808604811115620006d357620006d262000671565b5b6001851615620006e35780820291505b8081029050620006f3856200069e565b9450620006b3565b94509492505050565b5f82620007155760019050620007e7565b8162000724575f9050620007e7565b81600181146200073d576002811462000748576200077e565b6001915050620007e7565b60ff8411156200075d576200075c62000671565b5b8360020a91508482111562000777576200077662000671565b5b50620007e7565b5060208310610133831016604e8410600b8410161715620007b85782820a905083811115620007b257620007b162000671565b5b620007e7565b620007c78484846001620006aa565b92509050818404811115620007e157620007e062000671565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200080f82620007ee565b91506200081c83620007f7565b92506200084b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000704565b905092915050565b5f6200085f82620007ee565b91506200086c83620007ee565b92508282026200087c81620007ee565b9150828204841483151762000896576200089562000671565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620008d682620007ee565b9150620008e383620007ee565b925082620008f657620008f56200089d565b5b828206905092915050565b5f6200090d82620007ee565b91506200091a83620007ee565b925082820390508181111562000935576200093462000671565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200096a826200093f565b9050919050565b6200097c816200095e565b811462000987575f80fd5b50565b5f815190506200099a8162000971565b92915050565b5f60208284031215620009b857620009b76200093b565b5b5f620009c7848285016200098a565b91505092915050565b620009db816200095e565b82525050565b5f604082019050620009f65f830185620009d0565b62000a056020830184620009d0565b9392505050565b62000a1781620007ee565b82525050565b5f60208201905062000a325f83018462000a0c565b92915050565b613d7f8062000a465f395ff3fe6080604052600436106101da575f3560e01c80637d1db4a511610101578063a2a957bb11610094578063c492f04611610063578063c492f04614610661578063dd62ed3e14610689578063ea1644d5146106c5578063f2fde38b146106ed576101e1565b8063a2a957bb146105ab578063a9059cbb146105d3578063bfd792841461060f578063c3c8cd801461064b576101e1565b80638f70ccf7116100d05780638f70ccf7146105075780638f9a55c01461052f57806395d89b411461055957806398a5c31514610583576101e1565b80637d1db4a5146104615780637f2feddc1461048b5780638859f03d146104c75780638da5cb5b146104dd576101e1565b8063313ce567116101795780636fc3eaec116101485780636fc3eaec146103d157806370a08231146103e7578063715018a61461042357806374010ece14610439576101e1565b8063313ce5671461032d57806349bd5a5e146103575780636b999053146103815780636d8aa8f8146103a9576101e1565b80631694505e116101b55780631694505e1461027357806318160ddd1461029d57806323b872dd146102c75780632fd689e314610303576101e1565b8062b8cf2a146101e557806306fdde031461020d578063095ea7b314610237576101e1565b366101e157005b5f80fd5b3480156101f0575f80fd5b5061020b60048036038101906102069190612ca1565b610715565b005b348015610218575f80fd5b50610221610834565b60405161022e9190612d62565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190612db5565b610871565b60405161026a9190612e0d565b60405180910390f35b34801561027e575f80fd5b5061028761088e565b6040516102949190612e81565b60405180910390f35b3480156102a8575f80fd5b506102b16108b3565b6040516102be9190612ea9565b60405180910390f35b3480156102d2575f80fd5b506102ed60048036038101906102e89190612ec2565b6108d5565b6040516102fa9190612e0d565b60405180910390f35b34801561030e575f80fd5b506103176109a9565b6040516103249190612ea9565b60405180910390f35b348015610338575f80fd5b506103416109af565b60405161034e9190612f2d565b60405180910390f35b348015610362575f80fd5b5061036b6109b7565b6040516103789190612f55565b60405180910390f35b34801561038c575f80fd5b506103a760048036038101906103a29190612f6e565b6109dc565b005b3480156103b4575f80fd5b506103cf60048036038101906103ca9190612fc3565b610ac7565b005b3480156103dc575f80fd5b506103e5610b78565b005b3480156103f2575f80fd5b5061040d60048036038101906104089190612f6e565b610be7565b60405161041a9190612ea9565b60405180910390f35b34801561042e575f80fd5b50610437610c35565b005b348015610444575f80fd5b5061045f600480360381019061045a9190612fee565b610d83565b005b34801561046c575f80fd5b50610475610e21565b6040516104829190612ea9565b60405180910390f35b348015610496575f80fd5b506104b160048036038101906104ac9190612f6e565b610e27565b6040516104be9190612ea9565b60405180910390f35b3480156104d2575f80fd5b506104db610e3c565b005b3480156104e8575f80fd5b506104f1610ec7565b6040516104fe9190612f55565b60405180910390f35b348015610512575f80fd5b5061052d60048036038101906105289190612fc3565b610eee565b005b34801561053a575f80fd5b50610543610f9f565b6040516105509190612ea9565b60405180910390f35b348015610564575f80fd5b5061056d610fa5565b60405161057a9190612d62565b60405180910390f35b34801561058e575f80fd5b506105a960048036038101906105a49190612fee565b610fe2565b005b3480156105b6575f80fd5b506105d160048036038101906105cc9190613019565b611080565b005b3480156105de575f80fd5b506105f960048036038101906105f49190612db5565b611136565b6040516106069190612e0d565b60405180910390f35b34801561061a575f80fd5b5061063560048036038101906106309190612f6e565b611153565b6040516106429190612e0d565b60405180910390f35b348015610656575f80fd5b5061065f611170565b005b34801561066c575f80fd5b50610687600480360381019061068291906130d6565b6111e7565b005b348015610694575f80fd5b506106af60048036038101906106aa9190613133565b611316565b6040516106bc9190612ea9565b60405180910390f35b3480156106d0575f80fd5b506106eb60048036038101906106e69190612fee565b611398565b005b3480156106f8575f80fd5b50610713600480360381019061070e9190612f6e565b611436565b005b61071d6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a0906131bb565b60405180910390fd5b5f5b815181101561083057600160085f8484815181106107cc576107cb6131d9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107ab565b5050565b60606040518060400160405280600781526020017f4e69746520414900000000000000000000000000000000000000000000000000815250905090565b5f61088461087d6115f3565b84846115fa565b6001905092915050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012600a6108c29190613362565b629896806108d091906133ac565b905090565b5f6108e18484846117bd565b61099e846108ed6115f3565b61099985604051806060016040528060288152602001613d2260289139600c5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109506115f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201f9092919063ffffffff16565b6115fa565b600190509392505050565b60075481565b5f6012905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e46115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906131bb565b60405180910390fd5b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610acf6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b52906131bb565b60405180910390fd5b80600460166101000a81548160ff02191690831515021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb86115f3565b73ffffffffffffffffffffffffffffffffffffffff1614610bd7575f80fd5b5f479050610be481612081565b50565b5f610c2e600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120e9565b9050919050565b610c3d6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc0906131bb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d8b6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e906131bb565b60405180910390fd5b8060058190555050565b60055481565b6009602052805f5260405f205f915090505481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e7c6115f3565b73ffffffffffffffffffffffffffffffffffffffff1614610e9b575f80fd5b5f6010819055505f6012819055505f6011819055505f6013819055505f6016819055505f601781905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ef66115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f79906131bb565b60405180910390fd5b80600460146101000a81548160ff02191690831515021790555050565b60065481565b60606040518060400160405280600481526020017f4e49544500000000000000000000000000000000000000000000000000000000815250905090565b610fea6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106d906131bb565b60405180910390fd5b8060078190555050565b6110886115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b906131bb565b60405180910390fd5b8360108190555082601281905550816011819055508060138190555050505050565b5f6111496111426115f3565b84846117bd565b6001905092915050565b6008602052805f5260405f205f915054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111b06115f3565b73ffffffffffffffffffffffffffffffffffffffff16146111cf575f80fd5b5f6111d930610be7565b90506111e481612155565b50565b6111ef6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611272906131bb565b60405180910390fd5b5f5b838390508110156113105781600d5f86868581811061129f5761129e6131d9565b5b90506020020160208101906112b49190612f6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061127d565b50505050565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113a06115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461142c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611423906131bb565b60405180910390fd5b8060068190555050565b61143e6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c1906131bb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152f9061345d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165f906134eb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90613579565b60405180910390fd5b80600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117b09190612ea9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361182b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182290613607565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189090613695565b60405180910390fd5b5f81116118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d290613723565b60405180910390fd5b6118e3610ec7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119515750611921610ec7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d2c57600460149054906101000a900460ff166119e057611972610ec7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d6906137b1565b60405180910390fd5b5b600554811115611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c90613819565b60405180910390fd5b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ac3575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af9906138a7565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611bae5760065481611b6384610be7565b611b6d91906138c5565b10611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba490613968565b60405180910390fd5b5b5f611bb830610be7565b90505f60075482101590506005548210611bd25760055491505b808015611bec5750600460159054906101000a900460ff16155b8015611c45575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5d5750600460169054906101000a900460ff165b8015611cb05750600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d035750600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d2957611d1182612155565b5f4790505f811115611d2757611d2647612081565b5b505b50505b5f60019050600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611dcc5750600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611e7d575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e7c575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e8a575f905061200d565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f33575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f4b576010546014819055506011546015819055505b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ff4575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561200c576012546014819055506013546015819055505b5b612019848484846123c0565b50505050565b5f838311158290612066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205d9190612d62565b60405180910390fd5b505f83856120749190613986565b9050809150509392505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120e5573d5f803e3d5ffd5b5050565b5f600e5482111561212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212690613a29565b60405180910390fd5b5f6121386123ed565b905061214d818461241690919063ffffffff16565b915050919050565b6001600460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561218c5761218b612b0b565b5b6040519080825280602002602001820160405280156121ba5781602001602082028036833780820191505090505b50905030815f815181106121d1576121d06131d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612275573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122999190613a5b565b816001815181106122ad576122ac6131d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123133060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115fa565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612375959493929190613b76565b5f604051808303815f87803b15801561238c575f80fd5b505af115801561239e573d5f803e3d5ffd5b50505050505f600460156101000a81548160ff02191690831515021790555050565b806123ce576123cd61245f565b5b6123d9848484612498565b806123e7576123e6612658565b5b50505050565b5f805f6123f861266c565b9150915061240f818361241690919063ffffffff16565b9250505090565b5f61245783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612701565b905092915050565b5f60145414801561247157505f601554145b612496576014546016819055506015546017819055505f6014819055505f6015819055505b565b5f805f805f806124a787612762565b95509550955095509550955061250386600a5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127c290919063ffffffff16565b600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061259485600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461280b90919063ffffffff16565b600a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125de81612868565b6125e8848361291f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126459190612ea9565b60405180910390a3505050505050505050565b601654601481905550601754601581905550565b5f805f600e5490505f6012600a6126839190613362565b6298968061269191906133ac565b90506126c36012600a6126a49190613362565b629896806126b291906133ac565b600e5461241690919063ffffffff16565b8210156126f457600e546012600a6126db9190613362565b629896806126e991906133ac565b9350935050506126fd565b81819350935050505b9091565b5f8083118290612747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273e9190612d62565b60405180910390fd5b505f83856127559190613bfb565b9050809150509392505050565b5f805f805f805f805f61277a8a601454601554612959565b9250925092505f6127896123ed565b90505f805f61279a8e8787876129eb565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61280383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061201f565b905092915050565b5f80828461281991906138c5565b90508381101561285e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285590613c75565b60405180910390fd5b8091505092915050565b5f6128716123ed565b90505f6128878284612a6f90919063ffffffff16565b90506128d981600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461280b90919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b61293482600e546127c290919063ffffffff16565b600e8190555061294f81600f5461280b90919063ffffffff16565b600f819055505050565b5f805f806129836064612975888a612a6f90919063ffffffff16565b61241690919063ffffffff16565b90505f6129ac606461299e888b612a6f90919063ffffffff16565b61241690919063ffffffff16565b90505f6129d4826129c6858c6127c290919063ffffffff16565b6127c290919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612a028589612a6f90919063ffffffff16565b90505f612a188689612a6f90919063ffffffff16565b90505f612a2e8789612a6f90919063ffffffff16565b90505f612a5682612a4885876127c290919063ffffffff16565b6127c290919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612a7f575f9050612ae0565b5f8284612a8c91906133ac565b9050828482612a9b9190613bfb565b14612adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad290613d03565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b4182612afb565b810181811067ffffffffffffffff82111715612b6057612b5f612b0b565b5b80604052505050565b5f612b72612ae6565b9050612b7e8282612b38565b919050565b5f67ffffffffffffffff821115612b9d57612b9c612b0b565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bdb82612bb2565b9050919050565b612beb81612bd1565b8114612bf5575f80fd5b50565b5f81359050612c0681612be2565b92915050565b5f612c1e612c1984612b83565b612b69565b90508083825260208201905060208402830185811115612c4157612c40612bae565b5b835b81811015612c6a5780612c568882612bf8565b845260208401935050602081019050612c43565b5050509392505050565b5f82601f830112612c8857612c87612af7565b5b8135612c98848260208601612c0c565b91505092915050565b5f60208284031215612cb657612cb5612aef565b5b5f82013567ffffffffffffffff811115612cd357612cd2612af3565b5b612cdf84828501612c74565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d1f578082015181840152602081019050612d04565b5f8484015250505050565b5f612d3482612ce8565b612d3e8185612cf2565b9350612d4e818560208601612d02565b612d5781612afb565b840191505092915050565b5f6020820190508181035f830152612d7a8184612d2a565b905092915050565b5f819050919050565b612d9481612d82565b8114612d9e575f80fd5b50565b5f81359050612daf81612d8b565b92915050565b5f8060408385031215612dcb57612dca612aef565b5b5f612dd885828601612bf8565b9250506020612de985828601612da1565b9150509250929050565b5f8115159050919050565b612e0781612df3565b82525050565b5f602082019050612e205f830184612dfe565b92915050565b5f819050919050565b5f612e49612e44612e3f84612bb2565b612e26565b612bb2565b9050919050565b5f612e5a82612e2f565b9050919050565b5f612e6b82612e50565b9050919050565b612e7b81612e61565b82525050565b5f602082019050612e945f830184612e72565b92915050565b612ea381612d82565b82525050565b5f602082019050612ebc5f830184612e9a565b92915050565b5f805f60608486031215612ed957612ed8612aef565b5b5f612ee686828701612bf8565b9350506020612ef786828701612bf8565b9250506040612f0886828701612da1565b9150509250925092565b5f60ff82169050919050565b612f2781612f12565b82525050565b5f602082019050612f405f830184612f1e565b92915050565b612f4f81612bd1565b82525050565b5f602082019050612f685f830184612f46565b92915050565b5f60208284031215612f8357612f82612aef565b5b5f612f9084828501612bf8565b91505092915050565b612fa281612df3565b8114612fac575f80fd5b50565b5f81359050612fbd81612f99565b92915050565b5f60208284031215612fd857612fd7612aef565b5b5f612fe584828501612faf565b91505092915050565b5f6020828403121561300357613002612aef565b5b5f61301084828501612da1565b91505092915050565b5f805f806080858703121561303157613030612aef565b5b5f61303e87828801612da1565b945050602061304f87828801612da1565b935050604061306087828801612da1565b925050606061307187828801612da1565b91505092959194509250565b5f80fd5b5f8083601f84011261309657613095612af7565b5b8235905067ffffffffffffffff8111156130b3576130b261307d565b5b6020830191508360208202830111156130cf576130ce612bae565b5b9250929050565b5f805f604084860312156130ed576130ec612aef565b5b5f84013567ffffffffffffffff81111561310a57613109612af3565b5b61311686828701613081565b9350935050602061312986828701612faf565b9150509250925092565b5f806040838503121561314957613148612aef565b5b5f61315685828601612bf8565b925050602061316785828601612bf8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131a5602083612cf2565b91506131b082613171565b602082019050919050565b5f6020820190508181035f8301526131d281613199565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156132885780860481111561326457613263613206565b5b60018516156132735780820291505b808102905061328185613233565b9450613248565b94509492505050565b5f826132a0576001905061335b565b816132ad575f905061335b565b81600181146132c357600281146132cd576132fc565b600191505061335b565b60ff8411156132df576132de613206565b5b8360020a9150848211156132f6576132f5613206565b5b5061335b565b5060208310610133831016604e8410600b84101617156133315782820a90508381111561332c5761332b613206565b5b61335b565b61333e848484600161323f565b9250905081840481111561335557613354613206565b5b81810290505b9392505050565b5f61336c82612d82565b915061337783612f12565b92506133a47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613291565b905092915050565b5f6133b682612d82565b91506133c183612d82565b92508282026133cf81612d82565b915082820484148315176133e6576133e5613206565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613447602683612cf2565b9150613452826133ed565b604082019050919050565b5f6020820190508181035f8301526134748161343b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134d5602483612cf2565b91506134e08261347b565b604082019050919050565b5f6020820190508181035f830152613502816134c9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613563602283612cf2565b915061356e82613509565b604082019050919050565b5f6020820190508181035f83015261359081613557565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135f1602583612cf2565b91506135fc82613597565b604082019050919050565b5f6020820190508181035f83015261361e816135e5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61367f602383612cf2565b915061368a82613625565b604082019050919050565b5f6020820190508181035f8301526136ac81613673565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61370d602983612cf2565b9150613718826136b3565b604082019050919050565b5f6020820190508181035f83015261373a81613701565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f61379b603f83612cf2565b91506137a682613741565b604082019050919050565b5f6020820190508181035f8301526137c88161378f565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613803601c83612cf2565b915061380e826137cf565b602082019050919050565b5f6020820190508181035f830152613830816137f7565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613891602383612cf2565b915061389c82613837565b604082019050919050565b5f6020820190508181035f8301526138be81613885565b9050919050565b5f6138cf82612d82565b91506138da83612d82565b92508282019050808211156138f2576138f1613206565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613952602383612cf2565b915061395d826138f8565b604082019050919050565b5f6020820190508181035f83015261397f81613946565b9050919050565b5f61399082612d82565b915061399b83612d82565b92508282039050818111156139b3576139b2613206565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613a13602a83612cf2565b9150613a1e826139b9565b604082019050919050565b5f6020820190508181035f830152613a4081613a07565b9050919050565b5f81519050613a5581612be2565b92915050565b5f60208284031215613a7057613a6f612aef565b5b5f613a7d84828501613a47565b91505092915050565b5f819050919050565b5f613aa9613aa4613a9f84613a86565b612e26565b612d82565b9050919050565b613ab981613a8f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613af181612bd1565b82525050565b5f613b028383613ae8565b60208301905092915050565b5f602082019050919050565b5f613b2482613abf565b613b2e8185613ac9565b9350613b3983613ad9565b805f5b83811015613b69578151613b508882613af7565b9750613b5b83613b0e565b925050600181019050613b3c565b5085935050505092915050565b5f60a082019050613b895f830188612e9a565b613b966020830187613ab0565b8181036040830152613ba88186613b1a565b9050613bb76060830185612f46565b613bc46080830184612e9a565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613c0582612d82565b9150613c1083612d82565b925082613c2057613c1f613bce565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c5f601b83612cf2565b9150613c6a82613c2b565b602082019050919050565b5f6020820190508181035f830152613c8c81613c53565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ced602183612cf2565b9150613cf882613c93565b604082019050919050565b5f6020820190508181035f830152613d1a81613ce1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a727778981ad1deba030596c8734115302f50e44e160986b5411233eb02e281164736f6c63430008160033

Deployed Bytecode

0x6080604052600436106101da575f3560e01c80637d1db4a511610101578063a2a957bb11610094578063c492f04611610063578063c492f04614610661578063dd62ed3e14610689578063ea1644d5146106c5578063f2fde38b146106ed576101e1565b8063a2a957bb146105ab578063a9059cbb146105d3578063bfd792841461060f578063c3c8cd801461064b576101e1565b80638f70ccf7116100d05780638f70ccf7146105075780638f9a55c01461052f57806395d89b411461055957806398a5c31514610583576101e1565b80637d1db4a5146104615780637f2feddc1461048b5780638859f03d146104c75780638da5cb5b146104dd576101e1565b8063313ce567116101795780636fc3eaec116101485780636fc3eaec146103d157806370a08231146103e7578063715018a61461042357806374010ece14610439576101e1565b8063313ce5671461032d57806349bd5a5e146103575780636b999053146103815780636d8aa8f8146103a9576101e1565b80631694505e116101b55780631694505e1461027357806318160ddd1461029d57806323b872dd146102c75780632fd689e314610303576101e1565b8062b8cf2a146101e557806306fdde031461020d578063095ea7b314610237576101e1565b366101e157005b5f80fd5b3480156101f0575f80fd5b5061020b60048036038101906102069190612ca1565b610715565b005b348015610218575f80fd5b50610221610834565b60405161022e9190612d62565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190612db5565b610871565b60405161026a9190612e0d565b60405180910390f35b34801561027e575f80fd5b5061028761088e565b6040516102949190612e81565b60405180910390f35b3480156102a8575f80fd5b506102b16108b3565b6040516102be9190612ea9565b60405180910390f35b3480156102d2575f80fd5b506102ed60048036038101906102e89190612ec2565b6108d5565b6040516102fa9190612e0d565b60405180910390f35b34801561030e575f80fd5b506103176109a9565b6040516103249190612ea9565b60405180910390f35b348015610338575f80fd5b506103416109af565b60405161034e9190612f2d565b60405180910390f35b348015610362575f80fd5b5061036b6109b7565b6040516103789190612f55565b60405180910390f35b34801561038c575f80fd5b506103a760048036038101906103a29190612f6e565b6109dc565b005b3480156103b4575f80fd5b506103cf60048036038101906103ca9190612fc3565b610ac7565b005b3480156103dc575f80fd5b506103e5610b78565b005b3480156103f2575f80fd5b5061040d60048036038101906104089190612f6e565b610be7565b60405161041a9190612ea9565b60405180910390f35b34801561042e575f80fd5b50610437610c35565b005b348015610444575f80fd5b5061045f600480360381019061045a9190612fee565b610d83565b005b34801561046c575f80fd5b50610475610e21565b6040516104829190612ea9565b60405180910390f35b348015610496575f80fd5b506104b160048036038101906104ac9190612f6e565b610e27565b6040516104be9190612ea9565b60405180910390f35b3480156104d2575f80fd5b506104db610e3c565b005b3480156104e8575f80fd5b506104f1610ec7565b6040516104fe9190612f55565b60405180910390f35b348015610512575f80fd5b5061052d60048036038101906105289190612fc3565b610eee565b005b34801561053a575f80fd5b50610543610f9f565b6040516105509190612ea9565b60405180910390f35b348015610564575f80fd5b5061056d610fa5565b60405161057a9190612d62565b60405180910390f35b34801561058e575f80fd5b506105a960048036038101906105a49190612fee565b610fe2565b005b3480156105b6575f80fd5b506105d160048036038101906105cc9190613019565b611080565b005b3480156105de575f80fd5b506105f960048036038101906105f49190612db5565b611136565b6040516106069190612e0d565b60405180910390f35b34801561061a575f80fd5b5061063560048036038101906106309190612f6e565b611153565b6040516106429190612e0d565b60405180910390f35b348015610656575f80fd5b5061065f611170565b005b34801561066c575f80fd5b50610687600480360381019061068291906130d6565b6111e7565b005b348015610694575f80fd5b506106af60048036038101906106aa9190613133565b611316565b6040516106bc9190612ea9565b60405180910390f35b3480156106d0575f80fd5b506106eb60048036038101906106e69190612fee565b611398565b005b3480156106f8575f80fd5b50610713600480360381019061070e9190612f6e565b611436565b005b61071d6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a0906131bb565b60405180910390fd5b5f5b815181101561083057600160085f8484815181106107cc576107cb6131d9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107ab565b5050565b60606040518060400160405280600781526020017f4e69746520414900000000000000000000000000000000000000000000000000815250905090565b5f61088461087d6115f3565b84846115fa565b6001905092915050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012600a6108c29190613362565b629896806108d091906133ac565b905090565b5f6108e18484846117bd565b61099e846108ed6115f3565b61099985604051806060016040528060288152602001613d2260289139600c5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109506115f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201f9092919063ffffffff16565b6115fa565b600190509392505050565b60075481565b5f6012905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e46115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906131bb565b60405180910390fd5b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610acf6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b52906131bb565b60405180910390fd5b80600460166101000a81548160ff02191690831515021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb86115f3565b73ffffffffffffffffffffffffffffffffffffffff1614610bd7575f80fd5b5f479050610be481612081565b50565b5f610c2e600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120e9565b9050919050565b610c3d6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc0906131bb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d8b6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e906131bb565b60405180910390fd5b8060058190555050565b60055481565b6009602052805f5260405f205f915090505481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e7c6115f3565b73ffffffffffffffffffffffffffffffffffffffff1614610e9b575f80fd5b5f6010819055505f6012819055505f6011819055505f6013819055505f6016819055505f601781905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ef66115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f79906131bb565b60405180910390fd5b80600460146101000a81548160ff02191690831515021790555050565b60065481565b60606040518060400160405280600481526020017f4e49544500000000000000000000000000000000000000000000000000000000815250905090565b610fea6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106d906131bb565b60405180910390fd5b8060078190555050565b6110886115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b906131bb565b60405180910390fd5b8360108190555082601281905550816011819055508060138190555050505050565b5f6111496111426115f3565b84846117bd565b6001905092915050565b6008602052805f5260405f205f915054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111b06115f3565b73ffffffffffffffffffffffffffffffffffffffff16146111cf575f80fd5b5f6111d930610be7565b90506111e481612155565b50565b6111ef6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611272906131bb565b60405180910390fd5b5f5b838390508110156113105781600d5f86868581811061129f5761129e6131d9565b5b90506020020160208101906112b49190612f6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061127d565b50505050565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113a06115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461142c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611423906131bb565b60405180910390fd5b8060068190555050565b61143e6115f3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c1906131bb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152f9061345d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165f906134eb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90613579565b60405180910390fd5b80600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117b09190612ea9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361182b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182290613607565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189090613695565b60405180910390fd5b5f81116118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d290613723565b60405180910390fd5b6118e3610ec7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119515750611921610ec7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d2c57600460149054906101000a900460ff166119e057611972610ec7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d6906137b1565b60405180910390fd5b5b600554811115611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c90613819565b60405180910390fd5b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ac3575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af9906138a7565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611bae5760065481611b6384610be7565b611b6d91906138c5565b10611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba490613968565b60405180910390fd5b5b5f611bb830610be7565b90505f60075482101590506005548210611bd25760055491505b808015611bec5750600460159054906101000a900460ff16155b8015611c45575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5d5750600460169054906101000a900460ff165b8015611cb05750600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d035750600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d2957611d1182612155565b5f4790505f811115611d2757611d2647612081565b5b505b50505b5f60019050600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611dcc5750600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611e7d575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e7c575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e8a575f905061200d565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f33575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f4b576010546014819055506011546015819055505b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ff4575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561200c576012546014819055506013546015819055505b5b612019848484846123c0565b50505050565b5f838311158290612066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205d9190612d62565b60405180910390fd5b505f83856120749190613986565b9050809150509392505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120e5573d5f803e3d5ffd5b5050565b5f600e5482111561212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212690613a29565b60405180910390fd5b5f6121386123ed565b905061214d818461241690919063ffffffff16565b915050919050565b6001600460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561218c5761218b612b0b565b5b6040519080825280602002602001820160405280156121ba5781602001602082028036833780820191505090505b50905030815f815181106121d1576121d06131d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612275573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122999190613a5b565b816001815181106122ad576122ac6131d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123133060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115fa565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612375959493929190613b76565b5f604051808303815f87803b15801561238c575f80fd5b505af115801561239e573d5f803e3d5ffd5b50505050505f600460156101000a81548160ff02191690831515021790555050565b806123ce576123cd61245f565b5b6123d9848484612498565b806123e7576123e6612658565b5b50505050565b5f805f6123f861266c565b9150915061240f818361241690919063ffffffff16565b9250505090565b5f61245783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612701565b905092915050565b5f60145414801561247157505f601554145b612496576014546016819055506015546017819055505f6014819055505f6015819055505b565b5f805f805f806124a787612762565b95509550955095509550955061250386600a5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127c290919063ffffffff16565b600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061259485600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461280b90919063ffffffff16565b600a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125de81612868565b6125e8848361291f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126459190612ea9565b60405180910390a3505050505050505050565b601654601481905550601754601581905550565b5f805f600e5490505f6012600a6126839190613362565b6298968061269191906133ac565b90506126c36012600a6126a49190613362565b629896806126b291906133ac565b600e5461241690919063ffffffff16565b8210156126f457600e546012600a6126db9190613362565b629896806126e991906133ac565b9350935050506126fd565b81819350935050505b9091565b5f8083118290612747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273e9190612d62565b60405180910390fd5b505f83856127559190613bfb565b9050809150509392505050565b5f805f805f805f805f61277a8a601454601554612959565b9250925092505f6127896123ed565b90505f805f61279a8e8787876129eb565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61280383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061201f565b905092915050565b5f80828461281991906138c5565b90508381101561285e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285590613c75565b60405180910390fd5b8091505092915050565b5f6128716123ed565b90505f6128878284612a6f90919063ffffffff16565b90506128d981600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461280b90919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b61293482600e546127c290919063ffffffff16565b600e8190555061294f81600f5461280b90919063ffffffff16565b600f819055505050565b5f805f806129836064612975888a612a6f90919063ffffffff16565b61241690919063ffffffff16565b90505f6129ac606461299e888b612a6f90919063ffffffff16565b61241690919063ffffffff16565b90505f6129d4826129c6858c6127c290919063ffffffff16565b6127c290919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612a028589612a6f90919063ffffffff16565b90505f612a188689612a6f90919063ffffffff16565b90505f612a2e8789612a6f90919063ffffffff16565b90505f612a5682612a4885876127c290919063ffffffff16565b6127c290919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612a7f575f9050612ae0565b5f8284612a8c91906133ac565b9050828482612a9b9190613bfb565b14612adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad290613d03565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b4182612afb565b810181811067ffffffffffffffff82111715612b6057612b5f612b0b565b5b80604052505050565b5f612b72612ae6565b9050612b7e8282612b38565b919050565b5f67ffffffffffffffff821115612b9d57612b9c612b0b565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bdb82612bb2565b9050919050565b612beb81612bd1565b8114612bf5575f80fd5b50565b5f81359050612c0681612be2565b92915050565b5f612c1e612c1984612b83565b612b69565b90508083825260208201905060208402830185811115612c4157612c40612bae565b5b835b81811015612c6a5780612c568882612bf8565b845260208401935050602081019050612c43565b5050509392505050565b5f82601f830112612c8857612c87612af7565b5b8135612c98848260208601612c0c565b91505092915050565b5f60208284031215612cb657612cb5612aef565b5b5f82013567ffffffffffffffff811115612cd357612cd2612af3565b5b612cdf84828501612c74565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d1f578082015181840152602081019050612d04565b5f8484015250505050565b5f612d3482612ce8565b612d3e8185612cf2565b9350612d4e818560208601612d02565b612d5781612afb565b840191505092915050565b5f6020820190508181035f830152612d7a8184612d2a565b905092915050565b5f819050919050565b612d9481612d82565b8114612d9e575f80fd5b50565b5f81359050612daf81612d8b565b92915050565b5f8060408385031215612dcb57612dca612aef565b5b5f612dd885828601612bf8565b9250506020612de985828601612da1565b9150509250929050565b5f8115159050919050565b612e0781612df3565b82525050565b5f602082019050612e205f830184612dfe565b92915050565b5f819050919050565b5f612e49612e44612e3f84612bb2565b612e26565b612bb2565b9050919050565b5f612e5a82612e2f565b9050919050565b5f612e6b82612e50565b9050919050565b612e7b81612e61565b82525050565b5f602082019050612e945f830184612e72565b92915050565b612ea381612d82565b82525050565b5f602082019050612ebc5f830184612e9a565b92915050565b5f805f60608486031215612ed957612ed8612aef565b5b5f612ee686828701612bf8565b9350506020612ef786828701612bf8565b9250506040612f0886828701612da1565b9150509250925092565b5f60ff82169050919050565b612f2781612f12565b82525050565b5f602082019050612f405f830184612f1e565b92915050565b612f4f81612bd1565b82525050565b5f602082019050612f685f830184612f46565b92915050565b5f60208284031215612f8357612f82612aef565b5b5f612f9084828501612bf8565b91505092915050565b612fa281612df3565b8114612fac575f80fd5b50565b5f81359050612fbd81612f99565b92915050565b5f60208284031215612fd857612fd7612aef565b5b5f612fe584828501612faf565b91505092915050565b5f6020828403121561300357613002612aef565b5b5f61301084828501612da1565b91505092915050565b5f805f806080858703121561303157613030612aef565b5b5f61303e87828801612da1565b945050602061304f87828801612da1565b935050604061306087828801612da1565b925050606061307187828801612da1565b91505092959194509250565b5f80fd5b5f8083601f84011261309657613095612af7565b5b8235905067ffffffffffffffff8111156130b3576130b261307d565b5b6020830191508360208202830111156130cf576130ce612bae565b5b9250929050565b5f805f604084860312156130ed576130ec612aef565b5b5f84013567ffffffffffffffff81111561310a57613109612af3565b5b61311686828701613081565b9350935050602061312986828701612faf565b9150509250925092565b5f806040838503121561314957613148612aef565b5b5f61315685828601612bf8565b925050602061316785828601612bf8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131a5602083612cf2565b91506131b082613171565b602082019050919050565b5f6020820190508181035f8301526131d281613199565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156132885780860481111561326457613263613206565b5b60018516156132735780820291505b808102905061328185613233565b9450613248565b94509492505050565b5f826132a0576001905061335b565b816132ad575f905061335b565b81600181146132c357600281146132cd576132fc565b600191505061335b565b60ff8411156132df576132de613206565b5b8360020a9150848211156132f6576132f5613206565b5b5061335b565b5060208310610133831016604e8410600b84101617156133315782820a90508381111561332c5761332b613206565b5b61335b565b61333e848484600161323f565b9250905081840481111561335557613354613206565b5b81810290505b9392505050565b5f61336c82612d82565b915061337783612f12565b92506133a47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613291565b905092915050565b5f6133b682612d82565b91506133c183612d82565b92508282026133cf81612d82565b915082820484148315176133e6576133e5613206565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613447602683612cf2565b9150613452826133ed565b604082019050919050565b5f6020820190508181035f8301526134748161343b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134d5602483612cf2565b91506134e08261347b565b604082019050919050565b5f6020820190508181035f830152613502816134c9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613563602283612cf2565b915061356e82613509565b604082019050919050565b5f6020820190508181035f83015261359081613557565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135f1602583612cf2565b91506135fc82613597565b604082019050919050565b5f6020820190508181035f83015261361e816135e5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61367f602383612cf2565b915061368a82613625565b604082019050919050565b5f6020820190508181035f8301526136ac81613673565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61370d602983612cf2565b9150613718826136b3565b604082019050919050565b5f6020820190508181035f83015261373a81613701565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f61379b603f83612cf2565b91506137a682613741565b604082019050919050565b5f6020820190508181035f8301526137c88161378f565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613803601c83612cf2565b915061380e826137cf565b602082019050919050565b5f6020820190508181035f830152613830816137f7565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613891602383612cf2565b915061389c82613837565b604082019050919050565b5f6020820190508181035f8301526138be81613885565b9050919050565b5f6138cf82612d82565b91506138da83612d82565b92508282019050808211156138f2576138f1613206565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613952602383612cf2565b915061395d826138f8565b604082019050919050565b5f6020820190508181035f83015261397f81613946565b9050919050565b5f61399082612d82565b915061399b83612d82565b92508282039050818111156139b3576139b2613206565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613a13602a83612cf2565b9150613a1e826139b9565b604082019050919050565b5f6020820190508181035f830152613a4081613a07565b9050919050565b5f81519050613a5581612be2565b92915050565b5f60208284031215613a7057613a6f612aef565b5b5f613a7d84828501613a47565b91505092915050565b5f819050919050565b5f613aa9613aa4613a9f84613a86565b612e26565b612d82565b9050919050565b613ab981613a8f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613af181612bd1565b82525050565b5f613b028383613ae8565b60208301905092915050565b5f602082019050919050565b5f613b2482613abf565b613b2e8185613ac9565b9350613b3983613ad9565b805f5b83811015613b69578151613b508882613af7565b9750613b5b83613b0e565b925050600181019050613b3c565b5085935050505092915050565b5f60a082019050613b895f830188612e9a565b613b966020830187613ab0565b8181036040830152613ba88186613b1a565b9050613bb76060830185612f46565b613bc46080830184612e9a565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613c0582612d82565b9150613c1083612d82565b925082613c2057613c1f613bce565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c5f601b83612cf2565b9150613c6a82613c2b565b602082019050919050565b5f6020820190508181035f830152613c8c81613c53565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ced602183612cf2565b9150613cf882613c93565b604082019050919050565b5f6020820190508181035f830152613d1a81613ce1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a727778981ad1deba030596c8734115302f50e44e160986b5411233eb02e281164736f6c63430008160033

Deployed Bytecode Sourcemap

4423:13549:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13145:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6774:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7699:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4717:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7051:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7900:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5140:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6960:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4765:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13322:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17354:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12664:196;;;;;;;;;;;;;:::i;:::-;;7154:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1910:148;;;;;;;;;;;;;:::i;:::-;;17494:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5018:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5252:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12868:269;;;;;;;;;;;;;:::i;:::-;;1696:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12350:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5078:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6865:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17163:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16820:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7300:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5208:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12459:197;;;;;;;;;;;;;:::i;:::-;;17733:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7507:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17610:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2066:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13145:169;1833:12;:10;:12::i;:::-;1823:22;;:6;;;;;;;;;;:22;;;1815:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13221:9:::1;13216:91;13240:5;:12;13236:1;:16;13216:91;;;13291:4;13274;:14;13279:5;13285:1;13279:8;;;;;;;;:::i;:::-;;;;;;;;13274:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13254:3;;;;;;;13216:91;;;;13145:169:::0;:::o;6774:83::-;6811:13;6844:5;;;;;;;;;;;;;;;;;6837:12;;6774:83;:::o;7699:193::-;7801:4;7823:39;7832:12;:10;:12::i;:::-;7846:7;7855:6;7823:8;:39::i;:::-;7880:4;7873:11;;7699:193;;;;:::o;4717:41::-;;;;;;;;;;;;;:::o;7051:95::-;7104:7;4602:2;4996;:15;;;;:::i;:::-;4985:8;:26;;;;:::i;:::-;7124:14;;7051:95;:::o;7900:446::-;8032:4;8049:36;8059:6;8067:9;8078:6;8049:9;:36::i;:::-;8096:220;8119:6;8140:12;:10;:12::i;:::-;8167:138;8223:6;8167:138;;;;;;;;;;;;;;;;;:11;:19;8179:6;8167:19;;;;;;;;;;;;;;;:33;8187:12;:10;:12::i;:::-;8167:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8096:8;:220::i;:::-;8334:4;8327:11;;7900:446;;;;;:::o;5140:59::-;;;;:::o;6960:83::-;7001:5;4602:2;7019:16;;6960:83;:::o;4765:28::-;;;;;;;;;;;;;:::o;13322:92::-;1833:12;:10;:12::i;:::-;1823:22;;:6;;;;;;;;;;:22;;;1815:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13401:5:::1;13386:4;:12;13391:6;13386:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13322:92:::0;:::o;17354:101::-;1833:12;:10;:12::i;:::-;1823:22;;:6;;;;;;;;;;:22;;;1815:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17435:12:::1;17421:11;;:26;;;;;;;;;;;;;;;;;;17354:101:::0;:::o;12664:196::-;12730:17;;;;;;;;;;;12714:33;;:12;:10;:12::i;:::-;:33;;;12706:42;;;;;;12759:26;12788:21;12759:50;;12820:32;12833:18;12820:12;:32::i;:::-;12695:165;12664:196::o;7154:138::-;7220:7;7247:37;7267:7;:16;7275:7;7267:16;;;;;;;;;;;;;;;;7247:19;:37::i;:::-;7240:44;;7154:138;;;:::o;1910:148::-;1833:12;:10;:12::i;:::-;1823:22;;:6;;;;;;;;;;:22;;;1815:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2017:1:::1;1980:40;;2001:6;::::0;::::1;;;;;;;;1980:40;;;;;;;;;;;;2048:1;2031:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1910:148::o:0;17494:108::-;1833:12;:10;:12::i;:::-;1823:22;;:6;;;;;;;;;;:22;;;1815:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17583:11:::1;17568:12;:26;;;;17494:108:::0;:::o;5018:53::-;;;;:::o;5252:43::-;;;;;;;;;;;;;;;;;:::o;12868:269::-;12935:17;;;;;;;;;;;12919:33;;:12;:10;:12::i;:::-;:33;;;12911:42;;;;;;12981:1;12964:14;:18;;;;13011:1;12993:15;:19;;;;13038:1;13023:12;:16;;;;13066:1;13050:13;:17;;;;13098:1;13078:17;:21;;;;13128:1;13110:15;:19;;;;12868:269::o;1696:79::-;1734:7;1761:6;;;;;;;;;;;1754:13;;1696:79;:::o;12350:101::-;1833:12;:10;:12::i;:::-;1823:22;;:6;;;;;;;;;;:22;;;1815:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12431:12:::1;12417:11;;:26;;;;;;;;;;;;;;;;;;12350:101:::0;:::o;5078:55::-;;;;:::o;6865:87::-;6904:13;6937:7;;;;;;;;;;;;;;;;;6930:14;;6865:87;:::o;17163:139::-;1833:12;:10;:12::i;:::-;1823:22;;:6;;;;;;;;;;:22;;;1815:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17276:18:::1;17254:19;:40;;;;17163:139:::0;:::o;16820:291::-;1833:12;:10;:12::i;:::-;1823:22;;:6;;;;;;;;;;:22;;;1815:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16971:13:::1;16954:14;:30;;;;17013:14;16995:15;:32;;;;17053:11;17038:12;:26;;;;17091:12;17075:13;:28;;;;16820:291:::0;;;;:::o;7300:199::-;7405:4;7427:42;7437:12;:10;:12::i;:::-;7451:9;7462:6;7427:9;:42::i;:::-;7487:4;7480:11;;7300:199;;;;:::o;5208:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12459:197::-;12525:17;;;;;;;;;;;12509:33;;:12;:10;:12::i;:::-;:33;;;12501:42;;;;;;12554:23;12580:24;12598:4;12580:9;:24::i;:::-;12554:50;;12615:33;12632:15;12615:16;:33::i;:::-;12490:166;12459:197::o;17733:234::-;1833:12;:10;:12::i;:::-;1823:22;;:6;;;;;;;;;;:22;;;1815:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17850:9:::1;17846:114;17869:8;;:15;;17865:1;:19;17846:114;;;17940:8;17906:18;:31;17925:8;;17934:1;17925:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17906:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17886:3;;;;;;;17846:114;;;;17733:234:::0;;;:::o;7507:184::-;7624:7;7656:11;:18;7668:5;7656:18;;;;;;;;;;;;;;;:27;7675:7;7656:27;;;;;;;;;;;;;;;;7649:34;;7507:184;;;;:::o;17610:115::-;1833:12;:10;:12::i;:::-;1823:22;;:6;;;;;;;;;;:22;;;1815:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17704:13:::1;17687:14;:30;;;;17610:115:::0;:::o;2066:244::-;1833:12;:10;:12::i;:::-;1823:22;;:6;;;;;;;;;;:22;;;1815:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2175:1:::1;2155:22;;:8;:22;;::::0;2147:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2265:8;2236:38;;2257:6;::::0;::::1;;;;;;;;2236:38;;;;;;;;;;;;2294:8;2285:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2066:244:::0;:::o;455:98::-;508:7;535:10;528:17;;455:98;:::o;9037:369::-;9181:1;9164:19;;:5;:19;;;9156:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9262:1;9243:21;;:7;:21;;;9235:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9344:6;9314:11;:18;9326:5;9314:18;;;;;;;;;;;;;;;:27;9333:7;9314:27;;;;;;;;;;;;;;;:36;;;;9382:7;9366:32;;9375:5;9366:32;;;9391:6;9366:32;;;;;;:::i;:::-;;;;;;;;9037:369;;;:::o;9414:2330::-;9552:1;9536:18;;:4;:18;;;9528:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9629:1;9615:16;;:2;:16;;;9607:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9699:1;9690:6;:10;9682:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9771:7;:5;:7::i;:::-;9763:15;;:4;:15;;;;:32;;;;;9788:7;:5;:7::i;:::-;9782:13;;:2;:13;;;;9763:32;9759:1259;;;9852:11;;;;;;;;;;;9847:144;;9900:7;:5;:7::i;:::-;9892:15;;:4;:15;;;9884:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9847:144;10025:12;;10015:6;:22;;10007:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10094:4;:10;10099:4;10094:10;;;;;;;;;;;;;;;;;;;;;;;;;10093:11;:24;;;;;10109:4;:8;10114:2;10109:8;;;;;;;;;;;;;;;;;;;;;;;;;10108:9;10093:24;10085:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10183:13;;;;;;;;;;;10177:19;;:2;:19;;;10174:146;;10250:14;;10241:6;10225:13;10235:2;10225:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10217:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10174:146;10336:28;10367:24;10385:4;10367:9;:24::i;:::-;10336:55;;10406:12;10445:19;;10421:20;:43;;10406:58;;10508:12;;10484:20;:36;10481:124;;10577:12;;10554:35;;10481:124;10625:7;:18;;;;;10637:6;;;;;;;;;;;10636:7;10625:18;:43;;;;;10655:13;;;;;;;;;;;10647:21;;:4;:21;;;;10625:43;:58;;;;;10672:11;;;;;;;;;;;10625:58;:87;;;;;10688:18;:24;10707:4;10688:24;;;;;;;;;;;;;;;;;;;;;;;;;10687:25;10625:87;:114;;;;;10717:18;:22;10736:2;10717:22;;;;;;;;;;;;;;;;;;;;;;;;;10716:23;10625:114;10621:386;;;10760:38;10777:20;10760:16;:38::i;:::-;10817:26;10846:21;10817:50;;10911:1;10890:18;:22;10886:106;;;10937:35;10950:21;10937:12;:35::i;:::-;10886:106;10741:266;10621:386;9797:1221;;9759:1259;11030:12;11045:4;11030:19;;11094:18;:24;11113:4;11094:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11122:18;:22;11141:2;11122:22;;;;;;;;;;;;;;;;;;;;;;;;;11094:50;11093:102;;;;11158:13;;;;;;;;;;;11150:21;;:4;:21;;;;:44;;;;;11181:13;;;;;;;;;;;11175:19;;:2;:19;;;;11150:44;11093:102;11089:594;;;11222:5;11212:15;;11089:594;;;11305:13;;;;;;;;;;;11297:21;;:4;:21;;;:55;;;;;11336:15;;;;;;;;;;;11322:30;;:2;:30;;;;11297:55;11294:162;;;11385:14;;11373:9;:26;;;;11428:12;;11418:7;:22;;;;11294:162;11515:13;;;;;;;;;;;11509:19;;:2;:19;;;:55;;;;;11548:15;;;;;;;;;;;11532:32;;:4;:32;;;;11509:55;11505:165;;;11597:15;;11585:9;:27;;;;11641:13;;11631:7;:23;;;;11505:165;11089:594;11695:41;11710:4;11716:2;11720:6;11728:7;11695:14;:41::i;:::-;9517:2227;9414:2330;;;:::o;2674:224::-;2794:7;2827:1;2822;:6;;2830:12;2814:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2854:9;2870:1;2866;:5;;;;:::i;:::-;2854:17;;2889:1;2882:8;;;2674:224;;;;;:::o;12243:99::-;12300:17;;;;;;;;;;;:26;;:34;12327:6;12300:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12243:99;:::o;8354:323::-;8449:7;8507;;8496;:18;;8474:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8595:19;8617:10;:8;:10::i;:::-;8595:32;;8645:24;8657:11;8645:7;:11;;:24;;;;:::i;:::-;8638:31;;;8354:323;;;:::o;11752:483::-;6134:4;6125:6;;:13;;;;;;;;;;;;;;;;;;11830:21:::1;11868:1;11854:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11830:40;;11899:4;11881;11886:1;11881:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11925:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11915:4;11920:1;11915:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11958:62;11975:4;11990:15;;;;;;;;;;;12008:11;11958:8;:62::i;:::-;12031:15;;;;;;;;;;;:66;;;12112:11;12138:1;12154:4;12181;12201:15;12031:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11819:416;6170:5:::0;6161:6;;:14;;;;;;;;;;;;;;;;;;11752:483;:::o;13422:282::-;13578:7;13573:28;;13587:14;:12;:14::i;:::-;13573:28;13612:44;13630:6;13638:9;13649:6;13612:17;:44::i;:::-;13672:7;13667:29;;13681:15;:13;:15::i;:::-;13667:29;13422:282;;;;:::o;16383:164::-;16425:7;16446:15;16463;16482:19;:17;:19::i;:::-;16445:56;;;;16519:20;16531:7;16519;:11;;:20;;;;:::i;:::-;16512:27;;;;16383:164;:::o;3160:132::-;3218:7;3245:39;3249:1;3252;3245:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3238:46;;3160:132;;;;:::o;8685:219::-;8745:1;8732:9;;:14;:30;;;;;8761:1;8750:7;;:12;8732:30;8764:7;8728:43;8803:9;;8783:17;:29;;;;8841:7;;8823:15;:25;;;;8873:1;8861:9;:13;;;;8895:1;8885:7;:11;;;;8685:219;:::o;13712:610::-;13859:15;13889:23;13927:12;13954:23;13992:12;14019:13;14046:19;14057:7;14046:10;:19::i;:::-;13844:221;;;;;;;;;;;;14094:28;14114:7;14094;:15;14102:6;14094:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14076:7;:15;14084:6;14076:15;;;;;;;;;;;;;;;:46;;;;14154:39;14177:15;14154:7;:18;14162:9;14154:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14133:7;:18;14141:9;14133:18;;;;;;;;;;;;;;;:60;;;;14204:16;14214:5;14204:9;:16::i;:::-;14231:23;14243:4;14249;14231:11;:23::i;:::-;14287:9;14270:44;;14279:6;14270:44;;;14298:15;14270:44;;;;;;:::i;:::-;;;;;;;;13833:489;;;;;;13712:610;;;:::o;8912:117::-;8968:17;;8956:9;:29;;;;9006:15;;8996:7;:25;;;;8912:117::o;16555:257::-;16606:7;16615;16635:15;16653:7;;16635:25;;16671:15;4602:2;4996;:15;;;;:::i;:::-;4985:8;:26;;;;:::i;:::-;16671:25;;16721:20;4602:2;4996;:15;;;;:::i;:::-;4985:8;:26;;;;:::i;:::-;16721:7;;:11;;:20;;;;:::i;:::-;16711:7;:30;16707:61;;;16751:7;;4602:2;4996;:15;;;;:::i;:::-;4985:8;:26;;;;:::i;:::-;16743:25;;;;;;;;16707:61;16787:7;16796;16779:25;;;;;;16555:257;;;:::o;3300:223::-;3420:7;3452:1;3448;:5;3455:12;3440:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3479:9;3495:1;3491;:5;;;;:::i;:::-;3479:17;;3514:1;3507:8;;;3300:223;;;;;:::o;14741:615::-;14841:7;14863;14885;14907;14929;14951;14987:23;15012:12;15026:13;15056:40;15068:7;15077:9;;15088:7;;15056:11;:40::i;:::-;14986:110;;;;;;15107:19;15129:10;:8;:10::i;:::-;15107:32;;15151:15;15168:23;15193:12;15222:46;15234:7;15243:4;15249:5;15256:11;15222;:46::i;:::-;15150:118;;;;;;15287:7;15296:15;15313:4;15319:15;15336:4;15342:5;15279:69;;;;;;;;;;;;;;;;;;;14741:615;;;;;;;:::o;2530:136::-;2588:7;2615:43;2619:1;2622;2615:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2608:50;;2530:136;;;;:::o;2343:179::-;2401:7;2421:9;2437:1;2433;:5;;;;:::i;:::-;2421:17;;2462:1;2457;:6;;2449:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2513:1;2506:8;;;2343:179;;;;:::o;14330:211::-;14383:19;14405:10;:8;:10::i;:::-;14383:32;;14426:13;14442:22;14452:11;14442:5;:9;;:22;;;;:::i;:::-;14426:38;;14500:33;14527:5;14500:7;:22;14516:4;14500:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14475:7;:22;14491:4;14475:22;;;;;;;;;;;;;;;:58;;;;14372:169;;14330:211;:::o;14549:147::-;14627:17;14639:4;14627:7;;:11;;:17;;;;:::i;:::-;14617:7;:27;;;;14668:20;14683:4;14668:10;;:14;;:20;;;;:::i;:::-;14655:10;:33;;;;14549:147;;:::o;15364:469::-;15533:7;15555;15577;15612:12;15627:30;15653:3;15627:21;15639:8;15627:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15612:45;;15668:13;15684:28;15708:3;15684:19;15696:6;15684:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15668:44;;15723:23;15749:28;15771:5;15749:17;15761:4;15749:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15723:54;;15796:15;15813:4;15819:5;15788:37;;;;;;;;;15364:469;;;;;;;:::o;15841:534::-;16035:7;16057;16079;16114:15;16132:24;16144:11;16132:7;:11;;:24;;;;:::i;:::-;16114:42;;16167:12;16182:21;16191:11;16182:4;:8;;:21;;;;:::i;:::-;16167:36;;16214:13;16230:22;16240:11;16230:5;:9;;:22;;;;:::i;:::-;16214:38;;16263:23;16289:28;16311:5;16289:17;16301:4;16289:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16263:54;;16336:7;16345:15;16362:4;16328:39;;;;;;;;;;15841:534;;;;;;;;:::o;2906:246::-;2964:7;2993:1;2988;:6;2984:47;;3018:1;3011:8;;;;2984:47;3041:9;3057:1;3053;:5;;;;:::i;:::-;3041:17;;3086:1;3081;3077;:5;;;;:::i;:::-;:10;3069:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3143:1;3136:8;;;2906:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8238:86::-;8273:7;8313:4;8306:5;8302:16;8291:27;;8238:86;;;:::o;8330:112::-;8413:22;8429:5;8413:22;:::i;:::-;8408:3;8401:35;8330:112;;:::o;8448:214::-;8537:4;8575:2;8564:9;8560:18;8552:26;;8588:67;8652:1;8641:9;8637:17;8628:6;8588:67;:::i;:::-;8448:214;;;;:::o;8668:118::-;8755:24;8773:5;8755:24;:::i;:::-;8750:3;8743:37;8668:118;;:::o;8792:222::-;8885:4;8923:2;8912:9;8908:18;8900:26;;8936:71;9004:1;8993:9;8989:17;8980:6;8936:71;:::i;:::-;8792:222;;;;:::o;9020:329::-;9079:6;9128:2;9116:9;9107:7;9103:23;9099:32;9096:119;;;9134:79;;:::i;:::-;9096:119;9254:1;9279:53;9324:7;9315:6;9304:9;9300:22;9279:53;:::i;:::-;9269:63;;9225:117;9020:329;;;;:::o;9355:116::-;9425:21;9440:5;9425:21;:::i;:::-;9418:5;9415:32;9405:60;;9461:1;9458;9451:12;9405:60;9355:116;:::o;9477:133::-;9520:5;9558:6;9545:20;9536:29;;9574:30;9598:5;9574:30;:::i;:::-;9477:133;;;;:::o;9616:323::-;9672:6;9721:2;9709:9;9700:7;9696:23;9692:32;9689:119;;;9727:79;;:::i;:::-;9689:119;9847:1;9872:50;9914:7;9905:6;9894:9;9890:22;9872:50;:::i;:::-;9862:60;;9818:114;9616:323;;;;:::o;9945:329::-;10004:6;10053:2;10041:9;10032:7;10028:23;10024:32;10021:119;;;10059:79;;:::i;:::-;10021:119;10179:1;10204:53;10249:7;10240:6;10229:9;10225:22;10204:53;:::i;:::-;10194:63;;10150:117;9945:329;;;;:::o;10280:765::-;10366:6;10374;10382;10390;10439:3;10427:9;10418:7;10414:23;10410:33;10407:120;;;10446:79;;:::i;:::-;10407:120;10566:1;10591:53;10636:7;10627:6;10616:9;10612:22;10591:53;:::i;:::-;10581:63;;10537:117;10693:2;10719:53;10764:7;10755:6;10744:9;10740:22;10719:53;:::i;:::-;10709:63;;10664:118;10821:2;10847:53;10892:7;10883:6;10872:9;10868:22;10847:53;:::i;:::-;10837:63;;10792:118;10949:2;10975:53;11020:7;11011:6;11000:9;10996:22;10975:53;:::i;:::-;10965:63;;10920:118;10280:765;;;;;;;:::o;11051:117::-;11160:1;11157;11150:12;11191:568;11264:8;11274:6;11324:3;11317:4;11309:6;11305:17;11301:27;11291:122;;11332:79;;:::i;:::-;11291:122;11445:6;11432:20;11422:30;;11475:18;11467:6;11464:30;11461:117;;;11497:79;;:::i;:::-;11461:117;11611:4;11603:6;11599:17;11587:29;;11665:3;11657:4;11649:6;11645:17;11635:8;11631:32;11628:41;11625:128;;;11672:79;;:::i;:::-;11625:128;11191:568;;;;;:::o;11765:698::-;11857:6;11865;11873;11922:2;11910:9;11901:7;11897:23;11893:32;11890:119;;;11928:79;;:::i;:::-;11890:119;12076:1;12065:9;12061:17;12048:31;12106:18;12098:6;12095:30;12092:117;;;12128:79;;:::i;:::-;12092:117;12241:80;12313:7;12304:6;12293:9;12289:22;12241:80;:::i;:::-;12223:98;;;;12019:312;12370:2;12396:50;12438:7;12429:6;12418:9;12414:22;12396:50;:::i;:::-;12386:60;;12341:115;11765:698;;;;;:::o;12469:474::-;12537:6;12545;12594:2;12582:9;12573:7;12569:23;12565:32;12562:119;;;12600:79;;:::i;:::-;12562:119;12720:1;12745:53;12790:7;12781:6;12770:9;12766:22;12745:53;:::i;:::-;12735:63;;12691:117;12847:2;12873:53;12918:7;12909:6;12898:9;12894:22;12873:53;:::i;:::-;12863:63;;12818:118;12469:474;;;;;:::o;12949:182::-;13089:34;13085:1;13077:6;13073:14;13066:58;12949:182;:::o;13137:366::-;13279:3;13300:67;13364:2;13359:3;13300:67;:::i;:::-;13293:74;;13376:93;13465:3;13376:93;:::i;:::-;13494:2;13489:3;13485:12;13478:19;;13137:366;;;:::o;13509:419::-;13675:4;13713:2;13702:9;13698:18;13690:26;;13762:9;13756:4;13752:20;13748:1;13737:9;13733:17;13726:47;13790:131;13916:4;13790:131;:::i;:::-;13782:139;;13509:419;;;:::o;13934:180::-;13982:77;13979:1;13972:88;14079:4;14076:1;14069:15;14103:4;14100:1;14093:15;14120:180;14168:77;14165:1;14158:88;14265:4;14262:1;14255:15;14289:4;14286:1;14279:15;14306:102;14348:8;14395:5;14392:1;14388:13;14367:34;;14306:102;;;:::o;14414:848::-;14475:5;14482:4;14506:6;14497:15;;14530:5;14521:14;;14544:712;14565:1;14555:8;14552:15;14544:712;;;14660:4;14655:3;14651:14;14645:4;14642:24;14639:50;;;14669:18;;:::i;:::-;14639:50;14719:1;14709:8;14705:16;14702:451;;;15134:4;15127:5;15123:16;15114:25;;14702:451;15184:4;15178;15174:15;15166:23;;15214:32;15237:8;15214:32;:::i;:::-;15202:44;;14544:712;;;14414:848;;;;;;;:::o;15268:1073::-;15322:5;15513:8;15503:40;;15534:1;15525:10;;15536:5;;15503:40;15562:4;15552:36;;15579:1;15570:10;;15581:5;;15552:36;15648:4;15696:1;15691:27;;;;15732:1;15727:191;;;;15641:277;;15691:27;15709:1;15700:10;;15711:5;;;15727:191;15772:3;15762:8;15759:17;15756:43;;;15779:18;;:::i;:::-;15756:43;15828:8;15825:1;15821:16;15812:25;;15863:3;15856:5;15853:14;15850:40;;;15870:18;;:::i;:::-;15850:40;15903:5;;;15641:277;;16027:2;16017:8;16014:16;16008:3;16002:4;15999:13;15995:36;15977:2;15967:8;15964:16;15959:2;15953:4;15950:12;15946:35;15930:111;15927:246;;;16083:8;16077:4;16073:19;16064:28;;16118:3;16111:5;16108:14;16105:40;;;16125:18;;:::i;:::-;16105:40;16158:5;;15927:246;16198:42;16236:3;16226:8;16220:4;16217:1;16198:42;:::i;:::-;16183:57;;;;16272:4;16267:3;16263:14;16256:5;16253:25;16250:51;;;16281:18;;:::i;:::-;16250:51;16330:4;16323:5;16319:16;16310:25;;15268:1073;;;;;;:::o;16347:281::-;16405:5;16429:23;16447:4;16429:23;:::i;:::-;16421:31;;16473:25;16489:8;16473:25;:::i;:::-;16461:37;;16517:104;16554:66;16544:8;16538:4;16517:104;:::i;:::-;16508:113;;16347:281;;;;:::o;16634:410::-;16674:7;16697:20;16715:1;16697:20;:::i;:::-;16692:25;;16731:20;16749:1;16731:20;:::i;:::-;16726:25;;16786:1;16783;16779:9;16808:30;16826:11;16808:30;:::i;:::-;16797:41;;16987:1;16978:7;16974:15;16971:1;16968:22;16948:1;16941:9;16921:83;16898:139;;17017:18;;:::i;:::-;16898:139;16682:362;16634:410;;;;:::o;17050:225::-;17190:34;17186:1;17178:6;17174:14;17167:58;17259:8;17254:2;17246:6;17242:15;17235:33;17050:225;:::o;17281:366::-;17423:3;17444:67;17508:2;17503:3;17444:67;:::i;:::-;17437:74;;17520:93;17609:3;17520:93;:::i;:::-;17638:2;17633:3;17629:12;17622:19;;17281:366;;;:::o;17653:419::-;17819:4;17857:2;17846:9;17842:18;17834:26;;17906:9;17900:4;17896:20;17892:1;17881:9;17877:17;17870:47;17934:131;18060:4;17934:131;:::i;:::-;17926:139;;17653:419;;;:::o;18078:223::-;18218:34;18214:1;18206:6;18202:14;18195:58;18287:6;18282:2;18274:6;18270:15;18263:31;18078:223;:::o;18307:366::-;18449:3;18470:67;18534:2;18529:3;18470:67;:::i;:::-;18463:74;;18546:93;18635:3;18546:93;:::i;:::-;18664:2;18659:3;18655:12;18648:19;;18307:366;;;:::o;18679:419::-;18845:4;18883:2;18872:9;18868:18;18860:26;;18932:9;18926:4;18922:20;18918:1;18907:9;18903:17;18896:47;18960:131;19086:4;18960:131;:::i;:::-;18952:139;;18679:419;;;:::o;19104:221::-;19244:34;19240:1;19232:6;19228:14;19221:58;19313:4;19308:2;19300:6;19296:15;19289:29;19104:221;:::o;19331:366::-;19473:3;19494:67;19558:2;19553:3;19494:67;:::i;:::-;19487:74;;19570:93;19659:3;19570:93;:::i;:::-;19688:2;19683:3;19679:12;19672:19;;19331:366;;;:::o;19703:419::-;19869:4;19907:2;19896:9;19892:18;19884:26;;19956:9;19950:4;19946:20;19942:1;19931:9;19927:17;19920:47;19984:131;20110:4;19984:131;:::i;:::-;19976:139;;19703:419;;;:::o;20128:224::-;20268:34;20264:1;20256:6;20252:14;20245:58;20337:7;20332:2;20324:6;20320:15;20313:32;20128:224;:::o;20358:366::-;20500:3;20521:67;20585:2;20580:3;20521:67;:::i;:::-;20514:74;;20597:93;20686:3;20597:93;:::i;:::-;20715:2;20710:3;20706:12;20699:19;;20358:366;;;:::o;20730:419::-;20896:4;20934:2;20923:9;20919:18;20911:26;;20983:9;20977:4;20973:20;20969:1;20958:9;20954:17;20947:47;21011:131;21137:4;21011:131;:::i;:::-;21003:139;;20730:419;;;:::o;21155:222::-;21295:34;21291:1;21283:6;21279:14;21272:58;21364:5;21359:2;21351:6;21347:15;21340:30;21155:222;:::o;21383:366::-;21525:3;21546:67;21610:2;21605:3;21546:67;:::i;:::-;21539:74;;21622:93;21711:3;21622:93;:::i;:::-;21740:2;21735:3;21731:12;21724:19;;21383:366;;;:::o;21755:419::-;21921:4;21959:2;21948:9;21944:18;21936:26;;22008:9;22002:4;21998:20;21994:1;21983:9;21979:17;21972:47;22036:131;22162:4;22036:131;:::i;:::-;22028:139;;21755:419;;;:::o;22180:228::-;22320:34;22316:1;22308:6;22304:14;22297:58;22389:11;22384:2;22376:6;22372:15;22365:36;22180:228;:::o;22414:366::-;22556:3;22577:67;22641:2;22636:3;22577:67;:::i;:::-;22570:74;;22653:93;22742:3;22653:93;:::i;:::-;22771:2;22766:3;22762:12;22755:19;;22414:366;;;:::o;22786:419::-;22952:4;22990:2;22979:9;22975:18;22967:26;;23039:9;23033:4;23029:20;23025:1;23014:9;23010:17;23003:47;23067:131;23193:4;23067:131;:::i;:::-;23059:139;;22786:419;;;:::o;23211:250::-;23351:34;23347:1;23339:6;23335:14;23328:58;23420:33;23415:2;23407:6;23403:15;23396:58;23211:250;:::o;23467:366::-;23609:3;23630:67;23694:2;23689:3;23630:67;:::i;:::-;23623:74;;23706:93;23795:3;23706:93;:::i;:::-;23824:2;23819:3;23815:12;23808:19;;23467:366;;;:::o;23839:419::-;24005:4;24043:2;24032:9;24028:18;24020:26;;24092:9;24086:4;24082:20;24078:1;24067:9;24063:17;24056:47;24120:131;24246:4;24120:131;:::i;:::-;24112:139;;23839:419;;;:::o;24264:178::-;24404:30;24400:1;24392:6;24388:14;24381:54;24264:178;:::o;24448:366::-;24590:3;24611:67;24675:2;24670:3;24611:67;:::i;:::-;24604:74;;24687:93;24776:3;24687:93;:::i;:::-;24805:2;24800:3;24796:12;24789:19;;24448:366;;;:::o;24820:419::-;24986:4;25024:2;25013:9;25009:18;25001:26;;25073:9;25067:4;25063:20;25059:1;25048:9;25044:17;25037:47;25101:131;25227:4;25101:131;:::i;:::-;25093:139;;24820:419;;;:::o;25245:222::-;25385:34;25381:1;25373:6;25369:14;25362:58;25454:5;25449:2;25441:6;25437:15;25430:30;25245:222;:::o;25473:366::-;25615:3;25636:67;25700:2;25695:3;25636:67;:::i;:::-;25629:74;;25712:93;25801:3;25712:93;:::i;:::-;25830:2;25825:3;25821:12;25814:19;;25473:366;;;:::o;25845:419::-;26011:4;26049:2;26038:9;26034:18;26026:26;;26098:9;26092:4;26088:20;26084:1;26073:9;26069:17;26062:47;26126:131;26252:4;26126:131;:::i;:::-;26118:139;;25845:419;;;:::o;26270:191::-;26310:3;26329:20;26347:1;26329:20;:::i;:::-;26324:25;;26363:20;26381:1;26363:20;:::i;:::-;26358:25;;26406:1;26403;26399:9;26392:16;;26427:3;26424:1;26421:10;26418:36;;;26434:18;;:::i;:::-;26418:36;26270:191;;;;:::o;26467:222::-;26607:34;26603:1;26595:6;26591:14;26584:58;26676:5;26671:2;26663:6;26659:15;26652:30;26467:222;:::o;26695:366::-;26837:3;26858:67;26922:2;26917:3;26858:67;:::i;:::-;26851:74;;26934:93;27023:3;26934:93;:::i;:::-;27052:2;27047:3;27043:12;27036:19;;26695:366;;;:::o;27067:419::-;27233:4;27271:2;27260:9;27256:18;27248:26;;27320:9;27314:4;27310:20;27306:1;27295:9;27291:17;27284:47;27348:131;27474:4;27348:131;:::i;:::-;27340:139;;27067:419;;;:::o;27492:194::-;27532:4;27552:20;27570:1;27552:20;:::i;:::-;27547:25;;27586:20;27604:1;27586:20;:::i;:::-;27581:25;;27630:1;27627;27623:9;27615:17;;27654:1;27648:4;27645:11;27642:37;;;27659:18;;:::i;:::-;27642:37;27492:194;;;;:::o;27692:229::-;27832:34;27828:1;27820:6;27816:14;27809:58;27901:12;27896:2;27888:6;27884:15;27877:37;27692:229;:::o;27927:366::-;28069:3;28090:67;28154:2;28149:3;28090:67;:::i;:::-;28083:74;;28166:93;28255:3;28166:93;:::i;:::-;28284:2;28279:3;28275:12;28268:19;;27927:366;;;:::o;28299:419::-;28465:4;28503:2;28492:9;28488:18;28480:26;;28552:9;28546:4;28542:20;28538:1;28527:9;28523:17;28516:47;28580:131;28706:4;28580:131;:::i;:::-;28572:139;;28299:419;;;:::o;28724:143::-;28781:5;28812:6;28806:13;28797:22;;28828:33;28855:5;28828:33;:::i;:::-;28724:143;;;;:::o;28873:351::-;28943:6;28992:2;28980:9;28971:7;28967:23;28963:32;28960:119;;;28998:79;;:::i;:::-;28960:119;29118:1;29143:64;29199:7;29190:6;29179:9;29175:22;29143:64;:::i;:::-;29133:74;;29089:128;28873:351;;;;:::o;29230:85::-;29275:7;29304:5;29293:16;;29230:85;;;:::o;29321:158::-;29379:9;29412:61;29430:42;29439:32;29465:5;29439:32;:::i;:::-;29430:42;:::i;:::-;29412:61;:::i;:::-;29399:74;;29321:158;;;:::o;29485:147::-;29580:45;29619:5;29580:45;:::i;:::-;29575:3;29568:58;29485:147;;:::o;29638:114::-;29705:6;29739:5;29733:12;29723:22;;29638:114;;;:::o;29758:184::-;29857:11;29891:6;29886:3;29879:19;29931:4;29926:3;29922:14;29907:29;;29758:184;;;;:::o;29948:132::-;30015:4;30038:3;30030:11;;30068:4;30063:3;30059:14;30051:22;;29948:132;;;:::o;30086:108::-;30163:24;30181:5;30163:24;:::i;:::-;30158:3;30151:37;30086:108;;:::o;30200:179::-;30269:10;30290:46;30332:3;30324:6;30290:46;:::i;:::-;30368:4;30363:3;30359:14;30345:28;;30200:179;;;;:::o;30385:113::-;30455:4;30487;30482:3;30478:14;30470:22;;30385:113;;;:::o;30534:732::-;30653:3;30682:54;30730:5;30682:54;:::i;:::-;30752:86;30831:6;30826:3;30752:86;:::i;:::-;30745:93;;30862:56;30912:5;30862:56;:::i;:::-;30941:7;30972:1;30957:284;30982:6;30979:1;30976:13;30957:284;;;31058:6;31052:13;31085:63;31144:3;31129:13;31085:63;:::i;:::-;31078:70;;31171:60;31224:6;31171:60;:::i;:::-;31161:70;;31017:224;31004:1;31001;30997:9;30992:14;;30957:284;;;30961:14;31257:3;31250:10;;30658:608;;;30534:732;;;;:::o;31272:831::-;31535:4;31573:3;31562:9;31558:19;31550:27;;31587:71;31655:1;31644:9;31640:17;31631:6;31587:71;:::i;:::-;31668:80;31744:2;31733:9;31729:18;31720:6;31668:80;:::i;:::-;31795:9;31789:4;31785:20;31780:2;31769:9;31765:18;31758:48;31823:108;31926:4;31917:6;31823:108;:::i;:::-;31815:116;;31941:72;32009:2;31998:9;31994:18;31985:6;31941:72;:::i;:::-;32023:73;32091:3;32080:9;32076:19;32067:6;32023:73;:::i;:::-;31272:831;;;;;;;;:::o;32109:180::-;32157:77;32154:1;32147:88;32254:4;32251:1;32244:15;32278:4;32275:1;32268:15;32295:185;32335:1;32352:20;32370:1;32352:20;:::i;:::-;32347:25;;32386:20;32404:1;32386:20;:::i;:::-;32381:25;;32425:1;32415:35;;32430:18;;:::i;:::-;32415:35;32472:1;32469;32465:9;32460:14;;32295:185;;;;:::o;32486:177::-;32626:29;32622:1;32614:6;32610:14;32603:53;32486:177;:::o;32669:366::-;32811:3;32832:67;32896:2;32891:3;32832:67;:::i;:::-;32825:74;;32908:93;32997:3;32908:93;:::i;:::-;33026:2;33021:3;33017:12;33010:19;;32669:366;;;:::o;33041:419::-;33207:4;33245:2;33234:9;33230:18;33222:26;;33294:9;33288:4;33284:20;33280:1;33269:9;33265:17;33258:47;33322:131;33448:4;33322:131;:::i;:::-;33314:139;;33041:419;;;:::o;33466:220::-;33606:34;33602:1;33594:6;33590:14;33583:58;33675:3;33670:2;33662:6;33658:15;33651:28;33466:220;:::o;33692:366::-;33834:3;33855:67;33919:2;33914:3;33855:67;:::i;:::-;33848:74;;33931:93;34020:3;33931:93;:::i;:::-;34049:2;34044:3;34040:12;34033:19;;33692:366;;;:::o;34064:419::-;34230:4;34268:2;34257:9;34253:18;34245:26;;34317:9;34311:4;34307:20;34303:1;34292:9;34288:17;34281:47;34345:131;34471:4;34345:131;:::i;:::-;34337:139;;34064:419;;;:::o

Swarm Source

ipfs://a727778981ad1deba030596c8734115302f50e44e160986b5411233eb02e2811

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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