ETH Price: $3,358.80 (-1.74%)
Gas: 10 Gwei

Token

HAY6900 (HAY6900)
 

Overview

Max Total Supply

100,000,000 HAY6900

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
665,686.474160267 HAY6900

Value
$0.00
0xe551d6eb69de620370b5f63c8da0f4e31a1c2e99
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:
HAY6900

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-22
*/

// https://hay6900.vip/
// https://t.me/hay6900portal
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

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

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

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

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

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

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

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            codehash := extcodehash(account)
        }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }

    function functionCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                "Address: low-level call with value failed"
            );
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            "Address: insufficient balance for call"
        );
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(
        address target,
        bytes memory data,
        uint256 weiValue,
        string memory errorMessage
    ) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: weiValue}(
            data
        );
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

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

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

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

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

}


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

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

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

contract HAY6900 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    address payable private infrastructure;
        
    mapping(address => uint256) private _holders;
    mapping(address => mapping(address => uint256)) private _allowances;
    
    mapping(address => bool) private _isExcludedFromFee;
    
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100_000_000 * 1e9;
 
    string private constant _name = "HAY6900";
    string private constant _symbol = "HAY6900";
    uint8 private constant _decimals = 9;

    uint256 private _taxFee;
    uint256 private _previousTaxFee = _taxFee;
    

    uint256 public _buyTaxFee = 20;
    uint256 public _sellTaxFee = 40;
        
    uint256 public maxHoldAmount;
    uint256 public maxTxnAmount;
    mapping (address => bool) public _isExcludedMaxHoldAmount;
    mapping (address => bool) public _isExcludedFromTxnAmount;
        

    mapping (address => bool) public automatedMarketMakerPairs;

    uint256 private minimumTokensBeforeSwap;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    bool public tradingActive = false;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
            
    event TransferForeignToken(address token, uint256 amount);
    
    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        _holders[_msgSender()] = _tTotal;
     
        maxHoldAmount = _tTotal.mul(4).div(100); 
        maxTxnAmount = _tTotal.mul(2).div(100); 
        minimumTokensBeforeSwap = 100_000 * 1e9;
        
        infrastructure = payable(0xCE43f3Ccf7a80660C9F82B7516C8e2d7130c6888); 
        
    
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[infrastructure] = true;
        
        _isExcludedMaxHoldAmount[owner()] = true;
        _isExcludedMaxHoldAmount[address(0)] = true;
        _isExcludedMaxHoldAmount[address(this)] = true;
        _isExcludedMaxHoldAmount[infrastructure] = true;

        _isExcludedFromTxnAmount[owner()] = true;
        _isExcludedFromTxnAmount[address(this)] = true;
        _isExcludedFromTxnAmount[infrastructure] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() external pure returns (string memory) {
        return _name;
    }

    function symbol() external pure returns (string memory) {
        return _symbol;
    }

    function decimals() external pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() external pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _holders[account];
    }

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

    function allowance(address owner, address spender)
        external
        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
    ) external 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)
        external
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

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

    function toggleAccountMaxTxn(address account, bool status) public onlyOwner {
        _isExcludedFromTxnAmount[account] = status;
    }
    
    // once enabled, can never be turned off
    function enableTrading() public onlyOwner {
        require(!tradingActive, "trading is already active");
        tradingActive = true;
        swapAndLiquifyEnabled = true;
    }
    
    function launch(address[] memory airdropWallets, uint256[] memory amounts) external onlyOwner returns (bool){
        require(!tradingActive, "trading is already active");
        require(airdropWallets.length < 100, "max 100 wallets");
        for(uint256 i = 0; i < airdropWallets.length; i++){
            address wallet = airdropWallets[i];
            uint256 amount = amounts[i];
            _transfer(msg.sender, wallet, amount);
        }
        enableTrading();
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        toggleAccountMaxHold(address(_uniswapV2Router), true);
        toggleAccountMaxTxn(address(_uniswapV2Router), true);

        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        toggleAccountMaxHold(address(uniswapV2Pair), true);
        toggleAccountMaxTxn(address(uniswapV2Pair), true);

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        require(address(this).balance > 0, "ETH required for launch");
        addLiquidity(balanceOf(address(this)), address(this).balance);
        swapAndLiquifyEnabled = true;
        return true;
    }
    
    function minimumTokensBeforeSwapAmount() external view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

    function setMinimumTokensBeforeSwapAmount(uint256 amount) external onlyOwner {
        minimumTokensBeforeSwap = amount;
    }

    function setMaxHoldAmount(uint256 amount) external onlyOwner {
        maxHoldAmount = amount;
    }

    function setMaxTxnAmount(uint256 amount) external onlyOwner {
        maxTxnAmount = amount;
    }
    
    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed");

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        _isExcludedMaxHoldAmount[pair] = value;
        _isExcludedFromTxnAmount[pair] = value;
    }
    
    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(!tradingActive){
            require(_isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading is not active yet.");
        }

        if (!_isExcludedMaxHoldAmount[to]) {
            uint256 toBalance = balanceOf(to);
            require(toBalance.add(amount) <= maxHoldAmount, "Exceeded max hold");
        }

        if (!_isExcludedFromTxnAmount[from]) {
            require(amount <= maxTxnAmount);
        }
        
        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;

        // swap and liquify
        if (
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            balanceOf(uniswapV2Pair) > 0 &&
            !_isExcludedFromFee[to] &&
            !_isExcludedFromFee[from] &&
            automatedMarketMakerPairs[to] &&
            overMinimumTokenBalance
        ) {
            swapBack();
        }

        bool takeFee = true;

        // If any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFee[from]) {
            takeFee = false;
        } else {
            // Buy
            if (automatedMarketMakerPairs[from]) {
                removeFee();
                _taxFee = _buyTaxFee;
            } 
            // Sell
            else if (automatedMarketMakerPairs[to]) {
                removeFee();
                _taxFee = _sellTaxFee;
             
            } else {
                removeFee();
            }
        }
        
        _tokenTransfer(from, to, amount, takeFee);
        
    }

    function swapBack() private lockTheSwap {
        uint256 contractBalance = balanceOf(address(this));               

        swapTokensForETH(contractBalance); 
        
        uint256 ethBalance = address(this).balance;
        
        (bool success,) = address(infrastructure).call{value: ethBalance}("");
        require(success, "Failed to send eth");
    }
    
    function forceSwapBack() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        require(contractBalance >= 100_000 * 1e9, " < 100,000 of tokens stuck");
        swapBack();
    }
    
    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            owner(),
            block.timestamp
        );
    }

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

        (
            uint256 transferAmount,
            uint256 tFee
        ) = _getValues(amount);
        _holders[sender] = _holders[sender].sub(amount);
        _holders[address(this)] = _holders[address(this)].add(tFee);
        _holders[recipient] = _holders[recipient].add(transferAmount);

        emit Transfer(sender, recipient, transferAmount);

        if (!takeFee) restoreFee();
    }

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256
        )
    {
        uint256 tFee = calculateTaxFee(tAmount);
        uint256 transferAmount = tAmount.sub(tFee);
        uint256 fees = tFee;
        
        return (transferAmount, fees);
    }

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


    function removeFee() private {
        if (_taxFee == 0) return;
        _previousTaxFee = _taxFee;
        _taxFee = 0;
    }

    function restoreFee() private {
        _taxFee = _previousTaxFee;
    }

    function isExcludedFromFee(address account) external view returns (bool) {
        return _isExcludedFromFee[account];
    }
    
    function excludeFromFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = true;
    }

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

    function setBuyFee(uint256 buyTaxFee)
        external
        onlyOwner
    {
        _buyTaxFee = buyTaxFee;
        require(_buyTaxFee <= 10, " > 10%");
    }

    function setSellFee(uint256 sellTaxFee)
        external
        onlyOwner
    {
        _sellTaxFee = sellTaxFee;
        require(_sellTaxFee  <= 15, " > 15%");
    }

    function setInfrastructureAddress(address _infrastructure) external onlyOwner {
        require(_infrastructure != address(0), "0 address");
        _isExcludedFromFee[infrastructure] = false;
        toggleAccountMaxHold(infrastructure, false);
        toggleAccountMaxTxn(infrastructure, false);

        infrastructure = payable(_infrastructure);
        _isExcludedFromFee[infrastructure] = true;
        toggleAccountMaxHold(infrastructure, true);
        toggleAccountMaxTxn(infrastructure, true);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    // To receive ETH from uniswapV2Router when swapping
    receive() external payable {}

    function transferForeignToken(address _token, address _to)
        external
        onlyOwner
        returns (bool _sent)
    {
        require(_token != address(0), "_token address cannot be 0");
        require(_token != address(this), "ICHIGO not allowed");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        _sent = IERC20(_token).transfer(_to, _contractBalance);
        emit TransferForeignToken(_token, _contractBalance);
    }
    
    function withdrawStuckETH() external onlyOwner {
        require(!tradingActive, "Can only withdraw if trading hasn't started");
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }
}

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":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"inputs":[],"name":"_buyTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromTxnAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxHoldAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTaxFee","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","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":"airdropWallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"launch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxHoldAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTaxFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_infrastructure","type":"address"}],"name":"setInfrastructureAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxHoldAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMinimumTokensBeforeSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellTaxFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"toggleAccountMaxHold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"toggleAccountMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingActive","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":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","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":[],"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"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260075460085560146009556028600a556000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055503480156200005757600080fd5b5060006200006a620006d360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35067016345785d8a00006004600062000125620006d360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001a060646200018c600467016345785d8a0000620006db60201b620026dd1790919060201c565b6200075e60201b620027571790919060201c565b600b81905550620001e36064620001cf600267016345785d8a0000620006db60201b620026dd1790919060201c565b6200075e60201b620027571790919060201c565b600c81905550655af3107a400060108190555073ce43f3ccf7a80660c9f82b7516c8e2d7130c6888600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016006600062000261620007b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60006200039a620007b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60006200052b620007b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200065e620006d360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620006c591906200085c565b60405180910390a362000ab0565b600033905090565b6000808303620006ef576000905062000758565b60008284620006ff9190620008a8565b905082848262000710919062000922565b1462000753576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200074a90620009e1565b60405180910390fd5b809150505b92915050565b6000620007a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620007d960201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000823576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200081a919062000a8c565b60405180910390fd5b506000838562000834919062000922565b9050809150509392505050565b6000819050919050565b620008568162000841565b82525050565b60006020820190506200087360008301846200084b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008b58262000841565b9150620008c28362000841565b9250828202620008d28162000841565b91508282048414831517620008ec57620008eb62000879565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200092f8262000841565b91506200093c8362000841565b9250826200094f576200094e620008f3565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620009c96021836200095a565b9150620009d6826200096b565b604082019050919050565b60006020820190508181036000830152620009fc81620009ba565b9050919050565b600081519050919050565b60005b8381101562000a2e57808201518184015260208101905062000a11565b60008484015250505050565b6000601f19601f8301169050919050565b600062000a588262000a03565b62000a6481856200095a565b935062000a7681856020860162000a0e565b62000a818162000a3a565b840191505092915050565b6000602082019050818103600083015262000aa8818462000a4b565b905092915050565b614ff78062000ac06000396000f3fe6080604052600436106102555760003560e01c80638da5cb5b11610139578063cd03425c116100b6578063df4fd5151161007a578063df4fd515146108f7578063ea2f0b3714610920578063ef10fb9714610949578063efcc52de14610986578063f345edc2146109b1578063f5648a4f146109ee5761025c565b8063cd03425c14610812578063cf46f24c1461083d578063d7ffa81514610868578063d8b6004014610891578063dd62ed3e146108ba5761025c565b8063a457c2d7116100fd578063a457c2d714610707578063a9059cbb14610744578063b62496f514610781578063bbc0c742146107be578063c49b9a80146107e95761025c565b80638da5cb5b1461063457806395d89b411461065f5780639a7a23d61461068a5780639ecacb77146106b3578063a073d37f146106dc5761025c565b806349bd5a5e116101d257806374010ece1161019657806374010ece146105285780637826932a146105515780638366e79a1461057a57806383791758146105b75780638a8c523c146105f45780638b4cee081461060b5761025c565b806349bd5a5e146104415780634a74bb021461046c57806351f205e4146104975780635342acb4146104ae57806370a08231146104eb5761025c565b8063200a692d11610219578063200a692d1461034857806323b872dd14610373578063313ce567146103b057806339509351146103db578063437823ec146104185761025c565b806306fdde0314610261578063095ea7b31461028c5780630cc835a3146102c95780631694505e146102f257806318160ddd1461031d5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b50610276610a05565b60405161028391906139bf565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190613a89565b610a42565b6040516102c09190613ae4565b60405180910390f35b3480156102d557600080fd5b506102f060048036038101906102eb9190613aff565b610a60565b005b3480156102fe57600080fd5b50610307610b45565b6040516103149190613b8b565b60405180910390f35b34801561032957600080fd5b50610332610b6b565b60405161033f9190613bb5565b60405180910390f35b34801561035457600080fd5b5061035d610b7b565b60405161036a9190613bb5565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190613bd0565b610b81565b6040516103a79190613ae4565b60405180910390f35b3480156103bc57600080fd5b506103c5610c5a565b6040516103d29190613c3f565b60405180910390f35b3480156103e757600080fd5b5061040260048036038101906103fd9190613a89565b610c63565b60405161040f9190613ae4565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a9190613c5a565b610d16565b005b34801561044d57600080fd5b50610456610e06565b6040516104639190613c96565b60405180910390f35b34801561047857600080fd5b50610481610e2c565b60405161048e9190613ae4565b60405180910390f35b3480156104a357600080fd5b506104ac610e3f565b005b3480156104ba57600080fd5b506104d560048036038101906104d09190613c5a565b610f35565b6040516104e29190613ae4565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613c5a565b610f8b565b60405161051f9190613bb5565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613aff565b610fd4565b005b34801561055d57600080fd5b5061057860048036038101906105739190613cdd565b611073565b005b34801561058657600080fd5b506105a1600480360381019061059c9190613d1d565b611163565b6040516105ae9190613ae4565b60405180910390f35b3480156105c357600080fd5b506105de60048036038101906105d99190613f68565b611415565b6040516105eb9190613ae4565b60405180910390f35b34801561060057600080fd5b506106096118f4565b005b34801561061757600080fd5b50610632600480360381019061062d9190613aff565b611a11565b005b34801561064057600080fd5b50610649611af6565b6040516106569190613c96565b60405180910390f35b34801561066b57600080fd5b50610674611b1f565b60405161068191906139bf565b60405180910390f35b34801561069657600080fd5b506106b160048036038101906106ac9190613cdd565b611b5c565b005b3480156106bf57600080fd5b506106da60048036038101906106d59190613cdd565b611c8f565b005b3480156106e857600080fd5b506106f1611d7f565b6040516106fe9190613bb5565b60405180910390f35b34801561071357600080fd5b5061072e60048036038101906107299190613a89565b611d89565b60405161073b9190613ae4565b60405180910390f35b34801561075057600080fd5b5061076b60048036038101906107669190613a89565b611e56565b6040516107789190613ae4565b60405180910390f35b34801561078d57600080fd5b506107a860048036038101906107a39190613c5a565b611e74565b6040516107b59190613ae4565b60405180910390f35b3480156107ca57600080fd5b506107d3611e94565b6040516107e09190613ae4565b60405180910390f35b3480156107f557600080fd5b50610810600480360381019061080b9190613fe0565b611ea7565b005b34801561081e57600080fd5b50610827611f90565b6040516108349190613bb5565b60405180910390f35b34801561084957600080fd5b50610852611f96565b60405161085f9190613bb5565b60405180910390f35b34801561087457600080fd5b5061088f600480360381019061088a9190613c5a565b611f9c565b005b34801561089d57600080fd5b506108b860048036038101906108b39190613aff565b61228c565b005b3480156108c657600080fd5b506108e160048036038101906108dc9190613d1d565b61232b565b6040516108ee9190613bb5565b60405180910390f35b34801561090357600080fd5b5061091e60048036038101906109199190613aff565b6123b2565b005b34801561092c57600080fd5b5061094760048036038101906109429190613c5a565b612451565b005b34801561095557600080fd5b50610970600480360381019061096b9190613c5a565b612541565b60405161097d9190613ae4565b60405180910390f35b34801561099257600080fd5b5061099b612561565b6040516109a89190613bb5565b60405180910390f35b3480156109bd57600080fd5b506109d860048036038101906109d39190613c5a565b612567565b6040516109e59190613ae4565b60405180910390f35b3480156109fa57600080fd5b50610a03612587565b005b60606040518060400160405280600781526020017f4841593639303000000000000000000000000000000000000000000000000000815250905090565b6000610a56610a4f6127a1565b84846127a9565b6001905092915050565b610a686127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90614059565b60405180910390fd5b80600981905550600a6009541115610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b39906140c5565b60405180910390fd5b50565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600a5481565b6000610b8e848484612972565b610c4f84610b9a6127a1565b610c4a85604051806060016040528060288152602001614f7560289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c006127a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f7e9092919063ffffffff16565b6127a9565b600190509392505050565b60006009905090565b6000610d0c610c706127a1565b84610d078560056000610c816127a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe290919063ffffffff16565b6127a9565b6001905092915050565b610d1e6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da290614059565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260159054906101000a900460ff1681565b610e476127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecb90614059565b60405180910390fd5b6000610edf30610f8b565b9050655af3107a4000811015610f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2190614131565b60405180910390fd5b610f32613040565b50565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fdc6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106090614059565b60405180910390fd5b80600c8190555050565b61107b6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90614059565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061116d6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f190614059565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611269576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112609061419d565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90614209565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113129190613c96565b602060405180830381865afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611353919061423e565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161139092919061426b565b6020604051808303816000875af11580156113af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d391906142a9565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438848260405161140692919061426b565b60405180910390a15092915050565b600061141f6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a390614059565b60405180910390fd5b601260169054906101000a900460ff16156114fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f390614322565b60405180910390fd5b6064835110611540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115379061438e565b60405180910390fd5b60005b83518110156115aa576000848281518110611561576115606143ae565b5b6020026020010151905060008483815181106115805761157f6143ae565b5b60200260200101519050611595338383612972565b505080806115a29061440c565b915050611543565b506115b36118f4565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506115d7816001611c8f565b6115e2816001611073565b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061165830601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006127a9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c79190614469565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117529190614469565b6040518363ffffffff1660e01b815260040161176f929190614496565b6020604051808303816000875af115801561178e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b29190614469565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061181f601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611c8f565b61184c601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611073565b611879601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001613164565b600047116118bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b39061450b565b60405180910390fd5b6118ce6118c830610f8b565b4761326d565b6001601260156101000a81548160ff021916908315150217905550600191505092915050565b6118fc6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198090614059565b60405180910390fd5b601260169054906101000a900460ff16156119d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d090614322565b60405180910390fd5b6001601260166101000a81548160ff0219169083151502179055506001601260156101000a81548160ff021916908315150217905550565b611a196127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d90614059565b60405180910390fd5b80600a81905550600f600a541115611af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aea90614577565b60405180910390fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4841593639303000000000000000000000000000000000000000000000000000815250905090565b611b646127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be890614059565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c78906145e3565b60405180910390fd5b611c8b8282613164565b5050565b611c976127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b90614059565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601054905090565b6000611e4c611d966127a1565b84611e4785604051806060016040528060258152602001614f9d6025913960056000611dc06127a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f7e9092919063ffffffff16565b6127a9565b6001905092915050565b6000611e6a611e636127a1565b8484612972565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b601260169054906101000a900460ff1681565b611eaf6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3390614059565b60405180910390fd5b80601260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611f859190613ae4565b60405180910390a150565b600b5481565b600c5481565b611fa46127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202890614059565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120979061464f565b60405180910390fd5b600060066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612147600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611c8f565b612174600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611073565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061225c600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611c8f565b612289600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611073565b50565b6122946127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231890614059565b60405180910390fd5b80600b8190555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6123ba6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243e90614059565b60405180910390fd5b8060108190555050565b6124596127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124dd90614059565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d6020528060005260406000206000915054906101000a900460ff1681565b60095481565b600e6020528060005260406000206000915054906101000a900460ff1681565b61258f6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461261c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261390614059565b60405180910390fd5b601260169054906101000a900460ff161561266c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612663906146e1565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161269290614732565b60006040518083038185875af1925050503d80600081146126cf576040519150601f19603f3d011682016040523d82523d6000602084013e6126d4565b606091505b50508091505050565b60008083036126ef5760009050612751565b600082846126fd9190614747565b905082848261270c91906147b8565b1461274c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127439061485b565b60405180910390fd5b809150505b92915050565b600061279983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613352565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280f906148ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287e9061497f565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129659190613bb5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d890614a11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4790614aa3565b60405180910390fd5b60008111612a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8a90614b35565b60405180910390fd5b601260169054906101000a900460ff16612b8857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b485750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7e90614ba1565b60405180910390fd5b5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c3f576000612be483610f8b565b9050600b54612bfc8383612fe290919063ffffffff16565b1115612c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3490614c0d565b60405180910390fd5b505b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612ca057600c54811115612c9f57600080fd5b5b6000612cab30610f8b565b905060006010548210159050601260149054906101000a900460ff16158015612ce05750601260159054906101000a900460ff165b8015612d1657506000612d14601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f8b565b115b8015612d6c5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612dc25750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e175750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015612e205750805b15612e2e57612e2d613040565b5b600060019050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612e8f5760009050612f6a565b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ef757612ee96133b5565b600954600781905550612f69565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f5f57612f516133b5565b600a54600781905550612f68565b612f676133b5565b5b5b5b612f76868686846133d4565b505050505050565b6000838311158290612fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fbd91906139bf565b60405180910390fd5b5060008385612fd59190614c2d565b9050809150509392505050565b6000808284612ff19190614c61565b905083811015613036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302d90614ce1565b60405180910390fd5b8091505092915050565b6001601260146101000a81548160ff021916908315150217905550600061306630610f8b565b90506130718161362c565b60004790506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516130be90614732565b60006040518083038185875af1925050503d80600081146130fb576040519150601f19603f3d011682016040523d82523d6000602084013e613100565b606091505b5050905080613144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313b90614d4d565b60405180910390fd5b5050506000601260146101000a81548160ff021916908315150217905550565b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61329a30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846127a9565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806132e6611af6565b426040518863ffffffff1660e01b815260040161330896959493929190614da8565b60606040518083038185885af1158015613326573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061334b9190614e09565b5050505050565b60008083118290613399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161339091906139bf565b60405180910390fd5b50600083856133a891906147b8565b9050809150509392505050565b600060075403156133d25760075460088190555060006007819055505b565b806133e2576133e16133b5565b5b6000806133ee8461386f565b9150915061344484600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138a990919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134d981600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe290919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061356e82600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe290919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161360e9190613bb5565b60405180910390a382613624576136236138f3565b5b505050505050565b6000600267ffffffffffffffff81111561364957613648613d62565b5b6040519080825280602002602001820160405280156136775781602001602082028036833780820191505090505b509050308160008151811061368f5761368e6143ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061375a9190614469565b8160018151811061376e5761376d6143ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506137d530601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846127a9565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613839959493929190614f1a565b600060405180830381600087803b15801561385357600080fd5b505af1158015613867573d6000803e3d6000fd5b505050505050565b600080600061387d846138fe565b9050600061389482866138a990919063ffffffff16565b90506000829050818194509450505050915091565b60006138eb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f7e565b905092915050565b600854600781905550565b6000613928606461391a600754856126dd90919063ffffffff16565b61275790919063ffffffff16565b9050919050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561396957808201518184015260208101905061394e565b60008484015250505050565b6000601f19601f8301169050919050565b60006139918261392f565b61399b818561393a565b93506139ab81856020860161394b565b6139b481613975565b840191505092915050565b600060208201905081810360008301526139d98184613986565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a20826139f5565b9050919050565b613a3081613a15565b8114613a3b57600080fd5b50565b600081359050613a4d81613a27565b92915050565b6000819050919050565b613a6681613a53565b8114613a7157600080fd5b50565b600081359050613a8381613a5d565b92915050565b60008060408385031215613aa057613a9f6139eb565b5b6000613aae85828601613a3e565b9250506020613abf85828601613a74565b9150509250929050565b60008115159050919050565b613ade81613ac9565b82525050565b6000602082019050613af96000830184613ad5565b92915050565b600060208284031215613b1557613b146139eb565b5b6000613b2384828501613a74565b91505092915050565b6000819050919050565b6000613b51613b4c613b47846139f5565b613b2c565b6139f5565b9050919050565b6000613b6382613b36565b9050919050565b6000613b7582613b58565b9050919050565b613b8581613b6a565b82525050565b6000602082019050613ba06000830184613b7c565b92915050565b613baf81613a53565b82525050565b6000602082019050613bca6000830184613ba6565b92915050565b600080600060608486031215613be957613be86139eb565b5b6000613bf786828701613a3e565b9350506020613c0886828701613a3e565b9250506040613c1986828701613a74565b9150509250925092565b600060ff82169050919050565b613c3981613c23565b82525050565b6000602082019050613c546000830184613c30565b92915050565b600060208284031215613c7057613c6f6139eb565b5b6000613c7e84828501613a3e565b91505092915050565b613c9081613a15565b82525050565b6000602082019050613cab6000830184613c87565b92915050565b613cba81613ac9565b8114613cc557600080fd5b50565b600081359050613cd781613cb1565b92915050565b60008060408385031215613cf457613cf36139eb565b5b6000613d0285828601613a3e565b9250506020613d1385828601613cc8565b9150509250929050565b60008060408385031215613d3457613d336139eb565b5b6000613d4285828601613a3e565b9250506020613d5385828601613a3e565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d9a82613975565b810181811067ffffffffffffffff82111715613db957613db8613d62565b5b80604052505050565b6000613dcc6139e1565b9050613dd88282613d91565b919050565b600067ffffffffffffffff821115613df857613df7613d62565b5b602082029050602081019050919050565b600080fd5b6000613e21613e1c84613ddd565b613dc2565b90508083825260208201905060208402830185811115613e4457613e43613e09565b5b835b81811015613e6d5780613e598882613a3e565b845260208401935050602081019050613e46565b5050509392505050565b600082601f830112613e8c57613e8b613d5d565b5b8135613e9c848260208601613e0e565b91505092915050565b600067ffffffffffffffff821115613ec057613ebf613d62565b5b602082029050602081019050919050565b6000613ee4613edf84613ea5565b613dc2565b90508083825260208201905060208402830185811115613f0757613f06613e09565b5b835b81811015613f305780613f1c8882613a74565b845260208401935050602081019050613f09565b5050509392505050565b600082601f830112613f4f57613f4e613d5d565b5b8135613f5f848260208601613ed1565b91505092915050565b60008060408385031215613f7f57613f7e6139eb565b5b600083013567ffffffffffffffff811115613f9d57613f9c6139f0565b5b613fa985828601613e77565b925050602083013567ffffffffffffffff811115613fca57613fc96139f0565b5b613fd685828601613f3a565b9150509250929050565b600060208284031215613ff657613ff56139eb565b5b600061400484828501613cc8565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061404360208361393a565b915061404e8261400d565b602082019050919050565b6000602082019050818103600083015261407281614036565b9050919050565b7f203e203130250000000000000000000000000000000000000000000000000000600082015250565b60006140af60068361393a565b91506140ba82614079565b602082019050919050565b600060208201905081810360008301526140de816140a2565b9050919050565b7f203c203130302c303030206f6620746f6b656e7320737475636b000000000000600082015250565b600061411b601a8361393a565b9150614126826140e5565b602082019050919050565b6000602082019050818103600083015261414a8161410e565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000600082015250565b6000614187601a8361393a565b915061419282614151565b602082019050919050565b600060208201905081810360008301526141b68161417a565b9050919050565b7f49434849474f206e6f7420616c6c6f7765640000000000000000000000000000600082015250565b60006141f360128361393a565b91506141fe826141bd565b602082019050919050565b60006020820190508181036000830152614222816141e6565b9050919050565b60008151905061423881613a5d565b92915050565b600060208284031215614254576142536139eb565b5b600061426284828501614229565b91505092915050565b60006040820190506142806000830185613c87565b61428d6020830184613ba6565b9392505050565b6000815190506142a381613cb1565b92915050565b6000602082840312156142bf576142be6139eb565b5b60006142cd84828501614294565b91505092915050565b7f74726164696e6720697320616c72656164792061637469766500000000000000600082015250565b600061430c60198361393a565b9150614317826142d6565b602082019050919050565b6000602082019050818103600083015261433b816142ff565b9050919050565b7f6d6178203130302077616c6c6574730000000000000000000000000000000000600082015250565b6000614378600f8361393a565b915061438382614342565b602082019050919050565b600060208201905081810360008301526143a78161436b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061441782613a53565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614449576144486143dd565b5b600182019050919050565b60008151905061446381613a27565b92915050565b60006020828403121561447f5761447e6139eb565b5b600061448d84828501614454565b91505092915050565b60006040820190506144ab6000830185613c87565b6144b86020830184613c87565b9392505050565b7f45544820726571756972656420666f72206c61756e6368000000000000000000600082015250565b60006144f560178361393a565b9150614500826144bf565b602082019050919050565b60006020820190508181036000830152614524816144e8565b9050919050565b7f203e203135250000000000000000000000000000000000000000000000000000600082015250565b600061456160068361393a565b915061456c8261452b565b602082019050919050565b6000602082019050818103600083015261459081614554565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f766564000000000000600082015250565b60006145cd601a8361393a565b91506145d882614597565b602082019050919050565b600060208201905081810360008301526145fc816145c0565b9050919050565b7f3020616464726573730000000000000000000000000000000000000000000000600082015250565b600061463960098361393a565b915061464482614603565b602082019050919050565b600060208201905081810360008301526146688161462c565b9050919050565b7f43616e206f6e6c792077697468647261772069662074726164696e672068617360008201527f6e27742073746172746564000000000000000000000000000000000000000000602082015250565b60006146cb602b8361393a565b91506146d68261466f565b604082019050919050565b600060208201905081810360008301526146fa816146be565b9050919050565b600081905092915050565b50565b600061471c600083614701565b91506147278261470c565b600082019050919050565b600061473d8261470f565b9150819050919050565b600061475282613a53565b915061475d83613a53565b925082820261476b81613a53565b91508282048414831517614782576147816143dd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147c382613a53565b91506147ce83613a53565b9250826147de576147dd614789565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061484560218361393a565b9150614850826147e9565b604082019050919050565b6000602082019050818103600083015261487481614838565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006148d760248361393a565b91506148e28261487b565b604082019050919050565b60006020820190508181036000830152614906816148ca565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061496960228361393a565b91506149748261490d565b604082019050919050565b600060208201905081810360008301526149988161495c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006149fb60258361393a565b9150614a068261499f565b604082019050919050565b60006020820190508181036000830152614a2a816149ee565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614a8d60238361393a565b9150614a9882614a31565b604082019050919050565b60006020820190508181036000830152614abc81614a80565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614b1f60298361393a565b9150614b2a82614ac3565b604082019050919050565b60006020820190508181036000830152614b4e81614b12565b9050919050565b7f54726164696e67206973206e6f7420616374697665207965742e000000000000600082015250565b6000614b8b601a8361393a565b9150614b9682614b55565b602082019050919050565b60006020820190508181036000830152614bba81614b7e565b9050919050565b7f4578636565646564206d617820686f6c64000000000000000000000000000000600082015250565b6000614bf760118361393a565b9150614c0282614bc1565b602082019050919050565b60006020820190508181036000830152614c2681614bea565b9050919050565b6000614c3882613a53565b9150614c4383613a53565b9250828203905081811115614c5b57614c5a6143dd565b5b92915050565b6000614c6c82613a53565b9150614c7783613a53565b9250828201905080821115614c8f57614c8e6143dd565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614ccb601b8361393a565b9150614cd682614c95565b602082019050919050565b60006020820190508181036000830152614cfa81614cbe565b9050919050565b7f4661696c656420746f2073656e64206574680000000000000000000000000000600082015250565b6000614d3760128361393a565b9150614d4282614d01565b602082019050919050565b60006020820190508181036000830152614d6681614d2a565b9050919050565b6000819050919050565b6000614d92614d8d614d8884614d6d565b613b2c565b613a53565b9050919050565b614da281614d77565b82525050565b600060c082019050614dbd6000830189613c87565b614dca6020830188613ba6565b614dd76040830187614d99565b614de46060830186614d99565b614df16080830185613c87565b614dfe60a0830184613ba6565b979650505050505050565b600080600060608486031215614e2257614e216139eb565b5b6000614e3086828701614229565b9350506020614e4186828701614229565b9250506040614e5286828701614229565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614e9181613a15565b82525050565b6000614ea38383614e88565b60208301905092915050565b6000602082019050919050565b6000614ec782614e5c565b614ed18185614e67565b9350614edc83614e78565b8060005b83811015614f0d578151614ef48882614e97565b9750614eff83614eaf565b925050600181019050614ee0565b5085935050505092915050565b600060a082019050614f2f6000830188613ba6565b614f3c6020830187614d99565b8181036040830152614f4e8186614ebc565b9050614f5d6060830185613c87565b614f6a6080830184613ba6565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208454d8ecb1fa70942fde4b574e840b31c4e96e4e2f309f25a01b72a457039fba64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102555760003560e01c80638da5cb5b11610139578063cd03425c116100b6578063df4fd5151161007a578063df4fd515146108f7578063ea2f0b3714610920578063ef10fb9714610949578063efcc52de14610986578063f345edc2146109b1578063f5648a4f146109ee5761025c565b8063cd03425c14610812578063cf46f24c1461083d578063d7ffa81514610868578063d8b6004014610891578063dd62ed3e146108ba5761025c565b8063a457c2d7116100fd578063a457c2d714610707578063a9059cbb14610744578063b62496f514610781578063bbc0c742146107be578063c49b9a80146107e95761025c565b80638da5cb5b1461063457806395d89b411461065f5780639a7a23d61461068a5780639ecacb77146106b3578063a073d37f146106dc5761025c565b806349bd5a5e116101d257806374010ece1161019657806374010ece146105285780637826932a146105515780638366e79a1461057a57806383791758146105b75780638a8c523c146105f45780638b4cee081461060b5761025c565b806349bd5a5e146104415780634a74bb021461046c57806351f205e4146104975780635342acb4146104ae57806370a08231146104eb5761025c565b8063200a692d11610219578063200a692d1461034857806323b872dd14610373578063313ce567146103b057806339509351146103db578063437823ec146104185761025c565b806306fdde0314610261578063095ea7b31461028c5780630cc835a3146102c95780631694505e146102f257806318160ddd1461031d5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b50610276610a05565b60405161028391906139bf565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190613a89565b610a42565b6040516102c09190613ae4565b60405180910390f35b3480156102d557600080fd5b506102f060048036038101906102eb9190613aff565b610a60565b005b3480156102fe57600080fd5b50610307610b45565b6040516103149190613b8b565b60405180910390f35b34801561032957600080fd5b50610332610b6b565b60405161033f9190613bb5565b60405180910390f35b34801561035457600080fd5b5061035d610b7b565b60405161036a9190613bb5565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190613bd0565b610b81565b6040516103a79190613ae4565b60405180910390f35b3480156103bc57600080fd5b506103c5610c5a565b6040516103d29190613c3f565b60405180910390f35b3480156103e757600080fd5b5061040260048036038101906103fd9190613a89565b610c63565b60405161040f9190613ae4565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a9190613c5a565b610d16565b005b34801561044d57600080fd5b50610456610e06565b6040516104639190613c96565b60405180910390f35b34801561047857600080fd5b50610481610e2c565b60405161048e9190613ae4565b60405180910390f35b3480156104a357600080fd5b506104ac610e3f565b005b3480156104ba57600080fd5b506104d560048036038101906104d09190613c5a565b610f35565b6040516104e29190613ae4565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613c5a565b610f8b565b60405161051f9190613bb5565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613aff565b610fd4565b005b34801561055d57600080fd5b5061057860048036038101906105739190613cdd565b611073565b005b34801561058657600080fd5b506105a1600480360381019061059c9190613d1d565b611163565b6040516105ae9190613ae4565b60405180910390f35b3480156105c357600080fd5b506105de60048036038101906105d99190613f68565b611415565b6040516105eb9190613ae4565b60405180910390f35b34801561060057600080fd5b506106096118f4565b005b34801561061757600080fd5b50610632600480360381019061062d9190613aff565b611a11565b005b34801561064057600080fd5b50610649611af6565b6040516106569190613c96565b60405180910390f35b34801561066b57600080fd5b50610674611b1f565b60405161068191906139bf565b60405180910390f35b34801561069657600080fd5b506106b160048036038101906106ac9190613cdd565b611b5c565b005b3480156106bf57600080fd5b506106da60048036038101906106d59190613cdd565b611c8f565b005b3480156106e857600080fd5b506106f1611d7f565b6040516106fe9190613bb5565b60405180910390f35b34801561071357600080fd5b5061072e60048036038101906107299190613a89565b611d89565b60405161073b9190613ae4565b60405180910390f35b34801561075057600080fd5b5061076b60048036038101906107669190613a89565b611e56565b6040516107789190613ae4565b60405180910390f35b34801561078d57600080fd5b506107a860048036038101906107a39190613c5a565b611e74565b6040516107b59190613ae4565b60405180910390f35b3480156107ca57600080fd5b506107d3611e94565b6040516107e09190613ae4565b60405180910390f35b3480156107f557600080fd5b50610810600480360381019061080b9190613fe0565b611ea7565b005b34801561081e57600080fd5b50610827611f90565b6040516108349190613bb5565b60405180910390f35b34801561084957600080fd5b50610852611f96565b60405161085f9190613bb5565b60405180910390f35b34801561087457600080fd5b5061088f600480360381019061088a9190613c5a565b611f9c565b005b34801561089d57600080fd5b506108b860048036038101906108b39190613aff565b61228c565b005b3480156108c657600080fd5b506108e160048036038101906108dc9190613d1d565b61232b565b6040516108ee9190613bb5565b60405180910390f35b34801561090357600080fd5b5061091e60048036038101906109199190613aff565b6123b2565b005b34801561092c57600080fd5b5061094760048036038101906109429190613c5a565b612451565b005b34801561095557600080fd5b50610970600480360381019061096b9190613c5a565b612541565b60405161097d9190613ae4565b60405180910390f35b34801561099257600080fd5b5061099b612561565b6040516109a89190613bb5565b60405180910390f35b3480156109bd57600080fd5b506109d860048036038101906109d39190613c5a565b612567565b6040516109e59190613ae4565b60405180910390f35b3480156109fa57600080fd5b50610a03612587565b005b60606040518060400160405280600781526020017f4841593639303000000000000000000000000000000000000000000000000000815250905090565b6000610a56610a4f6127a1565b84846127a9565b6001905092915050565b610a686127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90614059565b60405180910390fd5b80600981905550600a6009541115610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b39906140c5565b60405180910390fd5b50565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600a5481565b6000610b8e848484612972565b610c4f84610b9a6127a1565b610c4a85604051806060016040528060288152602001614f7560289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c006127a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f7e9092919063ffffffff16565b6127a9565b600190509392505050565b60006009905090565b6000610d0c610c706127a1565b84610d078560056000610c816127a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe290919063ffffffff16565b6127a9565b6001905092915050565b610d1e6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da290614059565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260159054906101000a900460ff1681565b610e476127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecb90614059565b60405180910390fd5b6000610edf30610f8b565b9050655af3107a4000811015610f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2190614131565b60405180910390fd5b610f32613040565b50565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fdc6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106090614059565b60405180910390fd5b80600c8190555050565b61107b6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90614059565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061116d6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f190614059565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611269576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112609061419d565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90614209565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113129190613c96565b602060405180830381865afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611353919061423e565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161139092919061426b565b6020604051808303816000875af11580156113af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d391906142a9565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438848260405161140692919061426b565b60405180910390a15092915050565b600061141f6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a390614059565b60405180910390fd5b601260169054906101000a900460ff16156114fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f390614322565b60405180910390fd5b6064835110611540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115379061438e565b60405180910390fd5b60005b83518110156115aa576000848281518110611561576115606143ae565b5b6020026020010151905060008483815181106115805761157f6143ae565b5b60200260200101519050611595338383612972565b505080806115a29061440c565b915050611543565b506115b36118f4565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506115d7816001611c8f565b6115e2816001611073565b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061165830601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006127a9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c79190614469565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117529190614469565b6040518363ffffffff1660e01b815260040161176f929190614496565b6020604051808303816000875af115801561178e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b29190614469565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061181f601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611c8f565b61184c601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611073565b611879601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001613164565b600047116118bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b39061450b565b60405180910390fd5b6118ce6118c830610f8b565b4761326d565b6001601260156101000a81548160ff021916908315150217905550600191505092915050565b6118fc6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198090614059565b60405180910390fd5b601260169054906101000a900460ff16156119d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d090614322565b60405180910390fd5b6001601260166101000a81548160ff0219169083151502179055506001601260156101000a81548160ff021916908315150217905550565b611a196127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d90614059565b60405180910390fd5b80600a81905550600f600a541115611af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aea90614577565b60405180910390fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4841593639303000000000000000000000000000000000000000000000000000815250905090565b611b646127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be890614059565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c78906145e3565b60405180910390fd5b611c8b8282613164565b5050565b611c976127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b90614059565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601054905090565b6000611e4c611d966127a1565b84611e4785604051806060016040528060258152602001614f9d6025913960056000611dc06127a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f7e9092919063ffffffff16565b6127a9565b6001905092915050565b6000611e6a611e636127a1565b8484612972565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b601260169054906101000a900460ff1681565b611eaf6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3390614059565b60405180910390fd5b80601260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611f859190613ae4565b60405180910390a150565b600b5481565b600c5481565b611fa46127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202890614059565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120979061464f565b60405180910390fd5b600060066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612147600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611c8f565b612174600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611073565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061225c600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611c8f565b612289600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611073565b50565b6122946127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231890614059565b60405180910390fd5b80600b8190555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6123ba6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243e90614059565b60405180910390fd5b8060108190555050565b6124596127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124dd90614059565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d6020528060005260406000206000915054906101000a900460ff1681565b60095481565b600e6020528060005260406000206000915054906101000a900460ff1681565b61258f6127a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461261c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261390614059565b60405180910390fd5b601260169054906101000a900460ff161561266c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612663906146e1565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161269290614732565b60006040518083038185875af1925050503d80600081146126cf576040519150601f19603f3d011682016040523d82523d6000602084013e6126d4565b606091505b50508091505050565b60008083036126ef5760009050612751565b600082846126fd9190614747565b905082848261270c91906147b8565b1461274c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127439061485b565b60405180910390fd5b809150505b92915050565b600061279983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613352565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280f906148ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287e9061497f565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129659190613bb5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d890614a11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4790614aa3565b60405180910390fd5b60008111612a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8a90614b35565b60405180910390fd5b601260169054906101000a900460ff16612b8857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b485750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7e90614ba1565b60405180910390fd5b5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c3f576000612be483610f8b565b9050600b54612bfc8383612fe290919063ffffffff16565b1115612c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3490614c0d565b60405180910390fd5b505b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612ca057600c54811115612c9f57600080fd5b5b6000612cab30610f8b565b905060006010548210159050601260149054906101000a900460ff16158015612ce05750601260159054906101000a900460ff165b8015612d1657506000612d14601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f8b565b115b8015612d6c5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612dc25750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e175750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015612e205750805b15612e2e57612e2d613040565b5b600060019050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612e8f5760009050612f6a565b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ef757612ee96133b5565b600954600781905550612f69565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f5f57612f516133b5565b600a54600781905550612f68565b612f676133b5565b5b5b5b612f76868686846133d4565b505050505050565b6000838311158290612fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fbd91906139bf565b60405180910390fd5b5060008385612fd59190614c2d565b9050809150509392505050565b6000808284612ff19190614c61565b905083811015613036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302d90614ce1565b60405180910390fd5b8091505092915050565b6001601260146101000a81548160ff021916908315150217905550600061306630610f8b565b90506130718161362c565b60004790506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516130be90614732565b60006040518083038185875af1925050503d80600081146130fb576040519150601f19603f3d011682016040523d82523d6000602084013e613100565b606091505b5050905080613144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313b90614d4d565b60405180910390fd5b5050506000601260146101000a81548160ff021916908315150217905550565b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61329a30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846127a9565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806132e6611af6565b426040518863ffffffff1660e01b815260040161330896959493929190614da8565b60606040518083038185885af1158015613326573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061334b9190614e09565b5050505050565b60008083118290613399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161339091906139bf565b60405180910390fd5b50600083856133a891906147b8565b9050809150509392505050565b600060075403156133d25760075460088190555060006007819055505b565b806133e2576133e16133b5565b5b6000806133ee8461386f565b9150915061344484600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138a990919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134d981600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe290919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061356e82600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe290919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161360e9190613bb5565b60405180910390a382613624576136236138f3565b5b505050505050565b6000600267ffffffffffffffff81111561364957613648613d62565b5b6040519080825280602002602001820160405280156136775781602001602082028036833780820191505090505b509050308160008151811061368f5761368e6143ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061375a9190614469565b8160018151811061376e5761376d6143ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506137d530601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846127a9565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613839959493929190614f1a565b600060405180830381600087803b15801561385357600080fd5b505af1158015613867573d6000803e3d6000fd5b505050505050565b600080600061387d846138fe565b9050600061389482866138a990919063ffffffff16565b90506000829050818194509450505050915091565b60006138eb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f7e565b905092915050565b600854600781905550565b6000613928606461391a600754856126dd90919063ffffffff16565b61275790919063ffffffff16565b9050919050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561396957808201518184015260208101905061394e565b60008484015250505050565b6000601f19601f8301169050919050565b60006139918261392f565b61399b818561393a565b93506139ab81856020860161394b565b6139b481613975565b840191505092915050565b600060208201905081810360008301526139d98184613986565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a20826139f5565b9050919050565b613a3081613a15565b8114613a3b57600080fd5b50565b600081359050613a4d81613a27565b92915050565b6000819050919050565b613a6681613a53565b8114613a7157600080fd5b50565b600081359050613a8381613a5d565b92915050565b60008060408385031215613aa057613a9f6139eb565b5b6000613aae85828601613a3e565b9250506020613abf85828601613a74565b9150509250929050565b60008115159050919050565b613ade81613ac9565b82525050565b6000602082019050613af96000830184613ad5565b92915050565b600060208284031215613b1557613b146139eb565b5b6000613b2384828501613a74565b91505092915050565b6000819050919050565b6000613b51613b4c613b47846139f5565b613b2c565b6139f5565b9050919050565b6000613b6382613b36565b9050919050565b6000613b7582613b58565b9050919050565b613b8581613b6a565b82525050565b6000602082019050613ba06000830184613b7c565b92915050565b613baf81613a53565b82525050565b6000602082019050613bca6000830184613ba6565b92915050565b600080600060608486031215613be957613be86139eb565b5b6000613bf786828701613a3e565b9350506020613c0886828701613a3e565b9250506040613c1986828701613a74565b9150509250925092565b600060ff82169050919050565b613c3981613c23565b82525050565b6000602082019050613c546000830184613c30565b92915050565b600060208284031215613c7057613c6f6139eb565b5b6000613c7e84828501613a3e565b91505092915050565b613c9081613a15565b82525050565b6000602082019050613cab6000830184613c87565b92915050565b613cba81613ac9565b8114613cc557600080fd5b50565b600081359050613cd781613cb1565b92915050565b60008060408385031215613cf457613cf36139eb565b5b6000613d0285828601613a3e565b9250506020613d1385828601613cc8565b9150509250929050565b60008060408385031215613d3457613d336139eb565b5b6000613d4285828601613a3e565b9250506020613d5385828601613a3e565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d9a82613975565b810181811067ffffffffffffffff82111715613db957613db8613d62565b5b80604052505050565b6000613dcc6139e1565b9050613dd88282613d91565b919050565b600067ffffffffffffffff821115613df857613df7613d62565b5b602082029050602081019050919050565b600080fd5b6000613e21613e1c84613ddd565b613dc2565b90508083825260208201905060208402830185811115613e4457613e43613e09565b5b835b81811015613e6d5780613e598882613a3e565b845260208401935050602081019050613e46565b5050509392505050565b600082601f830112613e8c57613e8b613d5d565b5b8135613e9c848260208601613e0e565b91505092915050565b600067ffffffffffffffff821115613ec057613ebf613d62565b5b602082029050602081019050919050565b6000613ee4613edf84613ea5565b613dc2565b90508083825260208201905060208402830185811115613f0757613f06613e09565b5b835b81811015613f305780613f1c8882613a74565b845260208401935050602081019050613f09565b5050509392505050565b600082601f830112613f4f57613f4e613d5d565b5b8135613f5f848260208601613ed1565b91505092915050565b60008060408385031215613f7f57613f7e6139eb565b5b600083013567ffffffffffffffff811115613f9d57613f9c6139f0565b5b613fa985828601613e77565b925050602083013567ffffffffffffffff811115613fca57613fc96139f0565b5b613fd685828601613f3a565b9150509250929050565b600060208284031215613ff657613ff56139eb565b5b600061400484828501613cc8565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061404360208361393a565b915061404e8261400d565b602082019050919050565b6000602082019050818103600083015261407281614036565b9050919050565b7f203e203130250000000000000000000000000000000000000000000000000000600082015250565b60006140af60068361393a565b91506140ba82614079565b602082019050919050565b600060208201905081810360008301526140de816140a2565b9050919050565b7f203c203130302c303030206f6620746f6b656e7320737475636b000000000000600082015250565b600061411b601a8361393a565b9150614126826140e5565b602082019050919050565b6000602082019050818103600083015261414a8161410e565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000600082015250565b6000614187601a8361393a565b915061419282614151565b602082019050919050565b600060208201905081810360008301526141b68161417a565b9050919050565b7f49434849474f206e6f7420616c6c6f7765640000000000000000000000000000600082015250565b60006141f360128361393a565b91506141fe826141bd565b602082019050919050565b60006020820190508181036000830152614222816141e6565b9050919050565b60008151905061423881613a5d565b92915050565b600060208284031215614254576142536139eb565b5b600061426284828501614229565b91505092915050565b60006040820190506142806000830185613c87565b61428d6020830184613ba6565b9392505050565b6000815190506142a381613cb1565b92915050565b6000602082840312156142bf576142be6139eb565b5b60006142cd84828501614294565b91505092915050565b7f74726164696e6720697320616c72656164792061637469766500000000000000600082015250565b600061430c60198361393a565b9150614317826142d6565b602082019050919050565b6000602082019050818103600083015261433b816142ff565b9050919050565b7f6d6178203130302077616c6c6574730000000000000000000000000000000000600082015250565b6000614378600f8361393a565b915061438382614342565b602082019050919050565b600060208201905081810360008301526143a78161436b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061441782613a53565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614449576144486143dd565b5b600182019050919050565b60008151905061446381613a27565b92915050565b60006020828403121561447f5761447e6139eb565b5b600061448d84828501614454565b91505092915050565b60006040820190506144ab6000830185613c87565b6144b86020830184613c87565b9392505050565b7f45544820726571756972656420666f72206c61756e6368000000000000000000600082015250565b60006144f560178361393a565b9150614500826144bf565b602082019050919050565b60006020820190508181036000830152614524816144e8565b9050919050565b7f203e203135250000000000000000000000000000000000000000000000000000600082015250565b600061456160068361393a565b915061456c8261452b565b602082019050919050565b6000602082019050818103600083015261459081614554565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f766564000000000000600082015250565b60006145cd601a8361393a565b91506145d882614597565b602082019050919050565b600060208201905081810360008301526145fc816145c0565b9050919050565b7f3020616464726573730000000000000000000000000000000000000000000000600082015250565b600061463960098361393a565b915061464482614603565b602082019050919050565b600060208201905081810360008301526146688161462c565b9050919050565b7f43616e206f6e6c792077697468647261772069662074726164696e672068617360008201527f6e27742073746172746564000000000000000000000000000000000000000000602082015250565b60006146cb602b8361393a565b91506146d68261466f565b604082019050919050565b600060208201905081810360008301526146fa816146be565b9050919050565b600081905092915050565b50565b600061471c600083614701565b91506147278261470c565b600082019050919050565b600061473d8261470f565b9150819050919050565b600061475282613a53565b915061475d83613a53565b925082820261476b81613a53565b91508282048414831517614782576147816143dd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147c382613a53565b91506147ce83613a53565b9250826147de576147dd614789565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061484560218361393a565b9150614850826147e9565b604082019050919050565b6000602082019050818103600083015261487481614838565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006148d760248361393a565b91506148e28261487b565b604082019050919050565b60006020820190508181036000830152614906816148ca565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061496960228361393a565b91506149748261490d565b604082019050919050565b600060208201905081810360008301526149988161495c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006149fb60258361393a565b9150614a068261499f565b604082019050919050565b60006020820190508181036000830152614a2a816149ee565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614a8d60238361393a565b9150614a9882614a31565b604082019050919050565b60006020820190508181036000830152614abc81614a80565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614b1f60298361393a565b9150614b2a82614ac3565b604082019050919050565b60006020820190508181036000830152614b4e81614b12565b9050919050565b7f54726164696e67206973206e6f7420616374697665207965742e000000000000600082015250565b6000614b8b601a8361393a565b9150614b9682614b55565b602082019050919050565b60006020820190508181036000830152614bba81614b7e565b9050919050565b7f4578636565646564206d617820686f6c64000000000000000000000000000000600082015250565b6000614bf760118361393a565b9150614c0282614bc1565b602082019050919050565b60006020820190508181036000830152614c2681614bea565b9050919050565b6000614c3882613a53565b9150614c4383613a53565b9250828203905081811115614c5b57614c5a6143dd565b5b92915050565b6000614c6c82613a53565b9150614c7783613a53565b9250828201905080821115614c8f57614c8e6143dd565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614ccb601b8361393a565b9150614cd682614c95565b602082019050919050565b60006020820190508181036000830152614cfa81614cbe565b9050919050565b7f4661696c656420746f2073656e64206574680000000000000000000000000000600082015250565b6000614d3760128361393a565b9150614d4282614d01565b602082019050919050565b60006020820190508181036000830152614d6681614d2a565b9050919050565b6000819050919050565b6000614d92614d8d614d8884614d6d565b613b2c565b613a53565b9050919050565b614da281614d77565b82525050565b600060c082019050614dbd6000830189613c87565b614dca6020830188613ba6565b614dd76040830187614d99565b614de46060830186614d99565b614df16080830185613c87565b614dfe60a0830184613ba6565b979650505050505050565b600080600060608486031215614e2257614e216139eb565b5b6000614e3086828701614229565b9350506020614e4186828701614229565b9250506040614e5286828701614229565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614e9181613a15565b82525050565b6000614ea38383614e88565b60208301905092915050565b6000602082019050919050565b6000614ec782614e5c565b614ed18185614e67565b9350614edc83614e78565b8060005b83811015614f0d578151614ef48882614e97565b9750614eff83614eaf565b925050600181019050614ee0565b5085935050505092915050565b600060a082019050614f2f6000830188613ba6565b614f3c6020830187614d99565b8181036040830152614f4e8186614ebc565b9050614f5d6060830185613c87565b614f6a6080830184613ba6565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208454d8ecb1fa70942fde4b574e840b31c4e96e4e2f309f25a01b72a457039fba64736f6c63430008120033

Deployed Bytecode Sourcemap

7677:15153:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10209:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11126:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20939:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8795:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10492:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8423:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11327:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10399:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11783:302;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20698:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8843:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8908:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18146:216;;;;;;;;;;;;;:::i;:::-;;20560:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10597:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14793:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12653:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22096:478;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13043:1362;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12848:183;;;;;;;;;;;;;:::i;:::-;;21114:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6508:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10302:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14905:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12507:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14417:122;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12093:402;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10723:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8680:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8956:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21822:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8471:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8506:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21295:519;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14683:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10932:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14547:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20819:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8540:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8386:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8604:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22586:241;;;;;;;;;;;;;:::i;:::-;;10209:85;10248:13;10281:5;;;;;;;;;;;;;;;;;10274:12;;10209:85;:::o;11126:193::-;11228:4;11250:39;11259:12;:10;:12::i;:::-;11273:7;11282:6;11250:8;:39::i;:::-;11307:4;11300:11;;11126:193;;;;:::o;20939:167::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21043:9:::1;21030:10;:22;;;;21085:2;21071:10;;:16;;21063:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;20939:167:::0;:::o;8795:41::-;;;;;;;;;;;;;:::o;10492:97::-;10547:7;8130:17;10567:14;;10492:97;:::o;8423:31::-;;;;:::o;11327:448::-;11461:4;11478:36;11488:6;11496:9;11507:6;11478:9;:36::i;:::-;11525:220;11548:6;11569:12;:10;:12::i;:::-;11596:138;11652:6;11596:138;;;;;;;;;;;;;;;;;:11;:19;11608:6;11596:19;;;;;;;;;;;;;;;:33;11616:12;:10;:12::i;:::-;11596:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;11525:8;:220::i;:::-;11763:4;11756:11;;11327:448;;;;;:::o;10399:85::-;10442:5;8290:1;10460:16;;10399:85;:::o;11783:302::-;11900:4;11922:133;11945:12;:10;:12::i;:::-;11972:7;11994:50;12033:10;11994:11;:25;12006:12;:10;:12::i;:::-;11994:25;;;;;;;;;;;;;;;:34;12020:7;11994:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11922:8;:133::i;:::-;12073:4;12066:11;;11783:302;;;;:::o;20698:113::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20799:4:::1;20769:18;:27;20788:7;20769:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20698:113:::0;:::o;8843:28::-;;;;;;;;;;;;;:::o;8908:41::-;;;;;;;;;;;;;:::o;18146:216::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18201:23:::1;18227:24;18245:4;18227:9;:24::i;:::-;18201:50;;18289:13;18270:15;:32;;18262:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18344:10;:8;:10::i;:::-;18190:172;18146:216::o:0;20560:126::-;20627:4;20651:18;:27;20670:7;20651:27;;;;;;;;;;;;;;;;;;;;;;;;;20644:34;;20560:126;;;:::o;10597:118::-;10663:7;10690:8;:17;10699:7;10690:17;;;;;;;;;;;;;;;;10683:24;;10597:118;;;:::o;14793:100::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14879:6:::1;14864:12;:21;;;;14793:100:::0;:::o;12653:137::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12776:6:::1;12740:24;:33;12765:7;12740:33;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12653:137:::0;;:::o;22096:478::-;22210:10;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22264:1:::1;22246:20;;:6;:20;;::::0;22238:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22334:4;22316:23;;:6;:23;;::::0;22308:54:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22373:24;22407:6;22400:24;;;22433:4;22400:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22373:66;;22465:6;22458:23;;;22482:3;22487:16;22458:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22450:54;;22520:46;22541:6;22549:16;22520:46;;;;;;;:::i;:::-;;;;;;;;22227:347;22096:478:::0;;;;:::o;13043:1362::-;13146:4;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13171:13:::1;;;;;;;;;;;13170:14;13162:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;13257:3;13233:14;:21;:27;13225:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13295:9;13291:205;13314:14;:21;13310:1;:25;13291:205;;;13356:14;13373;13388:1;13373:17;;;;;;;;:::i;:::-;;;;;;;;13356:34;;13405:14;13422:7;13430:1;13422:10;;;;;;;;:::i;:::-;;;;;;;;13405:27;;13447:37;13457:10;13469:6;13477;13447:9;:37::i;:::-;13341:155;;13337:3;;;;;:::i;:::-;;;;13291:205;;;;13506:15;:13;:15::i;:::-;13532:35;13589:42;13532:100;;13643:53;13672:16;13691:4;13643:20;:53::i;:::-;13707:52;13735:16;13754:4;13707:19;:52::i;:::-;13790:16;13772:15;;:34;;;;;;;;;;;;;;;;;;13817:58;13834:4;13849:15;;;;;;;;;;;8130:17;13817:8;:58::i;:::-;13922:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13904:56;;;13969:4;13976:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13904:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13888:13;;:112;;;;;;;;;;;;;;;;;;14011:50;14040:13;;;;;;;;;;;14056:4;14011:20;:50::i;:::-;14072:49;14100:13;;;;;;;;;;;14116:4;14072:19;:49::i;:::-;14134:58;14171:13;;;;;;;;;;;14187:4;14134:28;:58::i;:::-;14235:1;14211:21;:25;14203:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;14275;14288:24;14306:4;14288:9;:24::i;:::-;14314:21;14275:12;:61::i;:::-;14371:4;14347:21;;:28;;;;;;;;;;;;;;;;;;14393:4;14386:11;;;13043:1362:::0;;;;:::o;12848:183::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12910:13:::1;;;;;;;;;;;12909:14;12901:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12980:4;12964:13;;:20;;;;;;;;;;;;;;;;;;13019:4;12995:21;;:28;;;;;;;;;;;;;;;;;;12848:183::o:0;21114:173::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21221:10:::1;21207:11;:24;;;;21266:2;21250:11;;:18;;21242:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;21114:173:::0;:::o;6508:79::-;6546:7;6573:6;;;;;;;;;;;6566:13;;6508:79;:::o;10302:89::-;10343:13;10376:7;;;;;;;;;;;;;;;;;10369:14;;10302:89;:::o;14905:213::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15012:13:::1;;;;;;;;;;;15004:21;;:4;:21;;::::0;14996:60:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15069:41;15098:4;15104:5;15069:28;:41::i;:::-;14905:213:::0;;:::o;12507:138::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12631:6:::1;12595:24;:33;12620:7;12595:33;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12507:138:::0;;:::o;14417:122::-;14481:7;14508:23;;14501:30;;14417:122;:::o;12093:402::-;12215:4;12237:228;12260:12;:10;:12::i;:::-;12287:7;12309:145;12366:15;12309:145;;;;;;;;;;;;;;;;;:11;:25;12321:12;:10;:12::i;:::-;12309:25;;;;;;;;;;;;;;;:34;12335:7;12309:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;12237:8;:228::i;:::-;12483:4;12476:11;;12093:402;;;;:::o;10723:201::-;10830:4;10852:42;10862:12;:10;:12::i;:::-;10876:9;10887:6;10852:9;:42::i;:::-;10912:4;10905:11;;10723:201;;;;:::o;8680:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;8956:33::-;;;;;;;;;;;;;:::o;21822:171::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21923:8:::1;21899:21;;:32;;;;;;;;;;;;;;;;;;21947:38;21976:8;21947:38;;;;;;:::i;:::-;;;;;;;;21822:171:::0;:::o;8471:28::-;;;;:::o;8506:27::-;;;;:::o;21295:519::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21419:1:::1;21392:29;;:15;:29;;::::0;21384:51:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21483:5;21446:18;:34;21465:14;;;;;;;;;;;21446:34;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;21499:43;21520:14;;;;;;;;;;;21536:5;21499:20;:43::i;:::-;21553:42;21573:14;;;;;;;;;;;21589:5;21553:19;:42::i;:::-;21633:15;21608:14;;:41;;;;;;;;;;;;;;;;;;21697:4;21660:18;:34;21679:14;;;;;;;;;;;21660:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;21712:42;21733:14;;;;;;;;;;;21749:4;21712:20;:42::i;:::-;21765:41;21785:14;;;;;;;;;;;21801:4;21765:19;:41::i;:::-;21295:519:::0;:::o;14683:102::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14771:6:::1;14755:13;:22;;;;14683:102:::0;:::o;10932:186::-;11051:7;11083:11;:18;11095:5;11083:18;;;;;;;;;;;;;;;:27;11102:7;11083:27;;;;;;;;;;;;;;;;11076:34;;10932:186;;;;:::o;14547:128::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14661:6:::1;14635:23;:32;;;;14547:128:::0;:::o;20819:112::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20918:5:::1;20888:18;:27;20907:7;20888:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;20819:112:::0;:::o;8540:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;8386:30::-;;;;:::o;8604:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;22586:241::-;6645:12;:10;:12::i;:::-;6635:22;;:6;;;;;;;;;;:22;;;6627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22653:13:::1;;;;;;;;;;;22652:14;22644:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22725:12;22769:10;22761:24;;22793:21;22761:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22748:71;;;;;22633:194;22586:241::o:0;1907:250::-;1965:7;1994:1;1989;:6;1985:47;;2019:1;2012:8;;;;1985:47;2044:9;2060:1;2056;:5;;;;:::i;:::-;2044:17;;2089:1;2084;2080;:5;;;;:::i;:::-;:10;2072:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2148:1;2141:8;;;1907:250;;;;;:::o;2165:132::-;2223:7;2250:39;2254:1;2257;2250:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2243:46;;2165:132;;;;:::o;151:115::-;204:15;247:10;232:26;;151:115;:::o;15366:371::-;15510:1;15493:19;;:5;:19;;;15485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15591:1;15572:21;;:7;:21;;;15564:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15675:6;15645:11;:18;15657:5;15645:18;;;;;;;;;;;;;;;:27;15664:7;15645:27;;;;;;;;;;;;;;;:36;;;;15713:7;15697:32;;15706:5;15697:32;;;15722:6;15697:32;;;;;;:::i;:::-;;;;;;;;15366:371;;;:::o;15745:2008::-;15883:1;15867:18;;:4;:18;;;15859:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15960:1;15946:16;;:2;:16;;;15938:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16030:1;16021:6;:10;16013:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16102:13;;;;;;;;;;;16098:134;;16139:18;:24;16158:4;16139:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;16167:18;:22;16186:2;16167:22;;;;;;;;;;;;;;;;;;;;;;;;;16139:50;16131:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;16098:134;16249:24;:28;16274:2;16249:28;;;;;;;;;;;;;;;;;;;;;;;;;16244:178;;16294:17;16314:13;16324:2;16314:9;:13::i;:::-;16294:33;;16375:13;;16350:21;16364:6;16350:9;:13;;:21;;;;:::i;:::-;:38;;16342:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16279:143;16244:178;16439:24;:30;16464:4;16439:30;;;;;;;;;;;;;;;;;;;;;;;;;16434:95;;16504:12;;16494:6;:22;;16486:31;;;;;;16434:95;16549:28;16580:24;16598:4;16580:9;:24::i;:::-;16549:55;;16615:28;16670:23;;16646:20;:47;;16615:78;;16754:16;;;;;;;;;;;16753:17;:55;;;;;16787:21;;;;;;;;;;;16753:55;:100;;;;;16852:1;16825:24;16835:13;;;;;;;;;;;16825:9;:24::i;:::-;:28;16753:100;:140;;;;;16871:18;:22;16890:2;16871:22;;;;;;;;;;;;;;;;;;;;;;;;;16870:23;16753:140;:182;;;;;16911:18;:24;16930:4;16911:24;;;;;;;;;;;;;;;;;;;;;;;;;16910:25;16753:182;:228;;;;;16952:25;:29;16978:2;16952:29;;;;;;;;;;;;;;;;;;;;;;;;;16753:228;:268;;;;;16998:23;16753:268;16735:335;;;17048:10;:8;:10::i;:::-;16735:335;17082:12;17097:4;17082:19;;17203:18;:24;17222:4;17203:24;;;;;;;;;;;;;;;;;;;;;;;;;17199:475;;;17254:5;17244:15;;17199:475;;;17316:25;:31;17342:4;17316:31;;;;;;;;;;;;;;;;;;;;;;;;;17312:351;;;17368:11;:9;:11::i;:::-;17408:10;;17398:7;:20;;;;17312:351;;;17479:25;:29;17505:2;17479:29;;;;;;;;;;;;;;;;;;;;;;;;;17475:188;;;17529:11;:9;:11::i;:::-;17569;;17559:7;:21;;;;17475:188;;;17636:11;:9;:11::i;:::-;17475:188;17312:351;17199:475;17694:41;17709:4;17715:2;17719:6;17727:7;17694:14;:41::i;:::-;15848:1905;;;15745:2008;;;:::o;1673:226::-;1793:7;1826:1;1821;:6;;1829:12;1813:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1853:9;1869:1;1865;:5;;;;:::i;:::-;1853:17;;1890:1;1883:8;;;1673:226;;;;;:::o;1340:181::-;1398:7;1418:9;1434:1;1430;:5;;;;:::i;:::-;1418:17;;1459:1;1454;:6;;1446:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1512:1;1505:8;;;1340:181;;;;:::o;17761:373::-;9190:4;9171:16;;:23;;;;;;;;;;;;;;;;;;17812::::1;17838:24;17856:4;17838:9;:24::i;:::-;17812:50;;17890:33;17907:15;17890:16;:33::i;:::-;17945:18;17966:21;17945:42;;18009:12;18034:14;;;;;;;;;;;18026:28;;18062:10;18026:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18008:69;;;18096:7;18088:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17801:333;;;9236:5:::0;9217:16;;:24;;;;;;;;;;;;;;;;;;17761:373::o;15126:228::-;15243:5;15209:25;:31;15235:4;15209:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15292:5;15259:24;:30;15284:4;15259:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;15341:5;15308:24;:30;15333:4;15308:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;15126:228;;:::o;18885:361::-;18966:62;18983:4;18998:15;;;;;;;;;;;19016:11;18966:8;:62::i;:::-;19039:15;;;;;;;;;;;:31;;;19078:9;19111:4;19131:11;19157:1;19174;19190:7;:5;:7::i;:::-;19212:15;19039:199;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18885:361;;:::o;2305:312::-;2425:7;2457:1;2453;:5;2460:12;2445:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2484:9;2500:1;2496;:5;;;;:::i;:::-;2484:17;;2608:1;2601:8;;;2305:312;;;;;:::o;20340:130::-;20395:1;20384:7;;:12;20380:25;20398:7;20380:25;20433:7;;20415:15;:25;;;;20461:1;20451:7;:11;;;;20340:130;:::o;19254:593::-;19410:7;19405:25;;19419:11;:9;:11::i;:::-;19405:25;19458:22;19495:12;19521:18;19532:6;19521:10;:18::i;:::-;19443:96;;;;19569:28;19590:6;19569:8;:16;19578:6;19569:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;19550:8;:16;19559:6;19550:16;;;;;;;;;;;;;;;:47;;;;19634:33;19662:4;19634:8;:23;19651:4;19634:23;;;;;;;;;;;;;;;;:27;;:33;;;;:::i;:::-;19608:8;:23;19625:4;19608:23;;;;;;;;;;;;;;;:59;;;;19700:39;19724:14;19700:8;:19;19709:9;19700:19;;;;;;;;;;;;;;;;:23;;:39;;;;:::i;:::-;19678:8;:19;19687:9;19678:19;;;;;;;;;;;;;;;:61;;;;19774:9;19757:43;;19766:6;19757:43;;;19785:14;19757:43;;;;;;:::i;:::-;;;;;;;;19818:7;19813:26;;19827:12;:10;:12::i;:::-;19813:26;19394:453;;19254:593;;;;:::o;18374:499::-;18440:21;18478:1;18464:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18440:40;;18509:4;18491;18496:1;18491:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18535:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18525:4;18530:1;18525:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;18568:62;18585:4;18600:15;;;;;;;;;;;18618:11;18568:8;:62::i;:::-;18641:15;;;;;;;;;;;:66;;;18722:11;18748:1;18792:4;18819;18839:15;18641:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18429:444;18374:499;:::o;19855:337::-;19955:7;19977;20012:12;20027:24;20043:7;20027:15;:24::i;:::-;20012:39;;20062:22;20087:17;20099:4;20087:7;:11;;:17;;;;:::i;:::-;20062:42;;20115:12;20130:4;20115:19;;20163:14;20179:4;20155:29;;;;;;;19855:337;;;:::o;1529:136::-;1587:7;1614:43;1618:1;1621;1614:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1607:50;;1529:136;;;;:::o;20478:74::-;20529:15;;20519:7;:25;;;;20478:74::o;20200:130::-;20264:7;20291:31;20316:5;20291:20;20303:7;;20291;:11;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;20284:38;;20200:130;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:152::-;4203:9;4236:37;4267:5;4236:37;:::i;:::-;4223:50;;4127:152;;;:::o;4285:183::-;4398:63;4455:5;4398:63;:::i;:::-;4393:3;4386:76;4285:183;;:::o;4474:274::-;4593:4;4631:2;4620:9;4616:18;4608:26;;4644:97;4738:1;4727:9;4723:17;4714:6;4644:97;:::i;:::-;4474:274;;;;:::o;4754:118::-;4841:24;4859:5;4841:24;:::i;:::-;4836:3;4829:37;4754:118;;:::o;4878:222::-;4971:4;5009:2;4998:9;4994:18;4986:26;;5022:71;5090:1;5079:9;5075:17;5066:6;5022:71;:::i;:::-;4878:222;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:86::-;5766:7;5806:4;5799:5;5795:16;5784:27;;5731:86;;;:::o;5823:112::-;5906:22;5922:5;5906:22;:::i;:::-;5901:3;5894:35;5823:112;;:::o;5941:214::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:67;6145:1;6134:9;6130:17;6121:6;6081:67;:::i;:::-;5941:214;;;;:::o;6161:329::-;6220:6;6269:2;6257:9;6248:7;6244:23;6240:32;6237:119;;;6275:79;;:::i;:::-;6237:119;6395:1;6420:53;6465:7;6456:6;6445:9;6441:22;6420:53;:::i;:::-;6410:63;;6366:117;6161:329;;;;:::o;6496:118::-;6583:24;6601:5;6583:24;:::i;:::-;6578:3;6571:37;6496:118;;:::o;6620:222::-;6713:4;6751:2;6740:9;6736:18;6728:26;;6764:71;6832:1;6821:9;6817:17;6808:6;6764:71;:::i;:::-;6620:222;;;;:::o;6848:116::-;6918:21;6933:5;6918:21;:::i;:::-;6911:5;6908:32;6898:60;;6954:1;6951;6944:12;6898:60;6848:116;:::o;6970:133::-;7013:5;7051:6;7038:20;7029:29;;7067:30;7091:5;7067:30;:::i;:::-;6970:133;;;;:::o;7109:468::-;7174:6;7182;7231:2;7219:9;7210:7;7206:23;7202:32;7199:119;;;7237:79;;:::i;:::-;7199:119;7357:1;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7328:117;7484:2;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7455:115;7109:468;;;;;:::o;7583:474::-;7651:6;7659;7708:2;7696:9;7687:7;7683:23;7679:32;7676:119;;;7714:79;;:::i;:::-;7676:119;7834:1;7859:53;7904:7;7895:6;7884:9;7880:22;7859:53;:::i;:::-;7849:63;;7805:117;7961:2;7987:53;8032:7;8023:6;8012:9;8008:22;7987:53;:::i;:::-;7977:63;;7932:118;7583:474;;;;;:::o;8063:117::-;8172:1;8169;8162:12;8186:180;8234:77;8231:1;8224:88;8331:4;8328:1;8321:15;8355:4;8352:1;8345:15;8372:281;8455:27;8477:4;8455:27;:::i;:::-;8447:6;8443:40;8585:6;8573:10;8570:22;8549:18;8537:10;8534:34;8531:62;8528:88;;;8596:18;;:::i;:::-;8528:88;8636:10;8632:2;8625:22;8415:238;8372:281;;:::o;8659:129::-;8693:6;8720:20;;:::i;:::-;8710:30;;8749:33;8777:4;8769:6;8749:33;:::i;:::-;8659:129;;;:::o;8794:311::-;8871:4;8961:18;8953:6;8950:30;8947:56;;;8983:18;;:::i;:::-;8947:56;9033:4;9025:6;9021:17;9013:25;;9093:4;9087;9083:15;9075:23;;8794:311;;;:::o;9111:117::-;9220:1;9217;9210:12;9251:710;9347:5;9372:81;9388:64;9445:6;9388:64;:::i;:::-;9372:81;:::i;:::-;9363:90;;9473:5;9502:6;9495:5;9488:21;9536:4;9529:5;9525:16;9518:23;;9589:4;9581:6;9577:17;9569:6;9565:30;9618:3;9610:6;9607:15;9604:122;;;9637:79;;:::i;:::-;9604:122;9752:6;9735:220;9769:6;9764:3;9761:15;9735:220;;;9844:3;9873:37;9906:3;9894:10;9873:37;:::i;:::-;9868:3;9861:50;9940:4;9935:3;9931:14;9924:21;;9811:144;9795:4;9790:3;9786:14;9779:21;;9735:220;;;9739:21;9353:608;;9251:710;;;;;:::o;9984:370::-;10055:5;10104:3;10097:4;10089:6;10085:17;10081:27;10071:122;;10112:79;;:::i;:::-;10071:122;10229:6;10216:20;10254:94;10344:3;10336:6;10329:4;10321:6;10317:17;10254:94;:::i;:::-;10245:103;;10061:293;9984:370;;;;:::o;10360:311::-;10437:4;10527:18;10519:6;10516:30;10513:56;;;10549:18;;:::i;:::-;10513:56;10599:4;10591:6;10587:17;10579:25;;10659:4;10653;10649:15;10641:23;;10360:311;;;:::o;10694:710::-;10790:5;10815:81;10831:64;10888:6;10831:64;:::i;:::-;10815:81;:::i;:::-;10806:90;;10916:5;10945:6;10938:5;10931:21;10979:4;10972:5;10968:16;10961:23;;11032:4;11024:6;11020:17;11012:6;11008:30;11061:3;11053:6;11050:15;11047:122;;;11080:79;;:::i;:::-;11047:122;11195:6;11178:220;11212:6;11207:3;11204:15;11178:220;;;11287:3;11316:37;11349:3;11337:10;11316:37;:::i;:::-;11311:3;11304:50;11383:4;11378:3;11374:14;11367:21;;11254:144;11238:4;11233:3;11229:14;11222:21;;11178:220;;;11182:21;10796:608;;10694:710;;;;;:::o;11427:370::-;11498:5;11547:3;11540:4;11532:6;11528:17;11524:27;11514:122;;11555:79;;:::i;:::-;11514:122;11672:6;11659:20;11697:94;11787:3;11779:6;11772:4;11764:6;11760:17;11697:94;:::i;:::-;11688:103;;11504:293;11427:370;;;;:::o;11803:894::-;11921:6;11929;11978:2;11966:9;11957:7;11953:23;11949:32;11946:119;;;11984:79;;:::i;:::-;11946:119;12132:1;12121:9;12117:17;12104:31;12162:18;12154:6;12151:30;12148:117;;;12184:79;;:::i;:::-;12148:117;12289:78;12359:7;12350:6;12339:9;12335:22;12289:78;:::i;:::-;12279:88;;12075:302;12444:2;12433:9;12429:18;12416:32;12475:18;12467:6;12464:30;12461:117;;;12497:79;;:::i;:::-;12461:117;12602:78;12672:7;12663:6;12652:9;12648:22;12602:78;:::i;:::-;12592:88;;12387:303;11803:894;;;;;:::o;12703:323::-;12759:6;12808:2;12796:9;12787:7;12783:23;12779:32;12776:119;;;12814:79;;:::i;:::-;12776:119;12934:1;12959:50;13001:7;12992:6;12981:9;12977:22;12959:50;:::i;:::-;12949:60;;12905:114;12703:323;;;;:::o;13032:182::-;13172:34;13168:1;13160:6;13156:14;13149:58;13032:182;:::o;13220:366::-;13362:3;13383:67;13447:2;13442:3;13383:67;:::i;:::-;13376:74;;13459:93;13548:3;13459:93;:::i;:::-;13577:2;13572:3;13568:12;13561:19;;13220:366;;;:::o;13592:419::-;13758:4;13796:2;13785:9;13781:18;13773:26;;13845:9;13839:4;13835:20;13831:1;13820:9;13816:17;13809:47;13873:131;13999:4;13873:131;:::i;:::-;13865:139;;13592:419;;;:::o;14017:156::-;14157:8;14153:1;14145:6;14141:14;14134:32;14017:156;:::o;14179:365::-;14321:3;14342:66;14406:1;14401:3;14342:66;:::i;:::-;14335:73;;14417:93;14506:3;14417:93;:::i;:::-;14535:2;14530:3;14526:12;14519:19;;14179:365;;;:::o;14550:419::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14803:9;14797:4;14793:20;14789:1;14778:9;14774:17;14767:47;14831:131;14957:4;14831:131;:::i;:::-;14823:139;;14550:419;;;:::o;14975:176::-;15115:28;15111:1;15103:6;15099:14;15092:52;14975:176;:::o;15157:366::-;15299:3;15320:67;15384:2;15379:3;15320:67;:::i;:::-;15313:74;;15396:93;15485:3;15396:93;:::i;:::-;15514:2;15509:3;15505:12;15498:19;;15157:366;;;:::o;15529:419::-;15695:4;15733:2;15722:9;15718:18;15710:26;;15782:9;15776:4;15772:20;15768:1;15757:9;15753:17;15746:47;15810:131;15936:4;15810:131;:::i;:::-;15802:139;;15529:419;;;:::o;15954:176::-;16094:28;16090:1;16082:6;16078:14;16071:52;15954:176;:::o;16136:366::-;16278:3;16299:67;16363:2;16358:3;16299:67;:::i;:::-;16292:74;;16375:93;16464:3;16375:93;:::i;:::-;16493:2;16488:3;16484:12;16477:19;;16136:366;;;:::o;16508:419::-;16674:4;16712:2;16701:9;16697:18;16689:26;;16761:9;16755:4;16751:20;16747:1;16736:9;16732:17;16725:47;16789:131;16915:4;16789:131;:::i;:::-;16781:139;;16508:419;;;:::o;16933:168::-;17073:20;17069:1;17061:6;17057:14;17050:44;16933:168;:::o;17107:366::-;17249:3;17270:67;17334:2;17329:3;17270:67;:::i;:::-;17263:74;;17346:93;17435:3;17346:93;:::i;:::-;17464:2;17459:3;17455:12;17448:19;;17107:366;;;:::o;17479:419::-;17645:4;17683:2;17672:9;17668:18;17660:26;;17732:9;17726:4;17722:20;17718:1;17707:9;17703:17;17696:47;17760:131;17886:4;17760:131;:::i;:::-;17752:139;;17479:419;;;:::o;17904:143::-;17961:5;17992:6;17986:13;17977:22;;18008:33;18035:5;18008:33;:::i;:::-;17904:143;;;;:::o;18053:351::-;18123:6;18172:2;18160:9;18151:7;18147:23;18143:32;18140:119;;;18178:79;;:::i;:::-;18140:119;18298:1;18323:64;18379:7;18370:6;18359:9;18355:22;18323:64;:::i;:::-;18313:74;;18269:128;18053:351;;;;:::o;18410:332::-;18531:4;18569:2;18558:9;18554:18;18546:26;;18582:71;18650:1;18639:9;18635:17;18626:6;18582:71;:::i;:::-;18663:72;18731:2;18720:9;18716:18;18707:6;18663:72;:::i;:::-;18410:332;;;;;:::o;18748:137::-;18802:5;18833:6;18827:13;18818:22;;18849:30;18873:5;18849:30;:::i;:::-;18748:137;;;;:::o;18891:345::-;18958:6;19007:2;18995:9;18986:7;18982:23;18978:32;18975:119;;;19013:79;;:::i;:::-;18975:119;19133:1;19158:61;19211:7;19202:6;19191:9;19187:22;19158:61;:::i;:::-;19148:71;;19104:125;18891:345;;;;:::o;19242:175::-;19382:27;19378:1;19370:6;19366:14;19359:51;19242:175;:::o;19423:366::-;19565:3;19586:67;19650:2;19645:3;19586:67;:::i;:::-;19579:74;;19662:93;19751:3;19662:93;:::i;:::-;19780:2;19775:3;19771:12;19764:19;;19423:366;;;:::o;19795:419::-;19961:4;19999:2;19988:9;19984:18;19976:26;;20048:9;20042:4;20038:20;20034:1;20023:9;20019:17;20012:47;20076:131;20202:4;20076:131;:::i;:::-;20068:139;;19795:419;;;:::o;20220:165::-;20360:17;20356:1;20348:6;20344:14;20337:41;20220:165;:::o;20391:366::-;20533:3;20554:67;20618:2;20613:3;20554:67;:::i;:::-;20547:74;;20630:93;20719:3;20630:93;:::i;:::-;20748:2;20743:3;20739:12;20732:19;;20391:366;;;:::o;20763:419::-;20929:4;20967:2;20956:9;20952:18;20944:26;;21016:9;21010:4;21006:20;21002:1;20991:9;20987:17;20980:47;21044:131;21170:4;21044:131;:::i;:::-;21036:139;;20763:419;;;:::o;21188:180::-;21236:77;21233:1;21226:88;21333:4;21330:1;21323:15;21357:4;21354:1;21347:15;21374:180;21422:77;21419:1;21412:88;21519:4;21516:1;21509:15;21543:4;21540:1;21533:15;21560:233;21599:3;21622:24;21640:5;21622:24;:::i;:::-;21613:33;;21668:66;21661:5;21658:77;21655:103;;21738:18;;:::i;:::-;21655:103;21785:1;21778:5;21774:13;21767:20;;21560:233;;;:::o;21799:143::-;21856:5;21887:6;21881:13;21872:22;;21903:33;21930:5;21903:33;:::i;:::-;21799:143;;;;:::o;21948:351::-;22018:6;22067:2;22055:9;22046:7;22042:23;22038:32;22035:119;;;22073:79;;:::i;:::-;22035:119;22193:1;22218:64;22274:7;22265:6;22254:9;22250:22;22218:64;:::i;:::-;22208:74;;22164:128;21948:351;;;;:::o;22305:332::-;22426:4;22464:2;22453:9;22449:18;22441:26;;22477:71;22545:1;22534:9;22530:17;22521:6;22477:71;:::i;:::-;22558:72;22626:2;22615:9;22611:18;22602:6;22558:72;:::i;:::-;22305:332;;;;;:::o;22643:173::-;22783:25;22779:1;22771:6;22767:14;22760:49;22643:173;:::o;22822:366::-;22964:3;22985:67;23049:2;23044:3;22985:67;:::i;:::-;22978:74;;23061:93;23150:3;23061:93;:::i;:::-;23179:2;23174:3;23170:12;23163:19;;22822:366;;;:::o;23194:419::-;23360:4;23398:2;23387:9;23383:18;23375:26;;23447:9;23441:4;23437:20;23433:1;23422:9;23418:17;23411:47;23475:131;23601:4;23475:131;:::i;:::-;23467:139;;23194:419;;;:::o;23619:156::-;23759:8;23755:1;23747:6;23743:14;23736:32;23619:156;:::o;23781:365::-;23923:3;23944:66;24008:1;24003:3;23944:66;:::i;:::-;23937:73;;24019:93;24108:3;24019:93;:::i;:::-;24137:2;24132:3;24128:12;24121:19;;23781:365;;;:::o;24152:419::-;24318:4;24356:2;24345:9;24341:18;24333:26;;24405:9;24399:4;24395:20;24391:1;24380:9;24376:17;24369:47;24433:131;24559:4;24433:131;:::i;:::-;24425:139;;24152:419;;;:::o;24577:176::-;24717:28;24713:1;24705:6;24701:14;24694:52;24577:176;:::o;24759:366::-;24901:3;24922:67;24986:2;24981:3;24922:67;:::i;:::-;24915:74;;24998:93;25087:3;24998:93;:::i;:::-;25116:2;25111:3;25107:12;25100:19;;24759:366;;;:::o;25131:419::-;25297:4;25335:2;25324:9;25320:18;25312:26;;25384:9;25378:4;25374:20;25370:1;25359:9;25355:17;25348:47;25412:131;25538:4;25412:131;:::i;:::-;25404:139;;25131:419;;;:::o;25556:159::-;25696:11;25692:1;25684:6;25680:14;25673:35;25556:159;:::o;25721:365::-;25863:3;25884:66;25948:1;25943:3;25884:66;:::i;:::-;25877:73;;25959:93;26048:3;25959:93;:::i;:::-;26077:2;26072:3;26068:12;26061:19;;25721:365;;;:::o;26092:419::-;26258:4;26296:2;26285:9;26281:18;26273:26;;26345:9;26339:4;26335:20;26331:1;26320:9;26316:17;26309:47;26373:131;26499:4;26373:131;:::i;:::-;26365:139;;26092:419;;;:::o;26517:230::-;26657:34;26653:1;26645:6;26641:14;26634:58;26726:13;26721:2;26713:6;26709:15;26702:38;26517:230;:::o;26753:366::-;26895:3;26916:67;26980:2;26975:3;26916:67;:::i;:::-;26909:74;;26992:93;27081:3;26992:93;:::i;:::-;27110:2;27105:3;27101:12;27094:19;;26753:366;;;:::o;27125:419::-;27291:4;27329:2;27318:9;27314:18;27306:26;;27378:9;27372:4;27368:20;27364:1;27353:9;27349:17;27342:47;27406:131;27532:4;27406:131;:::i;:::-;27398:139;;27125:419;;;:::o;27550:147::-;27651:11;27688:3;27673:18;;27550:147;;;;:::o;27703:114::-;;:::o;27823:398::-;27982:3;28003:83;28084:1;28079:3;28003:83;:::i;:::-;27996:90;;28095:93;28184:3;28095:93;:::i;:::-;28213:1;28208:3;28204:11;28197:18;;27823:398;;;:::o;28227:379::-;28411:3;28433:147;28576:3;28433:147;:::i;:::-;28426:154;;28597:3;28590:10;;28227:379;;;:::o;28612:410::-;28652:7;28675:20;28693:1;28675:20;:::i;:::-;28670:25;;28709:20;28727:1;28709:20;:::i;:::-;28704:25;;28764:1;28761;28757:9;28786:30;28804:11;28786:30;:::i;:::-;28775:41;;28965:1;28956:7;28952:15;28949:1;28946:22;28926:1;28919:9;28899:83;28876:139;;28995:18;;:::i;:::-;28876:139;28660:362;28612:410;;;;:::o;29028:180::-;29076:77;29073:1;29066:88;29173:4;29170:1;29163:15;29197:4;29194:1;29187:15;29214:185;29254:1;29271:20;29289:1;29271:20;:::i;:::-;29266:25;;29305:20;29323:1;29305:20;:::i;:::-;29300:25;;29344:1;29334:35;;29349:18;;:::i;:::-;29334:35;29391:1;29388;29384:9;29379:14;;29214:185;;;;:::o;29405:220::-;29545:34;29541:1;29533:6;29529:14;29522:58;29614:3;29609:2;29601:6;29597:15;29590:28;29405:220;:::o;29631:366::-;29773:3;29794:67;29858:2;29853:3;29794:67;:::i;:::-;29787:74;;29870:93;29959:3;29870:93;:::i;:::-;29988:2;29983:3;29979:12;29972:19;;29631:366;;;:::o;30003:419::-;30169:4;30207:2;30196:9;30192:18;30184:26;;30256:9;30250:4;30246:20;30242:1;30231:9;30227:17;30220:47;30284:131;30410:4;30284:131;:::i;:::-;30276:139;;30003:419;;;:::o;30428:223::-;30568:34;30564:1;30556:6;30552:14;30545:58;30637:6;30632:2;30624:6;30620:15;30613:31;30428:223;:::o;30657:366::-;30799:3;30820:67;30884:2;30879:3;30820:67;:::i;:::-;30813:74;;30896:93;30985:3;30896:93;:::i;:::-;31014:2;31009:3;31005:12;30998:19;;30657:366;;;:::o;31029:419::-;31195:4;31233:2;31222:9;31218:18;31210:26;;31282:9;31276:4;31272:20;31268:1;31257:9;31253:17;31246:47;31310:131;31436:4;31310:131;:::i;:::-;31302:139;;31029:419;;;:::o;31454:221::-;31594:34;31590:1;31582:6;31578:14;31571:58;31663:4;31658:2;31650:6;31646:15;31639:29;31454:221;:::o;31681:366::-;31823:3;31844:67;31908:2;31903:3;31844:67;:::i;:::-;31837:74;;31920:93;32009:3;31920:93;:::i;:::-;32038:2;32033:3;32029:12;32022:19;;31681:366;;;:::o;32053:419::-;32219:4;32257:2;32246:9;32242:18;32234:26;;32306:9;32300:4;32296:20;32292:1;32281:9;32277:17;32270:47;32334:131;32460:4;32334:131;:::i;:::-;32326:139;;32053:419;;;:::o;32478:224::-;32618:34;32614:1;32606:6;32602:14;32595:58;32687:7;32682:2;32674:6;32670:15;32663:32;32478:224;:::o;32708:366::-;32850:3;32871:67;32935:2;32930:3;32871:67;:::i;:::-;32864:74;;32947:93;33036:3;32947:93;:::i;:::-;33065:2;33060:3;33056:12;33049:19;;32708:366;;;:::o;33080:419::-;33246:4;33284:2;33273:9;33269:18;33261:26;;33333:9;33327:4;33323:20;33319:1;33308:9;33304:17;33297:47;33361:131;33487:4;33361:131;:::i;:::-;33353:139;;33080:419;;;:::o;33505:222::-;33645:34;33641:1;33633:6;33629:14;33622:58;33714:5;33709:2;33701:6;33697:15;33690:30;33505:222;:::o;33733:366::-;33875:3;33896:67;33960:2;33955:3;33896:67;:::i;:::-;33889:74;;33972:93;34061:3;33972:93;:::i;:::-;34090:2;34085:3;34081:12;34074:19;;33733:366;;;:::o;34105:419::-;34271:4;34309:2;34298:9;34294:18;34286:26;;34358:9;34352:4;34348:20;34344:1;34333:9;34329:17;34322:47;34386:131;34512:4;34386:131;:::i;:::-;34378:139;;34105:419;;;:::o;34530:228::-;34670:34;34666:1;34658:6;34654:14;34647:58;34739:11;34734:2;34726:6;34722:15;34715:36;34530:228;:::o;34764:366::-;34906:3;34927:67;34991:2;34986:3;34927:67;:::i;:::-;34920:74;;35003:93;35092:3;35003:93;:::i;:::-;35121:2;35116:3;35112:12;35105:19;;34764:366;;;:::o;35136:419::-;35302:4;35340:2;35329:9;35325:18;35317:26;;35389:9;35383:4;35379:20;35375:1;35364:9;35360:17;35353:47;35417:131;35543:4;35417:131;:::i;:::-;35409:139;;35136:419;;;:::o;35561:176::-;35701:28;35697:1;35689:6;35685:14;35678:52;35561:176;:::o;35743:366::-;35885:3;35906:67;35970:2;35965:3;35906:67;:::i;:::-;35899:74;;35982:93;36071:3;35982:93;:::i;:::-;36100:2;36095:3;36091:12;36084:19;;35743:366;;;:::o;36115:419::-;36281:4;36319:2;36308:9;36304:18;36296:26;;36368:9;36362:4;36358:20;36354:1;36343:9;36339:17;36332:47;36396:131;36522:4;36396:131;:::i;:::-;36388:139;;36115:419;;;:::o;36540:167::-;36680:19;36676:1;36668:6;36664:14;36657:43;36540:167;:::o;36713:366::-;36855:3;36876:67;36940:2;36935:3;36876:67;:::i;:::-;36869:74;;36952:93;37041:3;36952:93;:::i;:::-;37070:2;37065:3;37061:12;37054:19;;36713:366;;;:::o;37085:419::-;37251:4;37289:2;37278:9;37274:18;37266:26;;37338:9;37332:4;37328:20;37324:1;37313:9;37309:17;37302:47;37366:131;37492:4;37366:131;:::i;:::-;37358:139;;37085:419;;;:::o;37510:194::-;37550:4;37570:20;37588:1;37570:20;:::i;:::-;37565:25;;37604:20;37622:1;37604:20;:::i;:::-;37599:25;;37648:1;37645;37641:9;37633:17;;37672:1;37666:4;37663:11;37660:37;;;37677:18;;:::i;:::-;37660:37;37510:194;;;;:::o;37710:191::-;37750:3;37769:20;37787:1;37769:20;:::i;:::-;37764:25;;37803:20;37821:1;37803:20;:::i;:::-;37798:25;;37846:1;37843;37839:9;37832:16;;37867:3;37864:1;37861:10;37858:36;;;37874:18;;:::i;:::-;37858:36;37710:191;;;;:::o;37907:177::-;38047:29;38043:1;38035:6;38031:14;38024:53;37907:177;:::o;38090:366::-;38232:3;38253:67;38317:2;38312:3;38253:67;:::i;:::-;38246:74;;38329:93;38418:3;38329:93;:::i;:::-;38447:2;38442:3;38438:12;38431:19;;38090:366;;;:::o;38462:419::-;38628:4;38666:2;38655:9;38651:18;38643:26;;38715:9;38709:4;38705:20;38701:1;38690:9;38686:17;38679:47;38743:131;38869:4;38743:131;:::i;:::-;38735:139;;38462:419;;;:::o;38887:168::-;39027:20;39023:1;39015:6;39011:14;39004:44;38887:168;:::o;39061:366::-;39203:3;39224:67;39288:2;39283:3;39224:67;:::i;:::-;39217:74;;39300:93;39389:3;39300:93;:::i;:::-;39418:2;39413:3;39409:12;39402:19;;39061:366;;;:::o;39433:419::-;39599:4;39637:2;39626:9;39622:18;39614:26;;39686:9;39680:4;39676:20;39672:1;39661:9;39657:17;39650:47;39714:131;39840:4;39714:131;:::i;:::-;39706:139;;39433:419;;;:::o;39858:85::-;39903:7;39932:5;39921:16;;39858:85;;;:::o;39949:158::-;40007:9;40040:61;40058:42;40067:32;40093:5;40067:32;:::i;:::-;40058:42;:::i;:::-;40040:61;:::i;:::-;40027:74;;39949:158;;;:::o;40113:147::-;40208:45;40247:5;40208:45;:::i;:::-;40203:3;40196:58;40113:147;;:::o;40266:807::-;40515:4;40553:3;40542:9;40538:19;40530:27;;40567:71;40635:1;40624:9;40620:17;40611:6;40567:71;:::i;:::-;40648:72;40716:2;40705:9;40701:18;40692:6;40648:72;:::i;:::-;40730:80;40806:2;40795:9;40791:18;40782:6;40730:80;:::i;:::-;40820;40896:2;40885:9;40881:18;40872:6;40820:80;:::i;:::-;40910:73;40978:3;40967:9;40963:19;40954:6;40910:73;:::i;:::-;40993;41061:3;41050:9;41046:19;41037:6;40993:73;:::i;:::-;40266:807;;;;;;;;;:::o;41079:663::-;41167:6;41175;41183;41232:2;41220:9;41211:7;41207:23;41203:32;41200:119;;;41238:79;;:::i;:::-;41200:119;41358:1;41383:64;41439:7;41430:6;41419:9;41415:22;41383:64;:::i;:::-;41373:74;;41329:128;41496:2;41522:64;41578:7;41569:6;41558:9;41554:22;41522:64;:::i;:::-;41512:74;;41467:129;41635:2;41661:64;41717:7;41708:6;41697:9;41693:22;41661:64;:::i;:::-;41651:74;;41606:129;41079:663;;;;;:::o;41748:114::-;41815:6;41849:5;41843:12;41833:22;;41748:114;;;:::o;41868:184::-;41967:11;42001:6;41996:3;41989:19;42041:4;42036:3;42032:14;42017:29;;41868:184;;;;:::o;42058:132::-;42125:4;42148:3;42140:11;;42178:4;42173:3;42169:14;42161:22;;42058:132;;;:::o;42196:108::-;42273:24;42291:5;42273:24;:::i;:::-;42268:3;42261:37;42196:108;;:::o;42310:179::-;42379:10;42400:46;42442:3;42434:6;42400:46;:::i;:::-;42478:4;42473:3;42469:14;42455:28;;42310:179;;;;:::o;42495:113::-;42565:4;42597;42592:3;42588:14;42580:22;;42495:113;;;:::o;42644:732::-;42763:3;42792:54;42840:5;42792:54;:::i;:::-;42862:86;42941:6;42936:3;42862:86;:::i;:::-;42855:93;;42972:56;43022:5;42972:56;:::i;:::-;43051:7;43082:1;43067:284;43092:6;43089:1;43086:13;43067:284;;;43168:6;43162:13;43195:63;43254:3;43239:13;43195:63;:::i;:::-;43188:70;;43281:60;43334:6;43281:60;:::i;:::-;43271:70;;43127:224;43114:1;43111;43107:9;43102:14;;43067:284;;;43071:14;43367:3;43360:10;;42768:608;;;42644:732;;;;:::o;43382:831::-;43645:4;43683:3;43672:9;43668:19;43660:27;;43697:71;43765:1;43754:9;43750:17;43741:6;43697:71;:::i;:::-;43778:80;43854:2;43843:9;43839:18;43830:6;43778:80;:::i;:::-;43905:9;43899:4;43895:20;43890:2;43879:9;43875:18;43868:48;43933:108;44036:4;44027:6;43933:108;:::i;:::-;43925:116;;44051:72;44119:2;44108:9;44104:18;44095:6;44051:72;:::i;:::-;44133:73;44201:3;44190:9;44186:19;44177:6;44133:73;:::i;:::-;43382:831;;;;;;;;:::o

Swarm Source

ipfs://8454d8ecb1fa70942fde4b574e840b31c4e96e4e2f309f25a01b72a457039fba
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.