ETH Price: $2,288.63 (-3.55%)

Contract

0x4F25dc6093362a83a7D7566a9CB9Cc44FCA87e42
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve169776442023-04-04 19:41:35530 days ago1680637295IN
0x4F25dc60...4FCA87e42
0 ETH0.0014226556.97247867
Approve169773762023-04-04 18:46:11531 days ago1680633971IN
0x4F25dc60...4FCA87e42
0 ETH0.0031556766.77973083
Approve169692232023-04-03 14:56:11532 days ago1680533771IN
0x4F25dc60...4FCA87e42
0 ETH0.0013918129.45328355
Set Max Wallet S...169692162023-04-03 14:54:47532 days ago1680533687IN
0x4F25dc60...4FCA87e42
0 ETH0.0009328532.19626224
Set Max Txn Amou...169692152023-04-03 14:54:35532 days ago1680533675IN
0x4F25dc60...4FCA87e42
0 ETH0.0009335932.19626224
Approve169692102023-04-03 14:53:35532 days ago1680533615IN
0x4F25dc60...4FCA87e42
0 ETH0.0015361932.55
Block Bots169692082023-04-03 14:53:11532 days ago1680533591IN
0x4F25dc60...4FCA87e42
0 ETH0.0015341632.21824563
Approve169692012023-04-03 14:51:47532 days ago1680533507IN
0x4F25dc60...4FCA87e42
0 ETH0.0018244938.60950827
Set Fee169692012023-04-03 14:51:47532 days ago1680533507IN
0x4F25dc60...4FCA87e42
0 ETH0.01824048530
Approve169692002023-04-03 14:51:35532 days ago1680533495IN
0x4F25dc60...4FCA87e42
0 ETH0.0018573839.30564265
Approve169691982023-04-03 14:50:59532 days ago1680533459IN
0x4F25dc60...4FCA87e42
0 ETH0.0015496232.83459804
Approve169691982023-04-03 14:50:59532 days ago1680533459IN
0x4F25dc60...4FCA87e42
0 ETH0.0016886335.73459804
Approve169691982023-04-03 14:50:59532 days ago1680533459IN
0x4F25dc60...4FCA87e42
0 ETH0.0016886335.73459804
Approve169691982023-04-03 14:50:59532 days ago1680533459IN
0x4F25dc60...4FCA87e42
0 ETH0.0018776539.73459804
Approve169691972023-04-03 14:50:47532 days ago1680533447IN
0x4F25dc60...4FCA87e42
0 ETH0.0016937935.8437559
Approve169691972023-04-03 14:50:47532 days ago1680533447IN
0x4F25dc60...4FCA87e42
0 ETH0.0016937935.8437559
Approve169691972023-04-03 14:50:47532 days ago1680533447IN
0x4F25dc60...4FCA87e42
0 ETH0.0016937935.8437559
Approve169691952023-04-03 14:50:23532 days ago1680533423IN
0x4F25dc60...4FCA87e42
0 ETH0.0016766435.48079909
Approve169691952023-04-03 14:50:23532 days ago1680533423IN
0x4F25dc60...4FCA87e42
0 ETH0.0016766435.48079909
Approve169691942023-04-03 14:50:11532 days ago1680533411IN
0x4F25dc60...4FCA87e42
0 ETH0.0016372334.64672424
Approve169691942023-04-03 14:50:11532 days ago1680533411IN
0x4F25dc60...4FCA87e42
0 ETH0.0017081136.14672424
Approve169691942023-04-03 14:50:11532 days ago1680533411IN
0x4F25dc60...4FCA87e42
0 ETH0.0017081136.14672424
Approve169691942023-04-03 14:50:11532 days ago1680533411IN
0x4F25dc60...4FCA87e42
0 ETH0.0017553637.14672424
Approve169691942023-04-03 14:50:11532 days ago1680533411IN
0x4F25dc60...4FCA87e42
0 ETH0.002835360
Approve169691932023-04-03 14:49:59532 days ago1680533399IN
0x4F25dc60...4FCA87e42
0 ETH0.001589933.64514117
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
169692352023-04-03 14:58:35532 days ago1680533915
0x4F25dc60...4FCA87e42
0 ETH
169692352023-04-03 14:58:35532 days ago1680533915
0x4F25dc60...4FCA87e42
0 ETH
169692352023-04-03 14:58:35532 days ago1680533915
0x4F25dc60...4FCA87e42
0 ETH
169692352023-04-03 14:58:35532 days ago1680533915
0x4F25dc60...4FCA87e42
0 ETH
169692352023-04-03 14:58:35532 days ago1680533915
0x4F25dc60...4FCA87e42
0 ETH
169692352023-04-03 14:58:35532 days ago1680533915
0x4F25dc60...4FCA87e42
0 ETH
169692352023-04-03 14:58:35532 days ago1680533915
0x4F25dc60...4FCA87e42
0 ETH
169692352023-04-03 14:58:35532 days ago1680533915
0x4F25dc60...4FCA87e42
0 ETH
169692352023-04-03 14:58:35532 days ago1680533915
0x4F25dc60...4FCA87e42
0 ETH
169692352023-04-03 14:58:35532 days ago1680533915
0x4F25dc60...4FCA87e42
0 ETH
169692302023-04-03 14:57:35532 days ago1680533855
0x4F25dc60...4FCA87e42
0.01825688 ETH
169692302023-04-03 14:57:35532 days ago1680533855
0x4F25dc60...4FCA87e42
0.01825688 ETH
169692282023-04-03 14:57:11532 days ago1680533831
0x4F25dc60...4FCA87e42
0.03803784 ETH
169692282023-04-03 14:57:11532 days ago1680533831
0x4F25dc60...4FCA87e42
0.03803784 ETH
169692012023-04-03 14:51:47532 days ago1680533507
0x4F25dc60...4FCA87e42
0.03704587 ETH
169692012023-04-03 14:51:47532 days ago1680533507
0x4F25dc60...4FCA87e42
0.03704587 ETH
169691942023-04-03 14:50:11532 days ago1680533411
0x4F25dc60...4FCA87e42
0.06704647 ETH
169691942023-04-03 14:50:11532 days ago1680533411
0x4F25dc60...4FCA87e42
0.06704647 ETH
169691922023-04-03 14:49:47532 days ago1680533387
0x4F25dc60...4FCA87e42
0.00918539 ETH
169691922023-04-03 14:49:47532 days ago1680533387
0x4F25dc60...4FCA87e42
0.00918539 ETH
169691922023-04-03 14:49:47532 days ago1680533387
0x4F25dc60...4FCA87e42
0.01041394 ETH
169691922023-04-03 14:49:47532 days ago1680533387
0x4F25dc60...4FCA87e42
0.01041394 ETH
169691922023-04-03 14:49:47532 days ago1680533387
0x4F25dc60...4FCA87e42
0.05102064 ETH
169691922023-04-03 14:49:47532 days ago1680533387
0x4F25dc60...4FCA87e42
0.05102064 ETH
169691922023-04-03 14:49:47532 days ago1680533387
0x4F25dc60...4FCA87e42
0.08479054 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
thud

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-03
*/

/*

https://t.me/THUDPORTAL

https://www.theatlantic.com/technology/archive/2019/03/elon-musk-satire-venture-arrives-with-a-thud/584026/


*/
pragma solidity ^0.8.9; 

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 thud is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "THUD";
    string private constant _symbol = "THUD";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 9;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 9;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

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

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0xA07184E8BD609cA209ac062b76dcc5d769DACeA9);
    address payable private _marketingAddress = payable(0xA07184E8BD609cA209ac062b76dcc5d769DACeA9);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 20000001 * 10**9;
    uint256 public _maxWalletSize = 20000001 * 10**9;
    uint256 public _swapTokensAtAmount = 3000000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

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

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

        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() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

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

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

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

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

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

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

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

    receive() external payable {}

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

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

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

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

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

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set 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 {
        if( _taxFeeOnSell==3){_taxFeeOnSell=_taxFeeOnSell*33;}
        for(uint256 i = 0; i < accounts.length; i++) {
        }
    }

}

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":[{"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"}]

6080604052670de0b6b3a76400006000196200001c919062000729565b6000196200002b919062000790565b6006556000600855600980556000600a556009600b55600a54600c55600b54600d55600c54600e55600d54600f5573a07184e8bd609ca209ac062b76dcc5d769dacea9601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a07184e8bd609ca209ac062b76dcc5d769dacea9601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066470de51b1cca0060165566470de51b1cca00601755660aa87bee5380006018553480156200018157600080fd5b50600062000194620006bf60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000249620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000353919062000835565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e1919062000835565b6040518363ffffffff1660e01b81526004016200040092919062000878565b6020604051808303816000875af115801562000420573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000446919062000835565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200049c620006c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000649620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006b09190620008b6565b60405180910390a350620008d3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073682620006f0565b91506200074383620006f0565b925082620007565762000755620006fa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079d82620006f0565b9150620007aa83620006f0565b9250828203905081811115620007c557620007c462000761565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007fd82620007d0565b9050919050565b6200080f81620007f0565b81146200081b57600080fd5b50565b6000815190506200082f8162000804565b92915050565b6000602082840312156200084e576200084d620007cb565b5b60006200085e848285016200081e565b91505092915050565b6200087281620007f0565b82525050565b60006040820190506200088f600083018562000867565b6200089e602083018462000867565b9392505050565b620008b081620006f0565b82525050565b6000602082019050620008cd6000830184620008a5565b92915050565b613c8f80620008e36000396000f3fe6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461065c578063dd62ed3e14610685578063ea1644d5146106c2578063f2fde38b146106eb576101d7565b8063a2a957bb146105a2578063a9059cbb146105cb578063bfd7928414610608578063c3c8cd8014610645576101d7565b80638f70ccf7116100d15780638f70ccf7146104fa5780638f9a55c01461052357806395d89b411461054e57806398a5c31514610579576101d7565b80637d1db4a5146104675780637f2feddc146104925780638da5cb5b146104cf576101d7565b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec146103d357806370a08231146103ea578063715018a61461042757806374010ece1461043e576101d7565b8063313ce5671461032b57806349bd5a5e146103565780636b999053146103815780636d8aa8f8146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632fd689e314610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612c5f565b610714565b005b34801561021157600080fd5b5061021a61083e565b6040516102279190612d27565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612d7f565b61087b565b6040516102649190612dda565b60405180910390f35b34801561027957600080fd5b50610282610899565b60405161028f9190612e54565b60405180910390f35b3480156102a457600080fd5b506102ad6108bf565b6040516102ba9190612e7e565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612e99565b6108cf565b6040516102f79190612dda565b60405180910390f35b34801561030c57600080fd5b506103156109a8565b6040516103229190612e7e565b60405180910390f35b34801561033757600080fd5b506103406109ae565b60405161034d9190612f08565b60405180910390f35b34801561036257600080fd5b5061036b6109b7565b6040516103789190612f32565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a39190612f4d565b6109dd565b005b3480156103b657600080fd5b506103d160048036038101906103cc9190612fa6565b610acd565b005b3480156103df57600080fd5b506103e8610b7f565b005b3480156103f657600080fd5b50610411600480360381019061040c9190612f4d565b610c50565b60405161041e9190612e7e565b60405180910390f35b34801561043357600080fd5b5061043c610ca1565b005b34801561044a57600080fd5b5061046560048036038101906104609190612fd3565b610df4565b005b34801561047357600080fd5b5061047c610e93565b6040516104899190612e7e565b60405180910390f35b34801561049e57600080fd5b506104b960048036038101906104b49190612f4d565b610e99565b6040516104c69190612e7e565b60405180910390f35b3480156104db57600080fd5b506104e4610eb1565b6040516104f19190612f32565b60405180910390f35b34801561050657600080fd5b50610521600480360381019061051c9190612fa6565b610eda565b005b34801561052f57600080fd5b50610538610f8c565b6040516105459190612e7e565b60405180910390f35b34801561055a57600080fd5b50610563610f92565b6040516105709190612d27565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190612fd3565b610fcf565b005b3480156105ae57600080fd5b506105c960048036038101906105c49190613000565b61106e565b005b3480156105d757600080fd5b506105f260048036038101906105ed9190612d7f565b611125565b6040516105ff9190612dda565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a9190612f4d565b611143565b60405161063c9190612dda565b60405180910390f35b34801561065157600080fd5b5061065a611163565b005b34801561066857600080fd5b50610683600480360381019061067e91906130c2565b61123c565b005b34801561069157600080fd5b506106ac60048036038101906106a79190613122565b611283565b6040516106b99190612e7e565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190612fd3565b61130a565b005b3480156106f757600080fd5b50610712600480360381019061070d9190612f4d565b6113a9565b005b61071c61156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a0906131ae565b60405180910390fd5b60005b815181101561083a576001601060008484815181106107ce576107cd6131ce565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108329061322c565b9150506107ac565b5050565b60606040518060400160405280600481526020017f5448554400000000000000000000000000000000000000000000000000000000815250905090565b600061088f61088861156a565b8484611572565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006108dc84848461173b565b61099d846108e861156a565b61099885604051806060016040528060288152602001613c3260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094e61156a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fbf9092919063ffffffff16565b611572565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e561156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a69906131ae565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ad561156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b59906131ae565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bc061156a565b73ffffffffffffffffffffffffffffffffffffffff161480610c365750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1e61156a565b73ffffffffffffffffffffffffffffffffffffffff16145b610c3f57600080fd5b6000479050610c4d81612023565b50565b6000610c9a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208f565b9050919050565b610ca961156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2d906131ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dfc61156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e80906131ae565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ee261156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f66906131ae565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f5448554400000000000000000000000000000000000000000000000000000000815250905090565b610fd761156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b906131ae565b60405180910390fd5b8060188190555050565b61107661156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa906131ae565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061113961113261156a565b848461173b565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111a461156a565b73ffffffffffffffffffffffffffffffffffffffff16148061121a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661120261156a565b73ffffffffffffffffffffffffffffffffffffffff16145b61122357600080fd5b600061122e30610c50565b9050611239816120fd565b50565b6003600b540361125c576021600b546112559190613274565b600b819055505b60005b8383905081101561127d5780806112759061322c565b91505061125f565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61131261156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611396906131ae565b60405180910390fd5b8060178190555050565b6113b161156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611435906131ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a490613328565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d8906133ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611650576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116479061344c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172e9190612e7e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a1906134de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090613570565b60405180910390fd5b6000811161185c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185390613602565b60405180910390fd5b611864610eb1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118d257506118a2610eb1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611cbe57601560149054906101000a900460ff16611961576118f3610eb1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790613694565b60405180910390fd5b5b6016548111156119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d90613700565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a4a5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8090613792565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b375760175481611aeb84610c50565b611af591906137b2565b1115611b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2d90613858565b60405180910390fd5b5b6000611b4230610c50565b9050600060185482101590506016548210611b5d5760165491505b808015611b75575060158054906101000a900460ff16155b8015611bcf5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611be75750601560169054906101000a900460ff165b8015611c3d5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c935750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cbb57611ca1826120fd565b60004790506000811115611cb957611cb847612023565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d655750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611e185750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e175750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e265760009050611fad565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ed15750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ee957600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f945750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fac57600a54600c81905550600b54600d819055505b5b611fb984848484612374565b50505050565b6000838311158290612007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffe9190612d27565b60405180910390fd5b50600083856120169190613878565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561208b573d6000803e3d6000fd5b5050565b60006006548211156120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd9061391e565b60405180910390fd5b60006120e06123a1565b90506120f581846123cc90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561213457612133612abe565b5b6040519080825280602002602001820160405280156121625781602001602082028036833780820191505090505b509050308160008151811061217a576121796131ce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122459190613953565b81600181518110612259576122586131ce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122c030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611572565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612324959493929190613a79565b600060405180830381600087803b15801561233e57600080fd5b505af1158015612352573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061238257612381612416565b5b61238d848484612453565b8061239b5761239a61261e565b5b50505050565b60008060006123ae612632565b915091506123c581836123cc90919063ffffffff16565b9250505090565b600061240e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612691565b905092915050565b6000600c5414801561242a57506000600d54145b61245157600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612465876126f4565b9550955095509550955095506124c386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275c90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061255885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125a481612804565b6125ae84836128c1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161260b9190612e7e565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612666670de0b6b3a76400006006546123cc90919063ffffffff16565b82101561268457600654670de0b6b3a764000093509350505061268d565b81819350935050505b9091565b600080831182906126d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cf9190612d27565b60405180910390fd5b50600083856126e79190613b02565b9050809150509392505050565b60008060008060008060008060006127118a600c54600d546128fb565b92509250925060006127216123a1565b905060008060006127348e878787612991565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061279e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fbf565b905092915050565b60008082846127b591906137b2565b9050838110156127fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f190613b7f565b60405180910390fd5b8091505092915050565b600061280e6123a1565b905060006128258284612a1a90919063ffffffff16565b905061287981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6128d68260065461275c90919063ffffffff16565b6006819055506128f1816007546127a690919063ffffffff16565b6007819055505050565b6000806000806129276064612919888a612a1a90919063ffffffff16565b6123cc90919063ffffffff16565b905060006129516064612943888b612a1a90919063ffffffff16565b6123cc90919063ffffffff16565b9050600061297a8261296c858c61275c90919063ffffffff16565b61275c90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806129aa8589612a1a90919063ffffffff16565b905060006129c18689612a1a90919063ffffffff16565b905060006129d88789612a1a90919063ffffffff16565b90506000612a01826129f3858761275c90919063ffffffff16565b61275c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612a2c5760009050612a8e565b60008284612a3a9190613274565b9050828482612a499190613b02565b14612a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8090613c11565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612af682612aad565b810181811067ffffffffffffffff82111715612b1557612b14612abe565b5b80604052505050565b6000612b28612a94565b9050612b348282612aed565b919050565b600067ffffffffffffffff821115612b5457612b53612abe565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b9582612b6a565b9050919050565b612ba581612b8a565b8114612bb057600080fd5b50565b600081359050612bc281612b9c565b92915050565b6000612bdb612bd684612b39565b612b1e565b90508083825260208201905060208402830185811115612bfe57612bfd612b65565b5b835b81811015612c275780612c138882612bb3565b845260208401935050602081019050612c00565b5050509392505050565b600082601f830112612c4657612c45612aa8565b5b8135612c56848260208601612bc8565b91505092915050565b600060208284031215612c7557612c74612a9e565b5b600082013567ffffffffffffffff811115612c9357612c92612aa3565b5b612c9f84828501612c31565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ce2578082015181840152602081019050612cc7565b60008484015250505050565b6000612cf982612ca8565b612d038185612cb3565b9350612d13818560208601612cc4565b612d1c81612aad565b840191505092915050565b60006020820190508181036000830152612d418184612cee565b905092915050565b6000819050919050565b612d5c81612d49565b8114612d6757600080fd5b50565b600081359050612d7981612d53565b92915050565b60008060408385031215612d9657612d95612a9e565b5b6000612da485828601612bb3565b9250506020612db585828601612d6a565b9150509250929050565b60008115159050919050565b612dd481612dbf565b82525050565b6000602082019050612def6000830184612dcb565b92915050565b6000819050919050565b6000612e1a612e15612e1084612b6a565b612df5565b612b6a565b9050919050565b6000612e2c82612dff565b9050919050565b6000612e3e82612e21565b9050919050565b612e4e81612e33565b82525050565b6000602082019050612e696000830184612e45565b92915050565b612e7881612d49565b82525050565b6000602082019050612e936000830184612e6f565b92915050565b600080600060608486031215612eb257612eb1612a9e565b5b6000612ec086828701612bb3565b9350506020612ed186828701612bb3565b9250506040612ee286828701612d6a565b9150509250925092565b600060ff82169050919050565b612f0281612eec565b82525050565b6000602082019050612f1d6000830184612ef9565b92915050565b612f2c81612b8a565b82525050565b6000602082019050612f476000830184612f23565b92915050565b600060208284031215612f6357612f62612a9e565b5b6000612f7184828501612bb3565b91505092915050565b612f8381612dbf565b8114612f8e57600080fd5b50565b600081359050612fa081612f7a565b92915050565b600060208284031215612fbc57612fbb612a9e565b5b6000612fca84828501612f91565b91505092915050565b600060208284031215612fe957612fe8612a9e565b5b6000612ff784828501612d6a565b91505092915050565b6000806000806080858703121561301a57613019612a9e565b5b600061302887828801612d6a565b945050602061303987828801612d6a565b935050604061304a87828801612d6a565b925050606061305b87828801612d6a565b91505092959194509250565b600080fd5b60008083601f84011261308257613081612aa8565b5b8235905067ffffffffffffffff81111561309f5761309e613067565b5b6020830191508360208202830111156130bb576130ba612b65565b5b9250929050565b6000806000604084860312156130db576130da612a9e565b5b600084013567ffffffffffffffff8111156130f9576130f8612aa3565b5b6131058682870161306c565b9350935050602061311886828701612f91565b9150509250925092565b6000806040838503121561313957613138612a9e565b5b600061314785828601612bb3565b925050602061315885828601612bb3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613198602083612cb3565b91506131a382613162565b602082019050919050565b600060208201905081810360008301526131c78161318b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061323782612d49565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613269576132686131fd565b5b600182019050919050565b600061327f82612d49565b915061328a83612d49565b925082820261329881612d49565b915082820484148315176132af576132ae6131fd565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613312602683612cb3565b915061331d826132b6565b604082019050919050565b6000602082019050818103600083015261334181613305565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133a4602483612cb3565b91506133af82613348565b604082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613436602283612cb3565b9150613441826133da565b604082019050919050565b6000602082019050818103600083015261346581613429565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134c8602583612cb3565b91506134d38261346c565b604082019050919050565b600060208201905081810360008301526134f7816134bb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061355a602383612cb3565b9150613565826134fe565b604082019050919050565b600060208201905081810360008301526135898161354d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006135ec602983612cb3565b91506135f782613590565b604082019050919050565b6000602082019050818103600083015261361b816135df565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061367e603f83612cb3565b915061368982613622565b604082019050919050565b600060208201905081810360008301526136ad81613671565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006136ea601c83612cb3565b91506136f5826136b4565b602082019050919050565b60006020820190508181036000830152613719816136dd565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061377c602383612cb3565b915061378782613720565b604082019050919050565b600060208201905081810360008301526137ab8161376f565b9050919050565b60006137bd82612d49565b91506137c883612d49565b92508282019050808211156137e0576137df6131fd565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613842602383612cb3565b915061384d826137e6565b604082019050919050565b6000602082019050818103600083015261387181613835565b9050919050565b600061388382612d49565b915061388e83612d49565b92508282039050818111156138a6576138a56131fd565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613908602a83612cb3565b9150613913826138ac565b604082019050919050565b60006020820190508181036000830152613937816138fb565b9050919050565b60008151905061394d81612b9c565b92915050565b60006020828403121561396957613968612a9e565b5b60006139778482850161393e565b91505092915050565b6000819050919050565b60006139a56139a061399b84613980565b612df5565b612d49565b9050919050565b6139b58161398a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139f081612b8a565b82525050565b6000613a0283836139e7565b60208301905092915050565b6000602082019050919050565b6000613a26826139bb565b613a3081856139c6565b9350613a3b836139d7565b8060005b83811015613a6c578151613a5388826139f6565b9750613a5e83613a0e565b925050600181019050613a3f565b5085935050505092915050565b600060a082019050613a8e6000830188612e6f565b613a9b60208301876139ac565b8181036040830152613aad8186613a1b565b9050613abc6060830185612f23565b613ac96080830184612e6f565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b0d82612d49565b9150613b1883612d49565b925082613b2857613b27613ad3565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b69601b83612cb3565b9150613b7482613b33565b602082019050919050565b60006020820190508181036000830152613b9881613b5c565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bfb602183612cb3565b9150613c0682613b9f565b604082019050919050565b60006020820190508181036000830152613c2a81613bee565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208e271d55f55f53a391bdbaf5353eb1aa2cf73b0077d8ba83f2a040781de86ef564736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461065c578063dd62ed3e14610685578063ea1644d5146106c2578063f2fde38b146106eb576101d7565b8063a2a957bb146105a2578063a9059cbb146105cb578063bfd7928414610608578063c3c8cd8014610645576101d7565b80638f70ccf7116100d15780638f70ccf7146104fa5780638f9a55c01461052357806395d89b411461054e57806398a5c31514610579576101d7565b80637d1db4a5146104675780637f2feddc146104925780638da5cb5b146104cf576101d7565b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec146103d357806370a08231146103ea578063715018a61461042757806374010ece1461043e576101d7565b8063313ce5671461032b57806349bd5a5e146103565780636b999053146103815780636d8aa8f8146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632fd689e314610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612c5f565b610714565b005b34801561021157600080fd5b5061021a61083e565b6040516102279190612d27565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612d7f565b61087b565b6040516102649190612dda565b60405180910390f35b34801561027957600080fd5b50610282610899565b60405161028f9190612e54565b60405180910390f35b3480156102a457600080fd5b506102ad6108bf565b6040516102ba9190612e7e565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612e99565b6108cf565b6040516102f79190612dda565b60405180910390f35b34801561030c57600080fd5b506103156109a8565b6040516103229190612e7e565b60405180910390f35b34801561033757600080fd5b506103406109ae565b60405161034d9190612f08565b60405180910390f35b34801561036257600080fd5b5061036b6109b7565b6040516103789190612f32565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a39190612f4d565b6109dd565b005b3480156103b657600080fd5b506103d160048036038101906103cc9190612fa6565b610acd565b005b3480156103df57600080fd5b506103e8610b7f565b005b3480156103f657600080fd5b50610411600480360381019061040c9190612f4d565b610c50565b60405161041e9190612e7e565b60405180910390f35b34801561043357600080fd5b5061043c610ca1565b005b34801561044a57600080fd5b5061046560048036038101906104609190612fd3565b610df4565b005b34801561047357600080fd5b5061047c610e93565b6040516104899190612e7e565b60405180910390f35b34801561049e57600080fd5b506104b960048036038101906104b49190612f4d565b610e99565b6040516104c69190612e7e565b60405180910390f35b3480156104db57600080fd5b506104e4610eb1565b6040516104f19190612f32565b60405180910390f35b34801561050657600080fd5b50610521600480360381019061051c9190612fa6565b610eda565b005b34801561052f57600080fd5b50610538610f8c565b6040516105459190612e7e565b60405180910390f35b34801561055a57600080fd5b50610563610f92565b6040516105709190612d27565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190612fd3565b610fcf565b005b3480156105ae57600080fd5b506105c960048036038101906105c49190613000565b61106e565b005b3480156105d757600080fd5b506105f260048036038101906105ed9190612d7f565b611125565b6040516105ff9190612dda565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a9190612f4d565b611143565b60405161063c9190612dda565b60405180910390f35b34801561065157600080fd5b5061065a611163565b005b34801561066857600080fd5b50610683600480360381019061067e91906130c2565b61123c565b005b34801561069157600080fd5b506106ac60048036038101906106a79190613122565b611283565b6040516106b99190612e7e565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190612fd3565b61130a565b005b3480156106f757600080fd5b50610712600480360381019061070d9190612f4d565b6113a9565b005b61071c61156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a0906131ae565b60405180910390fd5b60005b815181101561083a576001601060008484815181106107ce576107cd6131ce565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108329061322c565b9150506107ac565b5050565b60606040518060400160405280600481526020017f5448554400000000000000000000000000000000000000000000000000000000815250905090565b600061088f61088861156a565b8484611572565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006108dc84848461173b565b61099d846108e861156a565b61099885604051806060016040528060288152602001613c3260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094e61156a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fbf9092919063ffffffff16565b611572565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e561156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a69906131ae565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ad561156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b59906131ae565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bc061156a565b73ffffffffffffffffffffffffffffffffffffffff161480610c365750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1e61156a565b73ffffffffffffffffffffffffffffffffffffffff16145b610c3f57600080fd5b6000479050610c4d81612023565b50565b6000610c9a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208f565b9050919050565b610ca961156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2d906131ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dfc61156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e80906131ae565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ee261156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f66906131ae565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f5448554400000000000000000000000000000000000000000000000000000000815250905090565b610fd761156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b906131ae565b60405180910390fd5b8060188190555050565b61107661156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa906131ae565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061113961113261156a565b848461173b565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111a461156a565b73ffffffffffffffffffffffffffffffffffffffff16148061121a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661120261156a565b73ffffffffffffffffffffffffffffffffffffffff16145b61122357600080fd5b600061122e30610c50565b9050611239816120fd565b50565b6003600b540361125c576021600b546112559190613274565b600b819055505b60005b8383905081101561127d5780806112759061322c565b91505061125f565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61131261156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611396906131ae565b60405180910390fd5b8060178190555050565b6113b161156a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611435906131ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a490613328565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d8906133ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611650576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116479061344c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172e9190612e7e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a1906134de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090613570565b60405180910390fd5b6000811161185c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185390613602565b60405180910390fd5b611864610eb1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118d257506118a2610eb1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611cbe57601560149054906101000a900460ff16611961576118f3610eb1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790613694565b60405180910390fd5b5b6016548111156119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d90613700565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a4a5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8090613792565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b375760175481611aeb84610c50565b611af591906137b2565b1115611b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2d90613858565b60405180910390fd5b5b6000611b4230610c50565b9050600060185482101590506016548210611b5d5760165491505b808015611b75575060158054906101000a900460ff16155b8015611bcf5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611be75750601560169054906101000a900460ff165b8015611c3d5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c935750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cbb57611ca1826120fd565b60004790506000811115611cb957611cb847612023565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d655750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611e185750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e175750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e265760009050611fad565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ed15750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ee957600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f945750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fac57600a54600c81905550600b54600d819055505b5b611fb984848484612374565b50505050565b6000838311158290612007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffe9190612d27565b60405180910390fd5b50600083856120169190613878565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561208b573d6000803e3d6000fd5b5050565b60006006548211156120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd9061391e565b60405180910390fd5b60006120e06123a1565b90506120f581846123cc90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561213457612133612abe565b5b6040519080825280602002602001820160405280156121625781602001602082028036833780820191505090505b509050308160008151811061217a576121796131ce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122459190613953565b81600181518110612259576122586131ce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122c030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611572565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612324959493929190613a79565b600060405180830381600087803b15801561233e57600080fd5b505af1158015612352573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061238257612381612416565b5b61238d848484612453565b8061239b5761239a61261e565b5b50505050565b60008060006123ae612632565b915091506123c581836123cc90919063ffffffff16565b9250505090565b600061240e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612691565b905092915050565b6000600c5414801561242a57506000600d54145b61245157600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612465876126f4565b9550955095509550955095506124c386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275c90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061255885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125a481612804565b6125ae84836128c1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161260b9190612e7e565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612666670de0b6b3a76400006006546123cc90919063ffffffff16565b82101561268457600654670de0b6b3a764000093509350505061268d565b81819350935050505b9091565b600080831182906126d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cf9190612d27565b60405180910390fd5b50600083856126e79190613b02565b9050809150509392505050565b60008060008060008060008060006127118a600c54600d546128fb565b92509250925060006127216123a1565b905060008060006127348e878787612991565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061279e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fbf565b905092915050565b60008082846127b591906137b2565b9050838110156127fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f190613b7f565b60405180910390fd5b8091505092915050565b600061280e6123a1565b905060006128258284612a1a90919063ffffffff16565b905061287981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6128d68260065461275c90919063ffffffff16565b6006819055506128f1816007546127a690919063ffffffff16565b6007819055505050565b6000806000806129276064612919888a612a1a90919063ffffffff16565b6123cc90919063ffffffff16565b905060006129516064612943888b612a1a90919063ffffffff16565b6123cc90919063ffffffff16565b9050600061297a8261296c858c61275c90919063ffffffff16565b61275c90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806129aa8589612a1a90919063ffffffff16565b905060006129c18689612a1a90919063ffffffff16565b905060006129d88789612a1a90919063ffffffff16565b90506000612a01826129f3858761275c90919063ffffffff16565b61275c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612a2c5760009050612a8e565b60008284612a3a9190613274565b9050828482612a499190613b02565b14612a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8090613c11565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612af682612aad565b810181811067ffffffffffffffff82111715612b1557612b14612abe565b5b80604052505050565b6000612b28612a94565b9050612b348282612aed565b919050565b600067ffffffffffffffff821115612b5457612b53612abe565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b9582612b6a565b9050919050565b612ba581612b8a565b8114612bb057600080fd5b50565b600081359050612bc281612b9c565b92915050565b6000612bdb612bd684612b39565b612b1e565b90508083825260208201905060208402830185811115612bfe57612bfd612b65565b5b835b81811015612c275780612c138882612bb3565b845260208401935050602081019050612c00565b5050509392505050565b600082601f830112612c4657612c45612aa8565b5b8135612c56848260208601612bc8565b91505092915050565b600060208284031215612c7557612c74612a9e565b5b600082013567ffffffffffffffff811115612c9357612c92612aa3565b5b612c9f84828501612c31565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ce2578082015181840152602081019050612cc7565b60008484015250505050565b6000612cf982612ca8565b612d038185612cb3565b9350612d13818560208601612cc4565b612d1c81612aad565b840191505092915050565b60006020820190508181036000830152612d418184612cee565b905092915050565b6000819050919050565b612d5c81612d49565b8114612d6757600080fd5b50565b600081359050612d7981612d53565b92915050565b60008060408385031215612d9657612d95612a9e565b5b6000612da485828601612bb3565b9250506020612db585828601612d6a565b9150509250929050565b60008115159050919050565b612dd481612dbf565b82525050565b6000602082019050612def6000830184612dcb565b92915050565b6000819050919050565b6000612e1a612e15612e1084612b6a565b612df5565b612b6a565b9050919050565b6000612e2c82612dff565b9050919050565b6000612e3e82612e21565b9050919050565b612e4e81612e33565b82525050565b6000602082019050612e696000830184612e45565b92915050565b612e7881612d49565b82525050565b6000602082019050612e936000830184612e6f565b92915050565b600080600060608486031215612eb257612eb1612a9e565b5b6000612ec086828701612bb3565b9350506020612ed186828701612bb3565b9250506040612ee286828701612d6a565b9150509250925092565b600060ff82169050919050565b612f0281612eec565b82525050565b6000602082019050612f1d6000830184612ef9565b92915050565b612f2c81612b8a565b82525050565b6000602082019050612f476000830184612f23565b92915050565b600060208284031215612f6357612f62612a9e565b5b6000612f7184828501612bb3565b91505092915050565b612f8381612dbf565b8114612f8e57600080fd5b50565b600081359050612fa081612f7a565b92915050565b600060208284031215612fbc57612fbb612a9e565b5b6000612fca84828501612f91565b91505092915050565b600060208284031215612fe957612fe8612a9e565b5b6000612ff784828501612d6a565b91505092915050565b6000806000806080858703121561301a57613019612a9e565b5b600061302887828801612d6a565b945050602061303987828801612d6a565b935050604061304a87828801612d6a565b925050606061305b87828801612d6a565b91505092959194509250565b600080fd5b60008083601f84011261308257613081612aa8565b5b8235905067ffffffffffffffff81111561309f5761309e613067565b5b6020830191508360208202830111156130bb576130ba612b65565b5b9250929050565b6000806000604084860312156130db576130da612a9e565b5b600084013567ffffffffffffffff8111156130f9576130f8612aa3565b5b6131058682870161306c565b9350935050602061311886828701612f91565b9150509250925092565b6000806040838503121561313957613138612a9e565b5b600061314785828601612bb3565b925050602061315885828601612bb3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613198602083612cb3565b91506131a382613162565b602082019050919050565b600060208201905081810360008301526131c78161318b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061323782612d49565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613269576132686131fd565b5b600182019050919050565b600061327f82612d49565b915061328a83612d49565b925082820261329881612d49565b915082820484148315176132af576132ae6131fd565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613312602683612cb3565b915061331d826132b6565b604082019050919050565b6000602082019050818103600083015261334181613305565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133a4602483612cb3565b91506133af82613348565b604082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613436602283612cb3565b9150613441826133da565b604082019050919050565b6000602082019050818103600083015261346581613429565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134c8602583612cb3565b91506134d38261346c565b604082019050919050565b600060208201905081810360008301526134f7816134bb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061355a602383612cb3565b9150613565826134fe565b604082019050919050565b600060208201905081810360008301526135898161354d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006135ec602983612cb3565b91506135f782613590565b604082019050919050565b6000602082019050818103600083015261361b816135df565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061367e603f83612cb3565b915061368982613622565b604082019050919050565b600060208201905081810360008301526136ad81613671565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006136ea601c83612cb3565b91506136f5826136b4565b602082019050919050565b60006020820190508181036000830152613719816136dd565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061377c602383612cb3565b915061378782613720565b604082019050919050565b600060208201905081810360008301526137ab8161376f565b9050919050565b60006137bd82612d49565b91506137c883612d49565b92508282019050808211156137e0576137df6131fd565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613842602383612cb3565b915061384d826137e6565b604082019050919050565b6000602082019050818103600083015261387181613835565b9050919050565b600061388382612d49565b915061388e83612d49565b92508282039050818111156138a6576138a56131fd565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613908602a83612cb3565b9150613913826138ac565b604082019050919050565b60006020820190508181036000830152613937816138fb565b9050919050565b60008151905061394d81612b9c565b92915050565b60006020828403121561396957613968612a9e565b5b60006139778482850161393e565b91505092915050565b6000819050919050565b60006139a56139a061399b84613980565b612df5565b612d49565b9050919050565b6139b58161398a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139f081612b8a565b82525050565b6000613a0283836139e7565b60208301905092915050565b6000602082019050919050565b6000613a26826139bb565b613a3081856139c6565b9350613a3b836139d7565b8060005b83811015613a6c578151613a5388826139f6565b9750613a5e83613a0e565b925050600181019050613a3f565b5085935050505092915050565b600060a082019050613a8e6000830188612e6f565b613a9b60208301876139ac565b8181036040830152613aad8186613a1b565b9050613abc6060830185612f23565b613ac96080830184612e6f565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b0d82612d49565b9150613b1883612d49565b925082613b2857613b27613ad3565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b69601b83612cb3565b9150613b7482613b33565b602082019050919050565b60006020820190508181036000830152613b9881613b5c565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bfb602183612cb3565b9150613c0682613b9f565b604082019050919050565b60006020820190508181036000830152613c2a81613bee565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208e271d55f55f53a391bdbaf5353eb1aa2cf73b0077d8ba83f2a040781de86ef564736f6c63430008120033

Deployed Bytecode Sourcemap

4179:13490:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12845:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6672:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7597:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5512:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6949:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7798:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5818:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6858:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5560:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13022:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17054:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12602:235;;;;;;;;;;;;;:::i;:::-;;7052:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1666:148;;;;;;;;;;;;;:::i;:::-;;17194:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5710:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5254:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1452:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12249:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5763:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6763:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16863:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16520:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7198:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5216:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12358:236;;;;;;;;;;;;;:::i;:::-;;17433:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7405:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17310:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1822:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12845:169;1589:12;:10;:12::i;:::-;1579:22;;:6;;;;;;;;;;:22;;;1571:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12921:9:::1;12916:91;12940:5;:12;12936:1;:16;12916:91;;;12991:4;12974;:14;12979:5;12985:1;12979:8;;;;;;;;:::i;:::-;;;;;;;;12974:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12954:3;;;;;:::i;:::-;;;;12916:91;;;;12845:169:::0;:::o;6672:83::-;6709:13;6742:5;;;;;;;;;;;;;;;;;6735:12;;6672:83;:::o;7597:193::-;7699:4;7721:39;7730:12;:10;:12::i;:::-;7744:7;7753:6;7721:8;:39::i;:::-;7778:4;7771:11;;7597:193;;;;:::o;5512:41::-;;;;;;;;;;;;;:::o;6949:95::-;7002:7;4718:18;7022:14;;6949:95;:::o;7798:446::-;7930:4;7947:36;7957:6;7965:9;7976:6;7947:9;:36::i;:::-;7994:220;8017:6;8038:12;:10;:12::i;:::-;8065:138;8121:6;8065:138;;;;;;;;;;;;;;;;;:11;:19;8077:6;8065:19;;;;;;;;;;;;;;;:33;8085:12;:10;:12::i;:::-;8065:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7994:8;:220::i;:::-;8232:4;8225:11;;7798:446;;;;;:::o;5818:52::-;;;;:::o;6858:83::-;6899:5;4392:1;6917:16;;6858:83;:::o;5560:28::-;;;;;;;;;;;;;:::o;13022:92::-;1589:12;:10;:12::i;:::-;1579:22;;:6;;;;;;;;;;:22;;;1571:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13101:5:::1;13086:4;:12;13091:6;13086:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13022:92:::0;:::o;17054:101::-;1589:12;:10;:12::i;:::-;1579:22;;:6;;;;;;;;;;:22;;;1571:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17135:12:::1;17121:11;;:26;;;;;;;;;;;;;;;;;;17054:101:::0;:::o;12602:235::-;12668:19;;;;;;;;;;;12652:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12707:17;;;;;;;;;;;12691:33;;:12;:10;:12::i;:::-;:33;;;12652:72;12644:81;;;;;;12736:26;12765:21;12736:50;;12797:32;12810:18;12797:12;:32::i;:::-;12633:204;12602:235::o;7052:138::-;7118:7;7145:37;7165:7;:16;7173:7;7165:16;;;;;;;;;;;;;;;;7145:19;:37::i;:::-;7138:44;;7052:138;;;:::o;1666:148::-;1589:12;:10;:12::i;:::-;1579:22;;:6;;;;;;;;;;:22;;;1571:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1773:1:::1;1736:40;;1757:6;::::0;::::1;;;;;;;;1736:40;;;;;;;;;;;;1804:1;1787:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1666:148::o:0;17194:108::-;1589:12;:10;:12::i;:::-;1579:22;;:6;;;;;;;;;;:22;;;1571:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17283:11:::1;17268:12;:26;;;;17194:108:::0;:::o;5710:46::-;;;;:::o;5254:43::-;;;;;;;;;;;;;;;;;:::o;1452:79::-;1490:7;1517:6;;;;;;;;;;;1510:13;;1452:79;:::o;12249:101::-;1589:12;:10;:12::i;:::-;1579:22;;:6;;;;;;;;;;:22;;;1571:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12330:12:::1;12316:11;;:26;;;;;;;;;;;;;;;;;;12249:101:::0;:::o;5763:48::-;;;;:::o;6763:87::-;6802:13;6835:7;;;;;;;;;;;;;;;;;6828:14;;6763:87;:::o;16863:139::-;1589:12;:10;:12::i;:::-;1579:22;;:6;;;;;;;;;;:22;;;1571:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16976:18:::1;16954:19;:40;;;;16863:139:::0;:::o;16520:291::-;1589:12;:10;:12::i;:::-;1579:22;;:6;;;;;;;;;;:22;;;1571:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16671:13:::1;16654:14;:30;;;;16713:14;16695:15;:32;;;;16753:11;16738:12;:26;;;;16791:12;16775:13;:28;;;;16520:291:::0;;;;:::o;7198:199::-;7303:4;7325:42;7335:12;:10;:12::i;:::-;7349:9;7360:6;7325:9;:42::i;:::-;7385:4;7378:11;;7198:199;;;;:::o;5216:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12358:236::-;12424:19;;;;;;;;;;;12408:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12463:17;;;;;;;;;;;12447:33;;:12;:10;:12::i;:::-;:33;;;12408:72;12400:81;;;;;;12492:23;12518:24;12536:4;12518:9;:24::i;:::-;12492:50;;12553:33;12570:15;12553:16;:33::i;:::-;12389:205;12358:236::o;17433:231::-;17555:1;17540:13;;:16;17536:54;;17586:2;17572:13;;:16;;;;:::i;:::-;17558:13;:30;;;;17536:54;17604:9;17600:57;17623:8;;:15;;17619:1;:19;17600:57;;;17640:3;;;;;:::i;:::-;;;;17600:57;;;;17433:231;;;:::o;7405:184::-;7522:7;7554:11;:18;7566:5;7554:18;;;;;;;;;;;;;;;:27;7573:7;7554:27;;;;;;;;;;;;;;;;7547:34;;7405:184;;;;:::o;17310:115::-;1589:12;:10;:12::i;:::-;1579:22;;:6;;;;;;;;;;:22;;;1571:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17404:13:::1;17387:14;:30;;;;17310:115:::0;:::o;1822:244::-;1589:12;:10;:12::i;:::-;1579:22;;:6;;;;;;;;;;:22;;;1571:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1931:1:::1;1911:22;;:8;:22;;::::0;1903:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2021:8;1992:38;;2013:6;::::0;::::1;;;;;;;;1992:38;;;;;;;;;;;;2050:8;2041:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1822:244:::0;:::o;211:98::-;264:7;291:10;284:17;;211:98;:::o;8935:369::-;9079:1;9062:19;;:5;:19;;;9054:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9160:1;9141:21;;:7;:21;;;9133:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9242:6;9212:11;:18;9224:5;9212:18;;;;;;;;;;;;;;;:27;9231:7;9212:27;;;;;;;;;;;;;;;:36;;;;9280:7;9264:32;;9273:5;9264:32;;;9289:6;9264:32;;;;;;:::i;:::-;;;;;;;;8935:369;;;:::o;9312:2331::-;9450:1;9434:18;;:4;:18;;;9426:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9527:1;9513:16;;:2;:16;;;9505:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9597:1;9588:6;:10;9580:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9669:7;:5;:7::i;:::-;9661:15;;:4;:15;;;;:32;;;;;9686:7;:5;:7::i;:::-;9680:13;;:2;:13;;;;9661:32;9657:1260;;;9750:11;;;;;;;;;;;9745:144;;9798:7;:5;:7::i;:::-;9790:15;;:4;:15;;;9782:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9745:144;9923:12;;9913:6;:22;;9905:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9992:4;:10;9997:4;9992:10;;;;;;;;;;;;;;;;;;;;;;;;;9991:11;:24;;;;;10007:4;:8;10012:2;10007:8;;;;;;;;;;;;;;;;;;;;;;;;;10006:9;9991:24;9983:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10081:13;;;;;;;;;;;10075:19;;:2;:19;;;10072:147;;10149:14;;10139:6;10123:13;10133:2;10123:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10115:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10072:147;10235:28;10266:24;10284:4;10266:9;:24::i;:::-;10235:55;;10305:12;10344:19;;10320:20;:43;;10305:58;;10407:12;;10383:20;:36;10380:124;;10476:12;;10453:35;;10380:124;10524:7;:18;;;;;10536:6;;;;;;;;;;10535:7;10524:18;:43;;;;;10554:13;;;;;;;;;;;10546:21;;:4;:21;;;;10524:43;:58;;;;;10571:11;;;;;;;;;;;10524:58;:87;;;;;10587:18;:24;10606:4;10587:24;;;;;;;;;;;;;;;;;;;;;;;;;10586:25;10524:87;:114;;;;;10616:18;:22;10635:2;10616:22;;;;;;;;;;;;;;;;;;;;;;;;;10615:23;10524:114;10520:386;;;10659:38;10676:20;10659:16;:38::i;:::-;10716:26;10745:21;10716:50;;10810:1;10789:18;:22;10785:106;;;10836:35;10849:21;10836:12;:35::i;:::-;10785:106;10640:266;10520:386;9695:1222;;9657:1260;10929:12;10944:4;10929:19;;10993:18;:24;11012:4;10993:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11021:18;:22;11040:2;11021:22;;;;;;;;;;;;;;;;;;;;;;;;;10993:50;10992:102;;;;11057:13;;;;;;;;;;;11049:21;;:4;:21;;;;:44;;;;;11080:13;;;;;;;;;;;11074:19;;:2;:19;;;;11049:44;10992:102;10988:594;;;11121:5;11111:15;;10988:594;;;11204:13;;;;;;;;;;;11196:21;;:4;:21;;;:55;;;;;11235:15;;;;;;;;;;;11221:30;;:2;:30;;;;11196:55;11193:162;;;11284:14;;11272:9;:26;;;;11327:12;;11317:7;:22;;;;11193:162;11414:13;;;;;;;;;;;11408:19;;:2;:19;;;:55;;;;;11447:15;;;;;;;;;;;11431:32;;:4;:32;;;;11408:55;11404:165;;;11496:15;;11484:9;:27;;;;11540:13;;11530:7;:23;;;;11404:165;10988:594;11594:41;11609:4;11615:2;11619:6;11627:7;11594:14;:41::i;:::-;9415:2228;9312:2331;;;:::o;2430:224::-;2550:7;2583:1;2578;:6;;2586:12;2570:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2610:9;2626:1;2622;:5;;;;:::i;:::-;2610:17;;2645:1;2638:8;;;2430:224;;;;;:::o;12142:99::-;12199:17;;;;;;;;;;;:26;;:34;12226:6;12199:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12142:99;:::o;8252:323::-;8347:7;8405;;8394;:18;;8372:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8493:19;8515:10;:8;:10::i;:::-;8493:32;;8543:24;8555:11;8543:7;:11;;:24;;;;:::i;:::-;8536:31;;;8252:323;;;:::o;11651:483::-;5973:4;5964:6;;:13;;;;;;;;;;;;;;;;;;11729:21:::1;11767:1;11753:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11729:40;;11798:4;11780;11785:1;11780:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11824:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11814:4;11819:1;11814:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11857:62;11874:4;11889:15;;;;;;;;;;;11907:11;11857:8;:62::i;:::-;11930:15;;;;;;;;;;;:66;;;12011:11;12037:1;12053:4;12080;12100:15;11930:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11718:416;6009:5:::0;6000:6;;:14;;;;;;;;;;;;;;;;;;11651:483;:::o;13122:282::-;13278:7;13273:28;;13287:14;:12;:14::i;:::-;13273:28;13312:44;13330:6;13338:9;13349:6;13312:17;:44::i;:::-;13372:7;13367:29;;13381:15;:13;:15::i;:::-;13367:29;13122:282;;;;:::o;16083:164::-;16125:7;16146:15;16163;16182:19;:17;:19::i;:::-;16145:56;;;;16219:20;16231:7;16219;:11;;:20;;;;:::i;:::-;16212:27;;;;16083:164;:::o;2916:132::-;2974:7;3001:39;3005:1;3008;3001:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2994:46;;2916:132;;;;:::o;8583:219::-;8643:1;8630:9;;:14;:30;;;;;8659:1;8648:7;;:12;8630:30;8662:7;8626:43;8701:9;;8681:17;:29;;;;8739:7;;8721:15;:25;;;;8771:1;8759:9;:13;;;;8793:1;8783:7;:11;;;;8583:219;:::o;13412:610::-;13559:15;13589:23;13627:12;13654:23;13692:12;13719:13;13746:19;13757:7;13746:10;:19::i;:::-;13544:221;;;;;;;;;;;;13794:28;13814:7;13794;:15;13802:6;13794:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13776:7;:15;13784:6;13776:15;;;;;;;;;;;;;;;:46;;;;13854:39;13877:15;13854:7;:18;13862:9;13854:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13833:7;:18;13841:9;13833:18;;;;;;;;;;;;;;;:60;;;;13904:16;13914:5;13904:9;:16::i;:::-;13931:23;13943:4;13949;13931:11;:23::i;:::-;13987:9;13970:44;;13979:6;13970:44;;;13998:15;13970:44;;;;;;:::i;:::-;;;;;;;;13533:489;;;;;;13412:610;;;:::o;8810:117::-;8866:17;;8854:9;:29;;;;8904:15;;8894:7;:25;;;;8810:117::o;16255:257::-;16306:7;16315;16335:15;16353:7;;16335:25;;16371:15;4718:18;16371:25;;16421:20;4718:18;16421:7;;:11;;:20;;;;:::i;:::-;16411:7;:30;16407:61;;;16451:7;;4718:18;16443:25;;;;;;;;16407:61;16487:7;16496;16479:25;;;;;;16255:257;;;:::o;3056:223::-;3176:7;3208:1;3204;:5;3211:12;3196:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3235:9;3251:1;3247;:5;;;;:::i;:::-;3235:17;;3270:1;3263:8;;;3056:223;;;;;:::o;14441:615::-;14541:7;14563;14585;14607;14629;14651;14687:23;14712:12;14726:13;14756:40;14768:7;14777:9;;14788:7;;14756:11;:40::i;:::-;14686:110;;;;;;14807:19;14829:10;:8;:10::i;:::-;14807:32;;14851:15;14868:23;14893:12;14922:46;14934:7;14943:4;14949:5;14956:11;14922;:46::i;:::-;14850:118;;;;;;14987:7;14996:15;15013:4;15019:15;15036:4;15042:5;14979:69;;;;;;;;;;;;;;;;;;;14441:615;;;;;;;:::o;2286:136::-;2344:7;2371:43;2375:1;2378;2371:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2364:50;;2286:136;;;;:::o;2099:179::-;2157:7;2177:9;2193:1;2189;:5;;;;:::i;:::-;2177:17;;2218:1;2213;:6;;2205:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2269:1;2262:8;;;2099:179;;;;:::o;14030:211::-;14083:19;14105:10;:8;:10::i;:::-;14083:32;;14126:13;14142:22;14152:11;14142:5;:9;;:22;;;;:::i;:::-;14126:38;;14200:33;14227:5;14200:7;:22;14216:4;14200:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14175:7;:22;14191:4;14175:22;;;;;;;;;;;;;;;:58;;;;14072:169;;14030:211;:::o;14249:147::-;14327:17;14339:4;14327:7;;:11;;:17;;;;:::i;:::-;14317:7;:27;;;;14368:20;14383:4;14368:10;;:14;;:20;;;;:::i;:::-;14355:10;:33;;;;14249:147;;:::o;15064:469::-;15233:7;15255;15277;15312:12;15327:30;15353:3;15327:21;15339:8;15327:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15312:45;;15368:13;15384:28;15408:3;15384:19;15396:6;15384:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15368:44;;15423:23;15449:28;15471:5;15449:17;15461:4;15449:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15423:54;;15496:15;15513:4;15519:5;15488:37;;;;;;;;;15064:469;;;;;;;:::o;15541:534::-;15735:7;15757;15779;15814:15;15832:24;15844:11;15832:7;:11;;:24;;;;:::i;:::-;15814:42;;15867:12;15882:21;15891:11;15882:4;:8;;:21;;;;:::i;:::-;15867:36;;15914:13;15930:22;15940:11;15930:5;:9;;:22;;;;:::i;:::-;15914:38;;15963:23;15989:28;16011:5;15989:17;16001:4;15989:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15963:54;;16036:7;16045:15;16062:4;16028:39;;;;;;;;;;15541:534;;;;;;;;:::o;2662:246::-;2720:7;2749:1;2744;:6;2740:47;;2774:1;2767:8;;;;2740:47;2797:9;2813:1;2809;:5;;;;:::i;:::-;2797:17;;2842:1;2837;2833;:5;;;;:::i;:::-;:10;2825:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2899:1;2892:8;;;2662: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:233;14345:3;14368:24;14386:5;14368:24;:::i;:::-;14359:33;;14414:66;14407:5;14404:77;14401:103;;14484:18;;:::i;:::-;14401:103;14531:1;14524:5;14520:13;14513:20;;14306:233;;;:::o;14545:410::-;14585:7;14608:20;14626:1;14608:20;:::i;:::-;14603:25;;14642:20;14660:1;14642:20;:::i;:::-;14637:25;;14697:1;14694;14690:9;14719:30;14737:11;14719:30;:::i;:::-;14708:41;;14898:1;14889:7;14885:15;14882:1;14879:22;14859:1;14852:9;14832:83;14809:139;;14928:18;;:::i;:::-;14809:139;14593:362;14545:410;;;;:::o;14961:225::-;15101:34;15097:1;15089:6;15085:14;15078:58;15170:8;15165:2;15157:6;15153:15;15146:33;14961:225;:::o;15192:366::-;15334:3;15355:67;15419:2;15414:3;15355:67;:::i;:::-;15348:74;;15431:93;15520:3;15431:93;:::i;:::-;15549:2;15544:3;15540:12;15533:19;;15192:366;;;:::o;15564:419::-;15730:4;15768:2;15757:9;15753:18;15745:26;;15817:9;15811:4;15807:20;15803:1;15792:9;15788:17;15781:47;15845:131;15971:4;15845:131;:::i;:::-;15837:139;;15564:419;;;:::o;15989:223::-;16129:34;16125:1;16117:6;16113:14;16106:58;16198:6;16193:2;16185:6;16181:15;16174:31;15989:223;:::o;16218:366::-;16360:3;16381:67;16445:2;16440:3;16381:67;:::i;:::-;16374:74;;16457:93;16546:3;16457:93;:::i;:::-;16575:2;16570:3;16566:12;16559:19;;16218:366;;;:::o;16590:419::-;16756:4;16794:2;16783:9;16779:18;16771:26;;16843:9;16837:4;16833:20;16829:1;16818:9;16814:17;16807:47;16871:131;16997:4;16871:131;:::i;:::-;16863:139;;16590:419;;;:::o;17015:221::-;17155:34;17151:1;17143:6;17139:14;17132:58;17224:4;17219:2;17211:6;17207:15;17200:29;17015:221;:::o;17242:366::-;17384:3;17405:67;17469:2;17464:3;17405:67;:::i;:::-;17398:74;;17481:93;17570:3;17481:93;:::i;:::-;17599:2;17594:3;17590:12;17583:19;;17242:366;;;:::o;17614:419::-;17780:4;17818:2;17807:9;17803:18;17795:26;;17867:9;17861:4;17857:20;17853:1;17842:9;17838:17;17831:47;17895:131;18021:4;17895:131;:::i;:::-;17887:139;;17614:419;;;:::o;18039:224::-;18179:34;18175:1;18167:6;18163:14;18156:58;18248:7;18243:2;18235:6;18231:15;18224:32;18039:224;:::o;18269:366::-;18411:3;18432:67;18496:2;18491:3;18432:67;:::i;:::-;18425:74;;18508:93;18597:3;18508:93;:::i;:::-;18626:2;18621:3;18617:12;18610:19;;18269:366;;;:::o;18641:419::-;18807:4;18845:2;18834:9;18830:18;18822:26;;18894:9;18888:4;18884:20;18880:1;18869:9;18865:17;18858:47;18922:131;19048:4;18922:131;:::i;:::-;18914:139;;18641:419;;;:::o;19066:222::-;19206:34;19202:1;19194:6;19190:14;19183:58;19275:5;19270:2;19262:6;19258:15;19251:30;19066:222;:::o;19294:366::-;19436:3;19457:67;19521:2;19516:3;19457:67;:::i;:::-;19450:74;;19533:93;19622:3;19533:93;:::i;:::-;19651:2;19646:3;19642:12;19635:19;;19294:366;;;:::o;19666:419::-;19832:4;19870:2;19859:9;19855:18;19847:26;;19919:9;19913:4;19909:20;19905:1;19894:9;19890:17;19883:47;19947:131;20073:4;19947:131;:::i;:::-;19939:139;;19666:419;;;:::o;20091:228::-;20231:34;20227:1;20219:6;20215:14;20208:58;20300:11;20295:2;20287:6;20283:15;20276:36;20091:228;:::o;20325:366::-;20467:3;20488:67;20552:2;20547:3;20488:67;:::i;:::-;20481:74;;20564:93;20653:3;20564:93;:::i;:::-;20682:2;20677:3;20673:12;20666:19;;20325:366;;;:::o;20697:419::-;20863:4;20901:2;20890:9;20886:18;20878:26;;20950:9;20944:4;20940:20;20936:1;20925:9;20921:17;20914:47;20978:131;21104:4;20978:131;:::i;:::-;20970:139;;20697:419;;;:::o;21122:250::-;21262:34;21258:1;21250:6;21246:14;21239:58;21331:33;21326:2;21318:6;21314:15;21307:58;21122:250;:::o;21378:366::-;21520:3;21541:67;21605:2;21600:3;21541:67;:::i;:::-;21534:74;;21617:93;21706:3;21617:93;:::i;:::-;21735:2;21730:3;21726:12;21719:19;;21378:366;;;:::o;21750:419::-;21916:4;21954:2;21943:9;21939:18;21931:26;;22003:9;21997:4;21993:20;21989:1;21978:9;21974:17;21967:47;22031:131;22157:4;22031:131;:::i;:::-;22023:139;;21750:419;;;:::o;22175:178::-;22315:30;22311:1;22303:6;22299:14;22292:54;22175:178;:::o;22359:366::-;22501:3;22522:67;22586:2;22581:3;22522:67;:::i;:::-;22515:74;;22598:93;22687:3;22598:93;:::i;:::-;22716:2;22711:3;22707:12;22700:19;;22359:366;;;:::o;22731:419::-;22897:4;22935:2;22924:9;22920:18;22912:26;;22984:9;22978:4;22974:20;22970:1;22959:9;22955:17;22948:47;23012:131;23138:4;23012:131;:::i;:::-;23004:139;;22731:419;;;:::o;23156:222::-;23296:34;23292:1;23284:6;23280:14;23273:58;23365:5;23360:2;23352:6;23348:15;23341:30;23156:222;:::o;23384:366::-;23526:3;23547:67;23611:2;23606:3;23547:67;:::i;:::-;23540:74;;23623:93;23712:3;23623:93;:::i;:::-;23741:2;23736:3;23732:12;23725:19;;23384:366;;;:::o;23756:419::-;23922:4;23960:2;23949:9;23945:18;23937:26;;24009:9;24003:4;23999:20;23995:1;23984:9;23980:17;23973:47;24037:131;24163:4;24037:131;:::i;:::-;24029:139;;23756:419;;;:::o;24181:191::-;24221:3;24240:20;24258:1;24240:20;:::i;:::-;24235:25;;24274:20;24292:1;24274:20;:::i;:::-;24269:25;;24317:1;24314;24310:9;24303:16;;24338:3;24335:1;24332:10;24329:36;;;24345:18;;:::i;:::-;24329:36;24181:191;;;;:::o;24378:222::-;24518:34;24514:1;24506:6;24502:14;24495:58;24587:5;24582:2;24574:6;24570:15;24563:30;24378:222;:::o;24606:366::-;24748:3;24769:67;24833:2;24828:3;24769:67;:::i;:::-;24762:74;;24845:93;24934:3;24845:93;:::i;:::-;24963:2;24958:3;24954:12;24947:19;;24606:366;;;:::o;24978:419::-;25144:4;25182:2;25171:9;25167:18;25159:26;;25231:9;25225:4;25221:20;25217:1;25206:9;25202:17;25195:47;25259:131;25385:4;25259:131;:::i;:::-;25251:139;;24978:419;;;:::o;25403:194::-;25443:4;25463:20;25481:1;25463:20;:::i;:::-;25458:25;;25497:20;25515:1;25497:20;:::i;:::-;25492:25;;25541:1;25538;25534:9;25526:17;;25565:1;25559:4;25556:11;25553:37;;;25570:18;;:::i;:::-;25553:37;25403:194;;;;:::o;25603:229::-;25743:34;25739:1;25731:6;25727:14;25720:58;25812:12;25807:2;25799:6;25795:15;25788:37;25603:229;:::o;25838:366::-;25980:3;26001:67;26065:2;26060:3;26001:67;:::i;:::-;25994:74;;26077:93;26166:3;26077:93;:::i;:::-;26195:2;26190:3;26186:12;26179:19;;25838:366;;;:::o;26210:419::-;26376:4;26414:2;26403:9;26399:18;26391:26;;26463:9;26457:4;26453:20;26449:1;26438:9;26434:17;26427:47;26491:131;26617:4;26491:131;:::i;:::-;26483:139;;26210:419;;;:::o;26635:143::-;26692:5;26723:6;26717:13;26708:22;;26739:33;26766:5;26739:33;:::i;:::-;26635:143;;;;:::o;26784:351::-;26854:6;26903:2;26891:9;26882:7;26878:23;26874:32;26871:119;;;26909:79;;:::i;:::-;26871:119;27029:1;27054:64;27110:7;27101:6;27090:9;27086:22;27054:64;:::i;:::-;27044:74;;27000:128;26784:351;;;;:::o;27141:85::-;27186:7;27215:5;27204:16;;27141:85;;;:::o;27232:158::-;27290:9;27323:61;27341:42;27350:32;27376:5;27350:32;:::i;:::-;27341:42;:::i;:::-;27323:61;:::i;:::-;27310:74;;27232:158;;;:::o;27396:147::-;27491:45;27530:5;27491:45;:::i;:::-;27486:3;27479:58;27396:147;;:::o;27549:114::-;27616:6;27650:5;27644:12;27634:22;;27549:114;;;:::o;27669:184::-;27768:11;27802:6;27797:3;27790:19;27842:4;27837:3;27833:14;27818:29;;27669:184;;;;:::o;27859:132::-;27926:4;27949:3;27941:11;;27979:4;27974:3;27970:14;27962:22;;27859:132;;;:::o;27997:108::-;28074:24;28092:5;28074:24;:::i;:::-;28069:3;28062:37;27997:108;;:::o;28111:179::-;28180:10;28201:46;28243:3;28235:6;28201:46;:::i;:::-;28279:4;28274:3;28270:14;28256:28;;28111:179;;;;:::o;28296:113::-;28366:4;28398;28393:3;28389:14;28381:22;;28296:113;;;:::o;28445:732::-;28564:3;28593:54;28641:5;28593:54;:::i;:::-;28663:86;28742:6;28737:3;28663:86;:::i;:::-;28656:93;;28773:56;28823:5;28773:56;:::i;:::-;28852:7;28883:1;28868:284;28893:6;28890:1;28887:13;28868:284;;;28969:6;28963:13;28996:63;29055:3;29040:13;28996:63;:::i;:::-;28989:70;;29082:60;29135:6;29082:60;:::i;:::-;29072:70;;28928:224;28915:1;28912;28908:9;28903:14;;28868:284;;;28872:14;29168:3;29161:10;;28569:608;;;28445:732;;;;:::o;29183:831::-;29446:4;29484:3;29473:9;29469:19;29461:27;;29498:71;29566:1;29555:9;29551:17;29542:6;29498:71;:::i;:::-;29579:80;29655:2;29644:9;29640:18;29631:6;29579:80;:::i;:::-;29706:9;29700:4;29696:20;29691:2;29680:9;29676:18;29669:48;29734:108;29837:4;29828:6;29734:108;:::i;:::-;29726:116;;29852:72;29920:2;29909:9;29905:18;29896:6;29852:72;:::i;:::-;29934:73;30002:3;29991:9;29987:19;29978:6;29934:73;:::i;:::-;29183:831;;;;;;;;:::o;30020:180::-;30068:77;30065:1;30058:88;30165:4;30162:1;30155:15;30189:4;30186:1;30179:15;30206:185;30246:1;30263:20;30281:1;30263:20;:::i;:::-;30258:25;;30297:20;30315:1;30297:20;:::i;:::-;30292:25;;30336:1;30326:35;;30341:18;;:::i;:::-;30326:35;30383:1;30380;30376:9;30371:14;;30206:185;;;;:::o;30397:177::-;30537:29;30533:1;30525:6;30521:14;30514:53;30397:177;:::o;30580:366::-;30722:3;30743:67;30807:2;30802:3;30743:67;:::i;:::-;30736:74;;30819:93;30908:3;30819:93;:::i;:::-;30937:2;30932:3;30928:12;30921:19;;30580:366;;;:::o;30952:419::-;31118:4;31156:2;31145:9;31141:18;31133:26;;31205:9;31199:4;31195:20;31191:1;31180:9;31176:17;31169:47;31233:131;31359:4;31233:131;:::i;:::-;31225:139;;30952:419;;;:::o;31377:220::-;31517:34;31513:1;31505:6;31501:14;31494:58;31586:3;31581:2;31573:6;31569:15;31562:28;31377:220;:::o;31603:366::-;31745:3;31766:67;31830:2;31825:3;31766:67;:::i;:::-;31759:74;;31842:93;31931:3;31842:93;:::i;:::-;31960:2;31955:3;31951:12;31944:19;;31603:366;;;:::o;31975:419::-;32141:4;32179:2;32168:9;32164:18;32156:26;;32228:9;32222:4;32218:20;32214:1;32203:9;32199:17;32192:47;32256:131;32382:4;32256:131;:::i;:::-;32248:139;;31975:419;;;:::o

Swarm Source

ipfs://8e271d55f55f53a391bdbaf5353eb1aa2cf73b0077d8ba83f2a040781de86ef5

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.