ETH Price: $3,463.78 (+0.36%)

Token

TMFNR ($TMFNR)
 

Overview

Max Total Supply

53,180,000,008 $TMFNR

Holders

469

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
TMFNR

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier:MIT
pragma solidity ^0.8.10;

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

// Dex Factory contract interface
interface IDexFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

// Dex Router contract interface
interface IDexRouter {
    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
        );

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

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

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

contract TMFNR is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isExcludedFromMaxTxn;
    mapping(address => bool) public isExcludedFromMaxHolding;
    mapping(address => bool) public isBot;

    string private _name = "TMFNR";
    string private _symbol = "$TMFNR";
    uint8 private _decimals = 9;
    uint256 private _totalSupply = 5_318_000_000_8 * 1e9;

    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);
    IDexRouter public dexRouter;
    address public dexPair;
    address public marketingWallet;

    uint256 public minTokenToSwap = _totalSupply.div(1e4); // this amount will trigger swap and distribute
    uint256 public maxHoldLimit = _totalSupply.mul(2).div(1000); // this is the max wallet holding limit
    uint256 public maxTxnLimit = _totalSupply.div(1000); // this is the max transaction limit
    uint256 public botFee = 990;
    uint256 public percentDivider = 1000;
    uint256 public snipingTime = 40 seconds;
    uint256 public launchedAt;

    bool public distributeAndLiquifyStatus; // should be true to turn on to liquidate the pool
    bool public feesStatus; // enable by default
    bool public trading; // once enable can't be disable afterwards

    uint256 public liquidityFeeOnBuying = 10; // 1% will be added to the liquidity
    uint256 public marketingFeeOnBuying = 10; // 1% will be added to the marketing address

    uint256 public liquidityFeeOnSelling = 10; // 1% will be added to the liquidity
    uint256 public marketingFeeOnSelling = 20; // 2% will be added to the marketing address

    uint256 liquidityFeeCounter = 0;
    uint256 marketingFeeCounter = 0;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    constructor() {
        _balances[owner()] = _totalSupply;
        marketingWallet = address(0x8200fF459DcC094e65EDEC5F0389F5095fb8F4a9);

        IDexRouter _dexRouter = IDexRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        // Create a dex pair for this new ERC20
        address _dexPair = IDexFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );
        dexPair = _dexPair;

        // set the rest of the contract variables
        dexRouter = _dexRouter;

        //exclude owner and this contract from fee
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        //exclude owner and this contract from max Txn
        isExcludedFromMaxTxn[owner()] = true;
        isExcludedFromMaxTxn[address(this)] = true;

        //exclude owner and this contract from max hold limit
        isExcludedFromMaxHolding[owner()] = true;
        isExcludedFromMaxHolding[address(this)] = true;
        isExcludedFromMaxHolding[dexPair] = true;
        isExcludedFromMaxHolding[marketingWallet] = true;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    //to receive ETH from dexRouter when swapping
    receive() external payable {}

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

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

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

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

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

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

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

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

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

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

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

    function includeOrExcludeFromFee(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromFee[account] = value;
    }

    function includeOrExcludeFromMaxTxn(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromMaxTxn[account] = value;
    }

    function includeOrExcludeFromMaxHolding(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromMaxHolding[account] = value;
    }

    function setMinTokenToSwap(uint256 _amount) external onlyOwner {
        require(_amount > 0, "$TMFNR: can't be 0");
        minTokenToSwap = _amount;
    }

    function setMaxHoldLimit(uint256 _amount) external onlyOwner {
        require(
            _amount >= _totalSupply.mul(2).div(percentDivider),
            "$TMFNR: should be greater than 0.2%"
        );
        maxHoldLimit = _amount;
    }

    function setMaxTxnLimit(uint256 _amount) external onlyOwner {
        require(
            _amount >= _totalSupply / percentDivider,
            "$TMFNR: should be greater than 0.1%"
        );
        maxTxnLimit = _amount;
    }

    function setBuyFeePercent(
        uint256 _lpFee,
        uint256 _marketingFee
    ) external onlyOwner {
        marketingFeeOnBuying = _lpFee;
        liquidityFeeOnBuying = _marketingFee;
        require(
            _lpFee.add(_marketingFee) <= percentDivider.div(10),
            "$TMFNR: can't be more than 10%"
        );
    }

    function setSellFeePercent(
        uint256 _lpFee,
        uint256 _marketingFee
    ) external onlyOwner {
        marketingFeeOnSelling = _lpFee;
        liquidityFeeOnSelling = _marketingFee;
        require(
            _lpFee.add(_marketingFee) <= percentDivider.div(10),
            "$TMFNR: can't be more than 10%"
        );
    }

    function setDistributionStatus(bool _value) public onlyOwner {
        distributeAndLiquifyStatus = _value;
    }

    function enableOrDisableFees(bool _value) external onlyOwner {
        feesStatus = _value;
    }

    function updateAddresses(address _marketingWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
    }

    function setIsBot(address holder, bool exempt)
        external
        onlyOwner
    {
        isBot[holder] = exempt;
    }

    function enableTrading() external onlyOwner {
        require(!trading, "$TMFNR: already enabled");
        trading = true;
        feesStatus = true;
        distributeAndLiquifyStatus = true;
        launchedAt = block.timestamp;
    }

    function removeStuckEth(address _receiver) public onlyOwner {
        payable(_receiver).transfer(address(this).balance);
    }

    function totalBuyFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount
            .mul(marketingFeeOnBuying.add(liquidityFeeOnBuying))
            .div(percentDivider);
        return fee;
    }

    function totalSellFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount
            .mul(marketingFeeOnSelling.add(liquidityFeeOnSelling))
            .div(percentDivider);
        return fee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "$TMFNR: approve from the zero address");
        require(spender != address(0), "$TMFNR: 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), "$TMFNR: transfer from the zero address");
        require(to != address(0), "$TMFNR: transfer to the zero address");
        require(amount > 0, "$TMFNR: Amount must be greater than zero");
        require(!isBot[from],"Bot detected");

        if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) {
            require(amount <= maxTxnLimit, "$TMFNR: max txn limit exceeds");

            // trading disable till launch
            if (!trading) {
                require(
                    dexPair != from && dexPair != to,
                    "$TMFNR: trading is disable"
                );
            }
        }

        if (!isExcludedFromMaxHolding[to]) {
            require(
                balanceOf(to).add(amount) <= maxHoldLimit,
                "$TMFNR: max hold limit exceeds"
            );
        }

        // swap and liquify
        distributeAndLiquify(from, to);

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to isExcludedFromFee account then remove the fee
        if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feesStatus) {
            takeFee = false;
        }

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (dexPair == sender && takeFee) {
            uint256 allFee;
            uint256 tTransferAmount;
            // antibot
            if (
                block.timestamp < launchedAt + snipingTime &&
                sender != address(dexRouter)
            ) {
                allFee = amount.mul(botFee).div(percentDivider);
                marketingFeeCounter += allFee;
                tTransferAmount = amount.sub(allFee);
            } else {
                allFee = totalBuyFeePerTx(amount);
                tTransferAmount = amount.sub(allFee);
                setFeeCountersOnBuying(amount);
            }

            _balances[sender] = _balances[sender].sub(
                amount,
                "$TMFNR: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(tTransferAmount);
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else if (dexPair == recipient && takeFee) {
            uint256 allFee = totalSellFeePerTx(amount);
            uint256 tTransferAmount = amount.sub(allFee);
            _balances[sender] = _balances[sender].sub(
                amount,
                "$TMFNR: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(tTransferAmount);
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
            setFeeCountersOnSelling(amount);
        } else {
            _balances[sender] = _balances[sender].sub(
                amount,
                "$TMFNR: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }
    }

    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)].add(amount);

        emit Transfer(sender, address(this), amount);
    }

    function setFeeCountersOnBuying(uint256 amount) private {
        liquidityFeeCounter += amount.mul(liquidityFeeOnBuying).div(
            percentDivider
        );
        marketingFeeCounter += amount.mul(marketingFeeOnBuying).div(
            percentDivider
        );
    }

    function setFeeCountersOnSelling(uint256 amount) private {
        liquidityFeeCounter += amount.mul(liquidityFeeOnSelling).div(
            percentDivider
        );
        marketingFeeCounter += amount.mul(marketingFeeOnSelling).div(
            percentDivider
        );
    }

    function distributeAndLiquify(address from, address to) private {
        // is the token balance of this contract address over the min number of
        // tokens that we need to initiate a swap + liquidity lock?
        // also, don't get caught in a circular liquidity event.
        // also, don't swap & liquify if sender is Dex pair.
        uint256 contractTokenBalance = balanceOf(address(this));

        bool shouldSell = contractTokenBalance >= minTokenToSwap;

        if (
            shouldSell &&
            from != dexPair &&
            distributeAndLiquifyStatus &&
            !(from == address(this) && to == dexPair) // swap 1 time
        ) {
            // approve contract
            _approve(address(this), address(dexRouter), contractTokenBalance);

            uint256 halfLiquidity = liquidityFeeCounter.div(2);
            uint256 otherHalfLiquidity = liquidityFeeCounter.sub(halfLiquidity);

            uint256 tokenAmountToBeSwapped = contractTokenBalance.sub(
                otherHalfLiquidity
            );

            uint256 balanceBefore = address(this).balance;

            // now is to lock into liquidty pool
            Utils.swapTokensForEth(address(dexRouter), tokenAmountToBeSwapped);

            uint256 deltaBalance = address(this).balance.sub(balanceBefore);

            uint256 ethToBeAddedToLiquidity = deltaBalance
                .mul(halfLiquidity)
                .div(tokenAmountToBeSwapped);

            // add liquidity to Dex
            if (ethToBeAddedToLiquidity > 0) {
                Utils.addLiquidity(
                    address(dexRouter),
                    owner(),
                    otherHalfLiquidity,
                    ethToBeAddedToLiquidity
                );

                emit SwapAndLiquify(
                    halfLiquidity,
                    ethToBeAddedToLiquidity,
                    otherHalfLiquidity
                );
            }

            uint256 ethForMarketing = address(this).balance.sub(
                ethToBeAddedToLiquidity
            );

            // sending Eth to Marketing wallet
            if (ethForMarketing > 0) payable(marketingWallet).transfer(ethForMarketing);

            // Reset all fee counters
            liquidityFeeCounter = 0;
            marketingFeeCounter = 0;
        }
    }
}

// Library for doing a swap on Dex
library Utils {
    using SafeMath for uint256;

    function swapTokensForEth(address routerAddress, uint256 tokenAmount)
        internal
    {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // generate the Dex pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp + 300
        );
    }

    function addLiquidity(
        address routerAddress,
        address owner,
        uint256 tokenAmount,
        uint256 ethAmount
    ) internal {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // add the liquidity
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner,
            block.timestamp + 300
        );
    }
}

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) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        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;
    }
}

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":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"enableOrDisableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxTxn","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":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxHolding","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lpFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setDistributionStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxHoldLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinTokenToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lpFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600581526020017f544d464e52000000000000000000000000000000000000000000000000000000815250600790805190602001906200005192919062000a1b565b506040518060400160405280600681526020017f24544d464e520000000000000000000000000000000000000000000000000000815250600890805190602001906200009f92919062000a1b565b5060098060006101000a81548160ff021916908360ff1602179055506802e205503f601c5000600a55620000e6612710600a54620008ac60201b620023311790919060201c565b600e55620001216103e86200010d6002600a54620008fe60201b6200237b1790919060201c565b620008ac60201b620023311790919060201c565b600f55620001426103e8600a54620008ac60201b620023311790919060201c565b6010556103de6011556103e86012556028601355600a601655600a601755600a60185560146019556000601a556000601b553480156200018157600080fd5b50620001926200098260201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600a5460016000620002636200098a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550738200ff459dcc094e65edec5f0389f5095fb8f4a9600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200035d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000383919062000b35565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000411919062000b35565b6040518363ffffffff1660e01b81526004016200043092919062000b78565b6020604051808303816000875af115801562000450573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000476919062000b35565b905080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620005106200098a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620005cf6200098a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560006200068e6200098a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200083b6200098a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200089c919062000bc0565b60405180910390a3505062000e99565b6000620008f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620009b360201b60201c565b905092915050565b6000808314156200091357600090506200097c565b6000828462000923919062000c0c565b905082848262000934919062000c9c565b1462000977576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200096e9062000d5b565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620009fd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009f4919062000e10565b60405180910390fd5b506000838562000a0e919062000c9c565b9050809150509392505050565b82805462000a299062000e63565b90600052602060002090601f01602090048101928262000a4d576000855562000a99565b82601f1062000a6857805160ff191683800117855562000a99565b8280016001018555821562000a99579182015b8281111562000a9857825182559160200191906001019062000a7b565b5b50905062000aa8919062000aac565b5090565b5b8082111562000ac757600081600090555060010162000aad565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000afd8262000ad0565b9050919050565b62000b0f8162000af0565b811462000b1b57600080fd5b50565b60008151905062000b2f8162000b04565b92915050565b60006020828403121562000b4e5762000b4d62000acb565b5b600062000b5e8482850162000b1e565b91505092915050565b62000b728162000af0565b82525050565b600060408201905062000b8f600083018562000b67565b62000b9e602083018462000b67565b9392505050565b6000819050919050565b62000bba8162000ba5565b82525050565b600060208201905062000bd7600083018462000baf565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c198262000ba5565b915062000c268362000ba5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c625762000c6162000bdd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ca98262000ba5565b915062000cb68362000ba5565b92508262000cc95762000cc862000c6d565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000d4360218362000cd4565b915062000d508262000ce5565b604082019050919050565b6000602082019050818103600083015262000d768162000d34565b9050919050565b600081519050919050565b60005b8381101562000da857808201518184015260208101905062000d8b565b8381111562000db8576000848401525b50505050565b6000601f19601f8301169050919050565b600062000ddc8262000d7d565b62000de8818562000cd4565b935062000dfa81856020860162000d88565b62000e058162000dbe565b840191505092915050565b6000602082019050818103600083015262000e2c818462000dcf565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e7c57607f821691505b6020821081141562000e935762000e9262000e34565b5b50919050565b614e5e8062000ea96000396000f3fe6080604052600436106102e85760003560e01c8063879dd3c511610190578063bf56b371116100dc578063ed42142911610095578063f2fde38b1161006f578063f2fde38b14610b71578063f4b3dbc314610b9a578063f9dfdaeb14610bd7578063fe6f1b0514610c00576102ef565b8063ed42142914610ae0578063f097ea1a14610b1d578063f242ab4114610b46576102ef565b8063bf56b371146109ce578063bf862391146109f9578063dd62ed3e14610a24578063e6c84dc614610a61578063ea5b9e8514610a8c578063ec44acf214610ab5576102ef565b80639b6a275011610149578063a7c29b4011610123578063a7c29b4014610916578063a9059cbb1461093f578063b0bc2a2d1461097c578063be291dc6146109a5576102ef565b80639b6a275014610887578063a457c2d7146108b0578063a643c1a0146108ed576102ef565b8063879dd3c5146107875780638a8c523c146107b25780638da5cb5b146107c957806395d89b41146107f457806399b102b51461081f5780639a36dfa11461085c576102ef565b80633bbac5791161024f57806375f0a874116102085780637d99c66d116101e25780637d99c66d146106cb578063844af78e146106f657806384ea21bc146107215780638756aabd1461075e576102ef565b806375f0a8741461064a57806379777b4e146106755780637c6a9a9c146106a0576102ef565b80633bbac579146105285780635342acb414610565578063679a3c59146105a2578063681aa362146105cb57806370a08231146105f6578063715018a614610633576102ef565b80631884f1e6116102a15780631884f1e61461040457806323b872dd1461042f5780632d1293901461046c578063313ce567146104955780633326d7f2146104c057806339509351146104eb576102ef565b806303c0f5d4146102f457806306fdde031461031d5780630758d92414610348578063095ea7b3146103735780630a2d140c146103b057806318160ddd146103d9576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b5061031b60048036038101906103169190613c27565b610c2b565b005b34801561032957600080fd5b50610332610d1b565b60405161033f9190613d00565b60405180910390f35b34801561035457600080fd5b5061035d610dad565b60405161036a9190613d81565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190613dd2565b610dd3565b6040516103a79190613e21565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e3c565b610df1565b005b3480156103e557600080fd5b506103ee610ea3565b6040516103fb9190613e78565b60405180910390f35b34801561041057600080fd5b50610419610ead565b6040516104269190613e78565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613e93565b610eb3565b6040516104639190613e21565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613c27565b610f8c565b005b3480156104a157600080fd5b506104aa61107c565b6040516104b79190613f02565b60405180910390f35b3480156104cc57600080fd5b506104d5611093565b6040516104e29190613e78565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613dd2565b611099565b60405161051f9190613e21565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613f1d565b61114c565b60405161055c9190613e21565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190613f1d565b61116c565b6040516105999190613e21565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c49190613f1d565b61118c565b005b3480156105d757600080fd5b506105e061126b565b6040516105ed9190613e78565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190613f1d565b611271565b60405161062a9190613e78565b60405180910390f35b34801561063f57600080fd5b506106486112ba565b005b34801561065657600080fd5b5061065f61140d565b60405161066c9190613f59565b60405180910390f35b34801561068157600080fd5b5061068a611433565b6040516106979190613e21565b60405180910390f35b3480156106ac57600080fd5b506106b5611446565b6040516106c29190613e78565b60405180910390f35b3480156106d757600080fd5b506106e061144c565b6040516106ed9190613e78565b60405180910390f35b34801561070257600080fd5b5061070b611452565b6040516107189190613e78565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190613f1d565b611458565b6040516107559190613e21565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190613f74565b611478565b005b34801561079357600080fd5b5061079c611583565b6040516107a99190613e21565b60405180910390f35b3480156107be57600080fd5b506107c7611596565b005b3480156107d557600080fd5b506107de6116d5565b6040516107eb9190613f59565b60405180910390f35b34801561080057600080fd5b506108096116fe565b6040516108169190613d00565b60405180910390f35b34801561082b57600080fd5b5061084660048036038101906108419190613f1d565b611790565b6040516108539190613e21565b60405180910390f35b34801561086857600080fd5b506108716117b0565b60405161087e9190613e78565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a99190613f74565b6117b6565b005b3480156108bc57600080fd5b506108d760048036038101906108d29190613dd2565b6118a7565b6040516108e49190613e21565b60405180910390f35b3480156108f957600080fd5b50610914600480360381019061090f9190613f1d565b611974565b005b34801561092257600080fd5b5061093d60048036038101906109389190613c27565b611a4d565b005b34801561094b57600080fd5b5061096660048036038101906109619190613dd2565b611b3d565b6040516109739190613e21565b60405180910390f35b34801561098857600080fd5b506109a3600480360381019061099e9190613e3c565b611b5b565b005b3480156109b157600080fd5b506109cc60048036038101906109c79190613fa1565b611c0d565b005b3480156109da57600080fd5b506109e3611d1e565b6040516109f09190613e78565b60405180910390f35b348015610a0557600080fd5b50610a0e611d24565b604051610a1b9190613e78565b60405180910390f35b348015610a3057600080fd5b50610a4b6004803603810190610a469190613fe1565b611d2a565b604051610a589190613e78565b60405180910390f35b348015610a6d57600080fd5b50610a76611db1565b604051610a839190613e78565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613c27565b611db7565b005b348015610ac157600080fd5b50610aca611ea7565b604051610ad79190613e21565b60405180910390f35b348015610aec57600080fd5b50610b076004803603810190610b029190613f74565b611eba565b604051610b149190613e78565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613f74565b611f05565b005b348015610b5257600080fd5b50610b5b611fe7565b604051610b689190613f59565b60405180910390f35b348015610b7d57600080fd5b50610b986004803603810190610b939190613f1d565b61200d565b005b348015610ba657600080fd5b50610bc16004803603810190610bbc9190613f74565b6121cf565b604051610bce9190613e78565b60405180910390f35b348015610be357600080fd5b50610bfe6004803603810190610bf99190613fa1565b61221a565b005b348015610c0c57600080fd5b50610c1561232b565b604051610c229190613e78565b60405180910390f35b610c336123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb79061406d565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060078054610d2a906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610d56906140bc565b8015610da35780601f10610d7857610100808354040283529160200191610da3565b820191906000526020600020905b815481529060010190602001808311610d8657829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610de7610de06123f6565b84846123fe565b6001905092915050565b610df96123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d9061406d565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b6000600a54905090565b600e5481565b6000610ec08484846125c9565b610f8184610ecc6123f6565b610f7c85604051806060016040528060298152602001614e0060299139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f326123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b6123fe565b600190509392505050565b610f946123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611021576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110189061406d565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960009054906101000a900460ff16905090565b60165481565b60006111426110a66123f6565b8461113d85600260006110b76123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b6123fe565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b6111946123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112189061406d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611267573d6000803e3d6000fd5b5050565b60105481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112c26123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461134f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113469061406d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900460ff1681565b60175481565b60135481565b60195481565b60056020528060005260406000206000915054906101000a900460ff1681565b6114806123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115049061406d565b60405180910390fd5b6115376012546115296002600a5461237b90919063ffffffff16565b61233190919063ffffffff16565b811015611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157090614160565b60405180910390fd5b80600f8190555050565b601560019054906101000a900460ff1681565b61159e6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461162b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116229061406d565b60405180910390fd5b601560029054906101000a900460ff161561167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611672906141cc565b60405180910390fd5b6001601560026101000a81548160ff0219169083151502179055506001601560016101000a81548160ff0219169083151502179055506001601560006101000a81548160ff02191690831515021790555042601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606008805461170d906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054611739906140bc565b80156117865780601f1061175b57610100808354040283529160200191611786565b820191906000526020600020905b81548152906001019060200180831161176957829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600f5481565b6117be6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118429061406d565b60405180910390fd5b601254600a5461185b919061424a565b81101561189d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611894906142ed565b60405180910390fd5b8060108190555050565b600061196a6118b46123f6565b8461196585604051806060016040528060298152602001614dd760299139600260006118de6123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b6123fe565b6001905092915050565b61197c6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a009061406d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a556123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad99061406d565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611b51611b4a6123f6565b84846125c9565b6001905092915050565b611b636123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be79061406d565b60405180910390fd5b80601560016101000a81548160ff02191690831515021790555050565b611c156123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c999061406d565b60405180910390fd5b8160198190555080601881905550611cc6600a60125461233190919063ffffffff16565b611cd98284612b6290919063ffffffff16565b1115611d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1190614359565b60405180910390fd5b5050565b60145481565b60115481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b611dbf6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e439061406d565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560029054906101000a900460ff1681565b600080611efa601254611eec611edd601654601754612b6290919063ffffffff16565b8661237b90919063ffffffff16565b61233190919063ffffffff16565b905080915050919050565b611f0d6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f919061406d565b60405180910390fd5b60008111611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd4906143c5565b60405180910390fd5b80600e8190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6120156123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120999061406d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210990614457565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008061220f6012546122016121f2601854601954612b6290919063ffffffff16565b8661237b90919063ffffffff16565b61233190919063ffffffff16565b905080915050919050565b6122226123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a69061406d565b60405180910390fd5b81601781905550806016819055506122d3600a60125461233190919063ffffffff16565b6122e68284612b6290919063ffffffff16565b1115612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231e90614359565b60405180910390fd5b5050565b60125481565b600061237383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bc0565b905092915050565b60008083141561238e57600090506123f0565b6000828461239c9190614477565b90508284826123ab919061424a565b146123eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e290614543565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561246e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612465906145d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d590614667565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125bc9190613e78565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612630906146f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a09061478b565b60405180910390fd5b600081116126ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e39061481d565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277090614889565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561281d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561296857601054811115612867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285e906148f5565b60405180910390fd5b601560029054906101000a900460ff16612967578273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561292757508173ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295d90614961565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a1957600f546129d7826129c985611271565b612b6290919063ffffffff16565b1115612a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0f906149cd565b60405180910390fd5b5b612a238383612c23565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612aca5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612ae25750601560019054906101000a900460ff16155b15612aec57600090505b612af884848484612f4d565b50505050565b6000838311158290612b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3d9190613d00565b60405180910390fd5b5060008385612b5591906149ed565b9050809150509392505050565b6000808284612b719190614a21565b905083811015612bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bad90614ac3565b60405180910390fd5b8091505092915050565b60008083118290612c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfe9190613d00565b60405180910390fd5b5060008385612c16919061424a565b9050809150509392505050565b6000612c2e30611271565b90506000600e548210159050808015612c955750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612cad5750601560009054906101000a900460ff165b8015612d3e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612d3c5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612f4757612d7030600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123fe565b6000612d886002601a5461233190919063ffffffff16565b90506000612da182601a546136b090919063ffffffff16565b90506000612db882866136b090919063ffffffff16565b90506000479050612deb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836136fa565b6000612e0082476136b090919063ffffffff16565b90506000612e2984612e1b888561237b90919063ffffffff16565b61233190919063ffffffff16565b90506000811115612ea557612e69600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612e626116d5565b87846138e0565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868287604051612e9c93929190614ae3565b60405180910390a15b6000612eba82476136b090919063ffffffff16565b90506000811115612f2f57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612f2d573d6000803e3d6000fd5b505b6000601a819055506000601b81905550505050505050505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612fa75750805b1561327f57600080601354601454612fbf9190614a21565b4210801561301b5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1561307e5761304960125461303b6011548761237b90919063ffffffff16565b61233190919063ffffffff16565b915081601b600082825461305d9190614a21565b9250508190555061307782856136b090919063ffffffff16565b90506130a8565b61308784611eba565b915061309c82856136b090919063ffffffff16565b90506130a784613984565b5b613131846040518060400160405280601c81526020017f24544d464e523a20696e73756666696369656e742062616c616e636500000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131c681600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132669190613e78565b60405180910390a36132788683613a09565b50506136aa565b8273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156132d95750805b156134e25760006132e9836121cf565b9050600061330082856136b090919063ffffffff16565b905061338b846040518060400160405280601c81526020017f24544d464e523a20696e73756666696369656e742062616c616e636500000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061342081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134c09190613e78565b60405180910390a36134d28683613a09565b6134db84613b07565b50506136a9565b61356b826040518060400160405280601c81526020017f24544d464e523a20696e73756666696369656e742062616c616e636500000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061360082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136a09190613e78565b60405180910390a35b5b50505050565b60006136f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612afe565b905092915050565b60008290506000600267ffffffffffffffff81111561371c5761371b614b1a565b5b60405190808252806020026020018201604052801561374a5781602001602082028036833780820191505090505b509050308160008151811061376257613761614b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061380b9190614b8d565b8160018151811061381f5761381e614b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c426138889190614a21565b6040518663ffffffff1660e01b81526004016138a8959493929190614cb3565b600060405180830381600087803b1580156138c257600080fd5b505af11580156138d6573d6000803e3d6000fd5b5050505050505050565b60008490508073ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000808a61012c426139169190614a21565b6040518863ffffffff1660e01b815260040161393796959493929190614d0d565b60606040518083038185885af1158015613955573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061397a9190614d83565b5050505050505050565b6139ad60125461399f6016548461237b90919063ffffffff16565b61233190919063ffffffff16565b601a60008282546139be9190614a21565b925050819055506139ee6012546139e06017548461237b90919063ffffffff16565b61233190919063ffffffff16565b601b60008282546139ff9190614a21565b9250508190555050565b613a5b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613afb9190613e78565b60405180910390a35050565b613b30601254613b226018548461237b90919063ffffffff16565b61233190919063ffffffff16565b601a6000828254613b419190614a21565b92505081905550613b71601254613b636019548461237b90919063ffffffff16565b61233190919063ffffffff16565b601b6000828254613b829190614a21565b9250508190555050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613bbc82613b91565b9050919050565b613bcc81613bb1565b8114613bd757600080fd5b50565b600081359050613be981613bc3565b92915050565b60008115159050919050565b613c0481613bef565b8114613c0f57600080fd5b50565b600081359050613c2181613bfb565b92915050565b60008060408385031215613c3e57613c3d613b8c565b5b6000613c4c85828601613bda565b9250506020613c5d85828601613c12565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ca1578082015181840152602081019050613c86565b83811115613cb0576000848401525b50505050565b6000601f19601f8301169050919050565b6000613cd282613c67565b613cdc8185613c72565b9350613cec818560208601613c83565b613cf581613cb6565b840191505092915050565b60006020820190508181036000830152613d1a8184613cc7565b905092915050565b6000819050919050565b6000613d47613d42613d3d84613b91565b613d22565b613b91565b9050919050565b6000613d5982613d2c565b9050919050565b6000613d6b82613d4e565b9050919050565b613d7b81613d60565b82525050565b6000602082019050613d966000830184613d72565b92915050565b6000819050919050565b613daf81613d9c565b8114613dba57600080fd5b50565b600081359050613dcc81613da6565b92915050565b60008060408385031215613de957613de8613b8c565b5b6000613df785828601613bda565b9250506020613e0885828601613dbd565b9150509250929050565b613e1b81613bef565b82525050565b6000602082019050613e366000830184613e12565b92915050565b600060208284031215613e5257613e51613b8c565b5b6000613e6084828501613c12565b91505092915050565b613e7281613d9c565b82525050565b6000602082019050613e8d6000830184613e69565b92915050565b600080600060608486031215613eac57613eab613b8c565b5b6000613eba86828701613bda565b9350506020613ecb86828701613bda565b9250506040613edc86828701613dbd565b9150509250925092565b600060ff82169050919050565b613efc81613ee6565b82525050565b6000602082019050613f176000830184613ef3565b92915050565b600060208284031215613f3357613f32613b8c565b5b6000613f4184828501613bda565b91505092915050565b613f5381613bb1565b82525050565b6000602082019050613f6e6000830184613f4a565b92915050565b600060208284031215613f8a57613f89613b8c565b5b6000613f9884828501613dbd565b91505092915050565b60008060408385031215613fb857613fb7613b8c565b5b6000613fc685828601613dbd565b9250506020613fd785828601613dbd565b9150509250929050565b60008060408385031215613ff857613ff7613b8c565b5b600061400685828601613bda565b925050602061401785828601613bda565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614057602083613c72565b915061406282614021565b602082019050919050565b600060208201905081810360008301526140868161404a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806140d457607f821691505b602082108114156140e8576140e761408d565b5b50919050565b7f24544d464e523a2073686f756c642062652067726561746572207468616e203060008201527f2e32250000000000000000000000000000000000000000000000000000000000602082015250565b600061414a602383613c72565b9150614155826140ee565b604082019050919050565b600060208201905081810360008301526141798161413d565b9050919050565b7f24544d464e523a20616c726561647920656e61626c6564000000000000000000600082015250565b60006141b6601783613c72565b91506141c182614180565b602082019050919050565b600060208201905081810360008301526141e5816141a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061425582613d9c565b915061426083613d9c565b9250826142705761426f6141ec565b5b828204905092915050565b7f24544d464e523a2073686f756c642062652067726561746572207468616e203060008201527f2e31250000000000000000000000000000000000000000000000000000000000602082015250565b60006142d7602383613c72565b91506142e28261427b565b604082019050919050565b60006020820190508181036000830152614306816142ca565b9050919050565b7f24544d464e523a2063616e2774206265206d6f7265207468616e203130250000600082015250565b6000614343601e83613c72565b915061434e8261430d565b602082019050919050565b6000602082019050818103600083015261437281614336565b9050919050565b7f24544d464e523a2063616e277420626520300000000000000000000000000000600082015250565b60006143af601283613c72565b91506143ba82614379565b602082019050919050565b600060208201905081810360008301526143de816143a2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614441602683613c72565b915061444c826143e5565b604082019050919050565b6000602082019050818103600083015261447081614434565b9050919050565b600061448282613d9c565b915061448d83613d9c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144c6576144c561421b565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061452d602183613c72565b9150614538826144d1565b604082019050919050565b6000602082019050818103600083015261455c81614520565b9050919050565b7f24544d464e523a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006145bf602583613c72565b91506145ca82614563565b604082019050919050565b600060208201905081810360008301526145ee816145b2565b9050919050565b7f24544d464e523a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614651602383613c72565b915061465c826145f5565b604082019050919050565b6000602082019050818103600083015261468081614644565b9050919050565b7f24544d464e523a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006146e3602683613c72565b91506146ee82614687565b604082019050919050565b60006020820190508181036000830152614712816146d6565b9050919050565b7f24544d464e523a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614775602483613c72565b915061478082614719565b604082019050919050565b600060208201905081810360008301526147a481614768565b9050919050565b7f24544d464e523a20416d6f756e74206d7573742062652067726561746572207460008201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b6000614807602883613c72565b9150614812826147ab565b604082019050919050565b60006020820190508181036000830152614836816147fa565b9050919050565b7f426f742064657465637465640000000000000000000000000000000000000000600082015250565b6000614873600c83613c72565b915061487e8261483d565b602082019050919050565b600060208201905081810360008301526148a281614866565b9050919050565b7f24544d464e523a206d61782074786e206c696d69742065786365656473000000600082015250565b60006148df601d83613c72565b91506148ea826148a9565b602082019050919050565b6000602082019050818103600083015261490e816148d2565b9050919050565b7f24544d464e523a2074726164696e672069732064697361626c65000000000000600082015250565b600061494b601a83613c72565b915061495682614915565b602082019050919050565b6000602082019050818103600083015261497a8161493e565b9050919050565b7f24544d464e523a206d617820686f6c64206c696d697420657863656564730000600082015250565b60006149b7601e83613c72565b91506149c282614981565b602082019050919050565b600060208201905081810360008301526149e6816149aa565b9050919050565b60006149f882613d9c565b9150614a0383613d9c565b925082821015614a1657614a1561421b565b5b828203905092915050565b6000614a2c82613d9c565b9150614a3783613d9c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a6c57614a6b61421b565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614aad601b83613c72565b9150614ab882614a77565b602082019050919050565b60006020820190508181036000830152614adc81614aa0565b9050919050565b6000606082019050614af86000830186613e69565b614b056020830185613e69565b614b126040830184613e69565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614b8781613bc3565b92915050565b600060208284031215614ba357614ba2613b8c565b5b6000614bb184828501614b78565b91505092915050565b6000819050919050565b6000614bdf614bda614bd584614bba565b613d22565b613d9c565b9050919050565b614bef81614bc4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c2a81613bb1565b82525050565b6000614c3c8383614c21565b60208301905092915050565b6000602082019050919050565b6000614c6082614bf5565b614c6a8185614c00565b9350614c7583614c11565b8060005b83811015614ca6578151614c8d8882614c30565b9750614c9883614c48565b925050600181019050614c79565b5085935050505092915050565b600060a082019050614cc86000830188613e69565b614cd56020830187614be6565b8181036040830152614ce78186614c55565b9050614cf66060830185613f4a565b614d036080830184613e69565b9695505050505050565b600060c082019050614d226000830189613f4a565b614d2f6020830188613e69565b614d3c6040830187614be6565b614d496060830186614be6565b614d566080830185613f4a565b614d6360a0830184613e69565b979650505050505050565b600081519050614d7d81613da6565b92915050565b600080600060608486031215614d9c57614d9b613b8c565b5b6000614daa86828701614d6e565b9350506020614dbb86828701614d6e565b9250506040614dcc86828701614d6e565b915050925092509256fe24544d464e523a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726f24544d464e523a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200a427a496be0d25183229a87b3e9dc514ac8bf095296494d5edd773904c2816364736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c8063879dd3c511610190578063bf56b371116100dc578063ed42142911610095578063f2fde38b1161006f578063f2fde38b14610b71578063f4b3dbc314610b9a578063f9dfdaeb14610bd7578063fe6f1b0514610c00576102ef565b8063ed42142914610ae0578063f097ea1a14610b1d578063f242ab4114610b46576102ef565b8063bf56b371146109ce578063bf862391146109f9578063dd62ed3e14610a24578063e6c84dc614610a61578063ea5b9e8514610a8c578063ec44acf214610ab5576102ef565b80639b6a275011610149578063a7c29b4011610123578063a7c29b4014610916578063a9059cbb1461093f578063b0bc2a2d1461097c578063be291dc6146109a5576102ef565b80639b6a275014610887578063a457c2d7146108b0578063a643c1a0146108ed576102ef565b8063879dd3c5146107875780638a8c523c146107b25780638da5cb5b146107c957806395d89b41146107f457806399b102b51461081f5780639a36dfa11461085c576102ef565b80633bbac5791161024f57806375f0a874116102085780637d99c66d116101e25780637d99c66d146106cb578063844af78e146106f657806384ea21bc146107215780638756aabd1461075e576102ef565b806375f0a8741461064a57806379777b4e146106755780637c6a9a9c146106a0576102ef565b80633bbac579146105285780635342acb414610565578063679a3c59146105a2578063681aa362146105cb57806370a08231146105f6578063715018a614610633576102ef565b80631884f1e6116102a15780631884f1e61461040457806323b872dd1461042f5780632d1293901461046c578063313ce567146104955780633326d7f2146104c057806339509351146104eb576102ef565b806303c0f5d4146102f457806306fdde031461031d5780630758d92414610348578063095ea7b3146103735780630a2d140c146103b057806318160ddd146103d9576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b5061031b60048036038101906103169190613c27565b610c2b565b005b34801561032957600080fd5b50610332610d1b565b60405161033f9190613d00565b60405180910390f35b34801561035457600080fd5b5061035d610dad565b60405161036a9190613d81565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190613dd2565b610dd3565b6040516103a79190613e21565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e3c565b610df1565b005b3480156103e557600080fd5b506103ee610ea3565b6040516103fb9190613e78565b60405180910390f35b34801561041057600080fd5b50610419610ead565b6040516104269190613e78565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613e93565b610eb3565b6040516104639190613e21565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613c27565b610f8c565b005b3480156104a157600080fd5b506104aa61107c565b6040516104b79190613f02565b60405180910390f35b3480156104cc57600080fd5b506104d5611093565b6040516104e29190613e78565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613dd2565b611099565b60405161051f9190613e21565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613f1d565b61114c565b60405161055c9190613e21565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190613f1d565b61116c565b6040516105999190613e21565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c49190613f1d565b61118c565b005b3480156105d757600080fd5b506105e061126b565b6040516105ed9190613e78565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190613f1d565b611271565b60405161062a9190613e78565b60405180910390f35b34801561063f57600080fd5b506106486112ba565b005b34801561065657600080fd5b5061065f61140d565b60405161066c9190613f59565b60405180910390f35b34801561068157600080fd5b5061068a611433565b6040516106979190613e21565b60405180910390f35b3480156106ac57600080fd5b506106b5611446565b6040516106c29190613e78565b60405180910390f35b3480156106d757600080fd5b506106e061144c565b6040516106ed9190613e78565b60405180910390f35b34801561070257600080fd5b5061070b611452565b6040516107189190613e78565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190613f1d565b611458565b6040516107559190613e21565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190613f74565b611478565b005b34801561079357600080fd5b5061079c611583565b6040516107a99190613e21565b60405180910390f35b3480156107be57600080fd5b506107c7611596565b005b3480156107d557600080fd5b506107de6116d5565b6040516107eb9190613f59565b60405180910390f35b34801561080057600080fd5b506108096116fe565b6040516108169190613d00565b60405180910390f35b34801561082b57600080fd5b5061084660048036038101906108419190613f1d565b611790565b6040516108539190613e21565b60405180910390f35b34801561086857600080fd5b506108716117b0565b60405161087e9190613e78565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a99190613f74565b6117b6565b005b3480156108bc57600080fd5b506108d760048036038101906108d29190613dd2565b6118a7565b6040516108e49190613e21565b60405180910390f35b3480156108f957600080fd5b50610914600480360381019061090f9190613f1d565b611974565b005b34801561092257600080fd5b5061093d60048036038101906109389190613c27565b611a4d565b005b34801561094b57600080fd5b5061096660048036038101906109619190613dd2565b611b3d565b6040516109739190613e21565b60405180910390f35b34801561098857600080fd5b506109a3600480360381019061099e9190613e3c565b611b5b565b005b3480156109b157600080fd5b506109cc60048036038101906109c79190613fa1565b611c0d565b005b3480156109da57600080fd5b506109e3611d1e565b6040516109f09190613e78565b60405180910390f35b348015610a0557600080fd5b50610a0e611d24565b604051610a1b9190613e78565b60405180910390f35b348015610a3057600080fd5b50610a4b6004803603810190610a469190613fe1565b611d2a565b604051610a589190613e78565b60405180910390f35b348015610a6d57600080fd5b50610a76611db1565b604051610a839190613e78565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613c27565b611db7565b005b348015610ac157600080fd5b50610aca611ea7565b604051610ad79190613e21565b60405180910390f35b348015610aec57600080fd5b50610b076004803603810190610b029190613f74565b611eba565b604051610b149190613e78565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613f74565b611f05565b005b348015610b5257600080fd5b50610b5b611fe7565b604051610b689190613f59565b60405180910390f35b348015610b7d57600080fd5b50610b986004803603810190610b939190613f1d565b61200d565b005b348015610ba657600080fd5b50610bc16004803603810190610bbc9190613f74565b6121cf565b604051610bce9190613e78565b60405180910390f35b348015610be357600080fd5b50610bfe6004803603810190610bf99190613fa1565b61221a565b005b348015610c0c57600080fd5b50610c1561232b565b604051610c229190613e78565b60405180910390f35b610c336123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb79061406d565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060078054610d2a906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610d56906140bc565b8015610da35780601f10610d7857610100808354040283529160200191610da3565b820191906000526020600020905b815481529060010190602001808311610d8657829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610de7610de06123f6565b84846123fe565b6001905092915050565b610df96123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d9061406d565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b6000600a54905090565b600e5481565b6000610ec08484846125c9565b610f8184610ecc6123f6565b610f7c85604051806060016040528060298152602001614e0060299139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f326123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b6123fe565b600190509392505050565b610f946123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611021576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110189061406d565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960009054906101000a900460ff16905090565b60165481565b60006111426110a66123f6565b8461113d85600260006110b76123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b6123fe565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b6111946123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112189061406d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611267573d6000803e3d6000fd5b5050565b60105481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112c26123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461134f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113469061406d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900460ff1681565b60175481565b60135481565b60195481565b60056020528060005260406000206000915054906101000a900460ff1681565b6114806123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115049061406d565b60405180910390fd5b6115376012546115296002600a5461237b90919063ffffffff16565b61233190919063ffffffff16565b811015611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157090614160565b60405180910390fd5b80600f8190555050565b601560019054906101000a900460ff1681565b61159e6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461162b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116229061406d565b60405180910390fd5b601560029054906101000a900460ff161561167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611672906141cc565b60405180910390fd5b6001601560026101000a81548160ff0219169083151502179055506001601560016101000a81548160ff0219169083151502179055506001601560006101000a81548160ff02191690831515021790555042601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606008805461170d906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054611739906140bc565b80156117865780601f1061175b57610100808354040283529160200191611786565b820191906000526020600020905b81548152906001019060200180831161176957829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600f5481565b6117be6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118429061406d565b60405180910390fd5b601254600a5461185b919061424a565b81101561189d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611894906142ed565b60405180910390fd5b8060108190555050565b600061196a6118b46123f6565b8461196585604051806060016040528060298152602001614dd760299139600260006118de6123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b6123fe565b6001905092915050565b61197c6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a009061406d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a556123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad99061406d565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611b51611b4a6123f6565b84846125c9565b6001905092915050565b611b636123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be79061406d565b60405180910390fd5b80601560016101000a81548160ff02191690831515021790555050565b611c156123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c999061406d565b60405180910390fd5b8160198190555080601881905550611cc6600a60125461233190919063ffffffff16565b611cd98284612b6290919063ffffffff16565b1115611d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1190614359565b60405180910390fd5b5050565b60145481565b60115481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b611dbf6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e439061406d565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560029054906101000a900460ff1681565b600080611efa601254611eec611edd601654601754612b6290919063ffffffff16565b8661237b90919063ffffffff16565b61233190919063ffffffff16565b905080915050919050565b611f0d6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f919061406d565b60405180910390fd5b60008111611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd4906143c5565b60405180910390fd5b80600e8190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6120156123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120999061406d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210990614457565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008061220f6012546122016121f2601854601954612b6290919063ffffffff16565b8661237b90919063ffffffff16565b61233190919063ffffffff16565b905080915050919050565b6122226123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a69061406d565b60405180910390fd5b81601781905550806016819055506122d3600a60125461233190919063ffffffff16565b6122e68284612b6290919063ffffffff16565b1115612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231e90614359565b60405180910390fd5b5050565b60125481565b600061237383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bc0565b905092915050565b60008083141561238e57600090506123f0565b6000828461239c9190614477565b90508284826123ab919061424a565b146123eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e290614543565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561246e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612465906145d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d590614667565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125bc9190613e78565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612630906146f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a09061478b565b60405180910390fd5b600081116126ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e39061481d565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277090614889565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561281d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561296857601054811115612867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285e906148f5565b60405180910390fd5b601560029054906101000a900460ff16612967578273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561292757508173ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295d90614961565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a1957600f546129d7826129c985611271565b612b6290919063ffffffff16565b1115612a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0f906149cd565b60405180910390fd5b5b612a238383612c23565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612aca5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612ae25750601560019054906101000a900460ff16155b15612aec57600090505b612af884848484612f4d565b50505050565b6000838311158290612b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3d9190613d00565b60405180910390fd5b5060008385612b5591906149ed565b9050809150509392505050565b6000808284612b719190614a21565b905083811015612bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bad90614ac3565b60405180910390fd5b8091505092915050565b60008083118290612c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfe9190613d00565b60405180910390fd5b5060008385612c16919061424a565b9050809150509392505050565b6000612c2e30611271565b90506000600e548210159050808015612c955750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612cad5750601560009054906101000a900460ff165b8015612d3e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612d3c5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612f4757612d7030600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123fe565b6000612d886002601a5461233190919063ffffffff16565b90506000612da182601a546136b090919063ffffffff16565b90506000612db882866136b090919063ffffffff16565b90506000479050612deb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836136fa565b6000612e0082476136b090919063ffffffff16565b90506000612e2984612e1b888561237b90919063ffffffff16565b61233190919063ffffffff16565b90506000811115612ea557612e69600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612e626116d5565b87846138e0565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868287604051612e9c93929190614ae3565b60405180910390a15b6000612eba82476136b090919063ffffffff16565b90506000811115612f2f57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612f2d573d6000803e3d6000fd5b505b6000601a819055506000601b81905550505050505050505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612fa75750805b1561327f57600080601354601454612fbf9190614a21565b4210801561301b5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1561307e5761304960125461303b6011548761237b90919063ffffffff16565b61233190919063ffffffff16565b915081601b600082825461305d9190614a21565b9250508190555061307782856136b090919063ffffffff16565b90506130a8565b61308784611eba565b915061309c82856136b090919063ffffffff16565b90506130a784613984565b5b613131846040518060400160405280601c81526020017f24544d464e523a20696e73756666696369656e742062616c616e636500000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131c681600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132669190613e78565b60405180910390a36132788683613a09565b50506136aa565b8273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156132d95750805b156134e25760006132e9836121cf565b9050600061330082856136b090919063ffffffff16565b905061338b846040518060400160405280601c81526020017f24544d464e523a20696e73756666696369656e742062616c616e636500000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061342081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134c09190613e78565b60405180910390a36134d28683613a09565b6134db84613b07565b50506136a9565b61356b826040518060400160405280601c81526020017f24544d464e523a20696e73756666696369656e742062616c616e636500000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061360082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136a09190613e78565b60405180910390a35b5b50505050565b60006136f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612afe565b905092915050565b60008290506000600267ffffffffffffffff81111561371c5761371b614b1a565b5b60405190808252806020026020018201604052801561374a5781602001602082028036833780820191505090505b509050308160008151811061376257613761614b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061380b9190614b8d565b8160018151811061381f5761381e614b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c426138889190614a21565b6040518663ffffffff1660e01b81526004016138a8959493929190614cb3565b600060405180830381600087803b1580156138c257600080fd5b505af11580156138d6573d6000803e3d6000fd5b5050505050505050565b60008490508073ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000808a61012c426139169190614a21565b6040518863ffffffff1660e01b815260040161393796959493929190614d0d565b60606040518083038185885af1158015613955573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061397a9190614d83565b5050505050505050565b6139ad60125461399f6016548461237b90919063ffffffff16565b61233190919063ffffffff16565b601a60008282546139be9190614a21565b925050819055506139ee6012546139e06017548461237b90919063ffffffff16565b61233190919063ffffffff16565b601b60008282546139ff9190614a21565b9250508190555050565b613a5b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613afb9190613e78565b60405180910390a35050565b613b30601254613b226018548461237b90919063ffffffff16565b61233190919063ffffffff16565b601a6000828254613b419190614a21565b92505081905550613b71601254613b636019548461237b90919063ffffffff16565b61233190919063ffffffff16565b601b6000828254613b829190614a21565b9250508190555050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613bbc82613b91565b9050919050565b613bcc81613bb1565b8114613bd757600080fd5b50565b600081359050613be981613bc3565b92915050565b60008115159050919050565b613c0481613bef565b8114613c0f57600080fd5b50565b600081359050613c2181613bfb565b92915050565b60008060408385031215613c3e57613c3d613b8c565b5b6000613c4c85828601613bda565b9250506020613c5d85828601613c12565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ca1578082015181840152602081019050613c86565b83811115613cb0576000848401525b50505050565b6000601f19601f8301169050919050565b6000613cd282613c67565b613cdc8185613c72565b9350613cec818560208601613c83565b613cf581613cb6565b840191505092915050565b60006020820190508181036000830152613d1a8184613cc7565b905092915050565b6000819050919050565b6000613d47613d42613d3d84613b91565b613d22565b613b91565b9050919050565b6000613d5982613d2c565b9050919050565b6000613d6b82613d4e565b9050919050565b613d7b81613d60565b82525050565b6000602082019050613d966000830184613d72565b92915050565b6000819050919050565b613daf81613d9c565b8114613dba57600080fd5b50565b600081359050613dcc81613da6565b92915050565b60008060408385031215613de957613de8613b8c565b5b6000613df785828601613bda565b9250506020613e0885828601613dbd565b9150509250929050565b613e1b81613bef565b82525050565b6000602082019050613e366000830184613e12565b92915050565b600060208284031215613e5257613e51613b8c565b5b6000613e6084828501613c12565b91505092915050565b613e7281613d9c565b82525050565b6000602082019050613e8d6000830184613e69565b92915050565b600080600060608486031215613eac57613eab613b8c565b5b6000613eba86828701613bda565b9350506020613ecb86828701613bda565b9250506040613edc86828701613dbd565b9150509250925092565b600060ff82169050919050565b613efc81613ee6565b82525050565b6000602082019050613f176000830184613ef3565b92915050565b600060208284031215613f3357613f32613b8c565b5b6000613f4184828501613bda565b91505092915050565b613f5381613bb1565b82525050565b6000602082019050613f6e6000830184613f4a565b92915050565b600060208284031215613f8a57613f89613b8c565b5b6000613f9884828501613dbd565b91505092915050565b60008060408385031215613fb857613fb7613b8c565b5b6000613fc685828601613dbd565b9250506020613fd785828601613dbd565b9150509250929050565b60008060408385031215613ff857613ff7613b8c565b5b600061400685828601613bda565b925050602061401785828601613bda565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614057602083613c72565b915061406282614021565b602082019050919050565b600060208201905081810360008301526140868161404a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806140d457607f821691505b602082108114156140e8576140e761408d565b5b50919050565b7f24544d464e523a2073686f756c642062652067726561746572207468616e203060008201527f2e32250000000000000000000000000000000000000000000000000000000000602082015250565b600061414a602383613c72565b9150614155826140ee565b604082019050919050565b600060208201905081810360008301526141798161413d565b9050919050565b7f24544d464e523a20616c726561647920656e61626c6564000000000000000000600082015250565b60006141b6601783613c72565b91506141c182614180565b602082019050919050565b600060208201905081810360008301526141e5816141a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061425582613d9c565b915061426083613d9c565b9250826142705761426f6141ec565b5b828204905092915050565b7f24544d464e523a2073686f756c642062652067726561746572207468616e203060008201527f2e31250000000000000000000000000000000000000000000000000000000000602082015250565b60006142d7602383613c72565b91506142e28261427b565b604082019050919050565b60006020820190508181036000830152614306816142ca565b9050919050565b7f24544d464e523a2063616e2774206265206d6f7265207468616e203130250000600082015250565b6000614343601e83613c72565b915061434e8261430d565b602082019050919050565b6000602082019050818103600083015261437281614336565b9050919050565b7f24544d464e523a2063616e277420626520300000000000000000000000000000600082015250565b60006143af601283613c72565b91506143ba82614379565b602082019050919050565b600060208201905081810360008301526143de816143a2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614441602683613c72565b915061444c826143e5565b604082019050919050565b6000602082019050818103600083015261447081614434565b9050919050565b600061448282613d9c565b915061448d83613d9c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144c6576144c561421b565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061452d602183613c72565b9150614538826144d1565b604082019050919050565b6000602082019050818103600083015261455c81614520565b9050919050565b7f24544d464e523a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006145bf602583613c72565b91506145ca82614563565b604082019050919050565b600060208201905081810360008301526145ee816145b2565b9050919050565b7f24544d464e523a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614651602383613c72565b915061465c826145f5565b604082019050919050565b6000602082019050818103600083015261468081614644565b9050919050565b7f24544d464e523a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006146e3602683613c72565b91506146ee82614687565b604082019050919050565b60006020820190508181036000830152614712816146d6565b9050919050565b7f24544d464e523a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614775602483613c72565b915061478082614719565b604082019050919050565b600060208201905081810360008301526147a481614768565b9050919050565b7f24544d464e523a20416d6f756e74206d7573742062652067726561746572207460008201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b6000614807602883613c72565b9150614812826147ab565b604082019050919050565b60006020820190508181036000830152614836816147fa565b9050919050565b7f426f742064657465637465640000000000000000000000000000000000000000600082015250565b6000614873600c83613c72565b915061487e8261483d565b602082019050919050565b600060208201905081810360008301526148a281614866565b9050919050565b7f24544d464e523a206d61782074786e206c696d69742065786365656473000000600082015250565b60006148df601d83613c72565b91506148ea826148a9565b602082019050919050565b6000602082019050818103600083015261490e816148d2565b9050919050565b7f24544d464e523a2074726164696e672069732064697361626c65000000000000600082015250565b600061494b601a83613c72565b915061495682614915565b602082019050919050565b6000602082019050818103600083015261497a8161493e565b9050919050565b7f24544d464e523a206d617820686f6c64206c696d697420657863656564730000600082015250565b60006149b7601e83613c72565b91506149c282614981565b602082019050919050565b600060208201905081810360008301526149e6816149aa565b9050919050565b60006149f882613d9c565b9150614a0383613d9c565b925082821015614a1657614a1561421b565b5b828203905092915050565b6000614a2c82613d9c565b9150614a3783613d9c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a6c57614a6b61421b565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614aad601b83613c72565b9150614ab882614a77565b602082019050919050565b60006020820190508181036000830152614adc81614aa0565b9050919050565b6000606082019050614af86000830186613e69565b614b056020830185613e69565b614b126040830184613e69565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614b8781613bc3565b92915050565b600060208284031215614ba357614ba2613b8c565b5b6000614bb184828501614b78565b91505092915050565b6000819050919050565b6000614bdf614bda614bd584614bba565b613d22565b613d9c565b9050919050565b614bef81614bc4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c2a81613bb1565b82525050565b6000614c3c8383614c21565b60208301905092915050565b6000602082019050919050565b6000614c6082614bf5565b614c6a8185614c00565b9350614c7583614c11565b8060005b83811015614ca6578151614c8d8882614c30565b9750614c9883614c48565b925050600181019050614c79565b5085935050505092915050565b600060a082019050614cc86000830188613e69565b614cd56020830187614be6565b8181036040830152614ce78186614c55565b9050614cf66060830185613f4a565b614d036080830184613e69565b9695505050505050565b600060c082019050614d226000830189613f4a565b614d2f6020830188613e69565b614d3c6040830187614be6565b614d496060830186614be6565b614d566080830185613f4a565b614d6360a0830184613e69565b979650505050505050565b600081519050614d7d81613da6565b92915050565b600080600060608486031215614d9c57614d9b613b8c565b5b6000614daa86828701614d6e565b9350506020614dbb86828701614d6e565b9250506040614dcc86828701614d6e565b915050925092509256fe24544d464e523a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726f24544d464e523a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200a427a496be0d25183229a87b3e9dc514ac8bf095296494d5edd773904c2816364736f6c634300080a0033

Deployed Bytecode Sourcemap

3176:16054:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11101:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6560:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3888:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7471:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10740:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6837:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3990:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7672:447;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9183:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6746:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4673:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8127:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3567:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3389:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11490:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4204:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6945:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2723:157;;;;;;;;;;;;;:::i;:::-;;3951:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4456:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4757:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4376:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4936:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3504:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9529:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4552:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11239:243;;;;;;;;;;;;;:::i;:::-;;2509:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6651:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3445:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4098:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9785:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8435:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10970:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9012:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7072:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10863:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10383:349;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4422:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4299:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7279:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4851:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8847:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4602:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11627:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9362:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3922:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2888:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11867:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10029:346;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4333:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11101:130;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11217:6:::1;11201:5;:13;11207:6;11201:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;11101:130:::0;;:::o;6560:83::-;6597:13;6630:5;6623:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6560:83;:::o;3888:27::-;;;;;;;;;;;;;:::o;7471:193::-;7573:4;7595:39;7604:12;:10;:12::i;:::-;7618:7;7627:6;7595:8;:39::i;:::-;7652:4;7645:11;;7471:193;;;;:::o;10740:115::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10841:6:::1;10812:26;;:35;;;;;;;;;;;;;;;;;;10740:115:::0;:::o;6837:100::-;6890:7;6917:12;;6910:19;;6837:100;:::o;3990:53::-;;;;:::o;7672:447::-;7804:4;7821:36;7831:6;7839:9;7850:6;7821:9;:36::i;:::-;7868:221;7891:6;7912:12;:10;:12::i;:::-;7939:139;7995:6;7939:139;;;;;;;;;;;;;;;;;:11;:19;7951:6;7939:19;;;;;;;;;;;;;;;:33;7959:12;:10;:12::i;:::-;7939:33;;;;;;;;;;;;;;;;:37;;:139;;;;;:::i;:::-;7868:8;:221::i;:::-;8107:4;8100:11;;7672:447;;;;;:::o;9183:171::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9341:5:::1;9305:24;:33;9330:7;9305:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;9183:171:::0;;:::o;6746:83::-;6787:5;6812:9;;;;;;;;;;;6805:16;;6746:83;:::o;4673:40::-;;;;:::o;8127:300::-;8242:4;8264:133;8287:12;:10;:12::i;:::-;8314:7;8336:50;8375:10;8336:11;:25;8348:12;:10;:12::i;:::-;8336:25;;;;;;;;;;;;;;;:34;8362:7;8336:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8264:8;:133::i;:::-;8415:4;8408:11;;8127:300;;;;:::o;3567:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;3389:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;11490:129::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11569:9:::1;11561:27;;:50;11589:21;11561:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11490:129:::0;:::o;4204:51::-;;;;:::o;6945:119::-;7011:7;7038:9;:18;7048:7;7038:18;;;;;;;;;;;;;;;;7031:25;;6945:119;;;:::o;2723:157::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2830:1:::1;2793:40;;2814:6;::::0;::::1;;;;;;;;2793:40;;;;;;;;;;;;2869:1;2844:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;2723:157::o:0;3951:30::-;;;;;;;;;;;;;:::o;4456:38::-;;;;;;;;;;;;;:::o;4757:40::-;;;;:::o;4376:39::-;;;;:::o;4936:41::-;;;;:::o;3504:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;9529:248::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9634:39:::1;9658:14;;9634:19;9651:1;9634:12;;:16;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;9623:7;:50;;9601:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;9762:7;9747:12;:22;;;;9529:248:::0;:::o;4552:22::-;;;;;;;;;;;;;:::o;11239:243::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11303:7:::1;;;;;;;;;;;11302:8;11294:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11359:4;11349:7;;:14;;;;;;;;;;;;;;;;;;11387:4;11374:10;;:17;;;;;;;;;;;;;;;;;;11431:4;11402:26;;:33;;;;;;;;;;;;;;;;;;11459:15;11446:10;:28;;;;11239:243::o:0;2509:79::-;2547:7;2574:6;;;;;;;;;;;2567:13;;2509:79;:::o;6651:87::-;6690:13;6723:7;6716:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6651:87;:::o;3445:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;4098:59::-;;;;:::o;9785:236::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9904:14:::1;;9889:12;;:29;;;;:::i;:::-;9878:7;:40;;9856:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;10006:7;9992:11;:21;;;;9785:236:::0;:::o;8435:404::-;8555:4;8577:232;8600:12;:10;:12::i;:::-;8627:7;8649:149;8706:15;8649:149;;;;;;;;;;;;;;;;;:11;:25;8661:12;:10;:12::i;:::-;8649:25;;;;;;;;;;;;;;;:34;8675:7;8649:34;;;;;;;;;;;;;;;;:38;;:149;;;;;:::i;:::-;8577:8;:232::i;:::-;8827:4;8820:11;;8435:404;;;;:::o;10970:123::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11069:16:::1;11051:15;;:34;;;;;;;;;;;;;;;;;;10970:123:::0;:::o;9012:163::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9162:5:::1;9130:20;:29;9151:7;9130:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;9012:163:::0;;:::o;7072:199::-;7177:4;7199:42;7209:12;:10;:12::i;:::-;7223:9;7234:6;7199:9;:42::i;:::-;7259:4;7252:11;;7072:199;;;;:::o;10863:99::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10948:6:::1;10935:10;;:19;;;;;;;;;;;;;;;;;;10863:99:::0;:::o;10383:349::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10528:6:::1;10504:21;:30;;;;10569:13;10545:21;:37;;;;10644:22;10663:2;10644:14;;:18;;:22;;;;:::i;:::-;10615:25;10626:13;10615:6;:10;;:25;;;;:::i;:::-;:51;;10593:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;10383:349:::0;;:::o;4422:25::-;;;;:::o;4299:27::-;;;;:::o;7279:184::-;7396:7;7428:11;:18;7440:5;7428:18;;;;;;;;;;;;;;;:27;7447:7;7428:27;;;;;;;;;;;;;;;;7421:34;;7279:184;;;;:::o;4851:41::-;;;;:::o;8847:157::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8991:5:::1;8962:17;:26;8980:7;8962:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8847:157:::0;;:::o;4602:19::-;;;;;;;;;;;;;:::o;11627:232::-;11690:7;11710:11;11724:106;11815:14;;11724:72;11749:46;11774:20;;11749;;:24;;:46;;;;:::i;:::-;11724:6;:24;;:72;;;;:::i;:::-;:90;;:106;;;;:::i;:::-;11710:120;;11848:3;11841:10;;;11627:232;;;:::o;9362:159::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9454:1:::1;9444:7;:11;9436:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;9506:7;9489:14;:24;;;;9362:159:::0;:::o;3922:22::-;;;;;;;;;;;;;:::o;2888:281::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3011:1:::1;2991:22;;:8;:22;;;;2969:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;3124:8;3095:38;;3116:6;::::0;::::1;;;;;;;;3095:38;;;;;;;;;;;;3153:8;3144:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2888:281:::0;:::o;11867:235::-;11931:7;11951:11;11965:108;12058:14;;11965:74;11990:48;12016:21;;11990;;:25;;:48;;;;:::i;:::-;11965:6;:24;;:74;;;;:::i;:::-;:92;;:108;;;;:::i;:::-;11951:122;;12091:3;12084:10;;;11867:235;;;:::o;10029:346::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10172:6:::1;10149:20;:29;;;;10212:13;10189:20;:36;;;;10287:22;10306:2;10287:14;;:18;;:22;;;;:::i;:::-;10258:25;10269:13;10258:6;:10;;:25;;;;:::i;:::-;:51;;10236:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;10029:346:::0;;:::o;4333:36::-;;;;:::o;21526:132::-;21584:7;21611:39;21615:1;21618;21611:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;21604:46;;21526:132;;;;:::o;21047:471::-;21105:7;21355:1;21350;:6;21346:47;;;21380:1;21373:8;;;;21346:47;21405:9;21421:1;21417;:5;;;;:::i;:::-;21405:17;;21450:1;21445;21441;:5;;;;:::i;:::-;:10;21433:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;21509:1;21502:8;;;21047:471;;;;;:::o;1845:115::-;1898:15;1941:10;1926:26;;1845:115;:::o;12110:373::-;12254:1;12237:19;;:5;:19;;;;12229:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12336:1;12317:21;;:7;:21;;;;12309:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12421:6;12391:11;:18;12403:5;12391:18;;;;;;;;;;;;;;;:27;12410:7;12391:27;;;;;;;;;;;;;;;:36;;;;12459:7;12443:32;;12452:5;12443:32;;;12468:6;12443:32;;;;;;:::i;:::-;;;;;;;;12110:373;;;:::o;12491:1491::-;12629:1;12613:18;;:4;:18;;;;12605:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12707:1;12693:16;;:2;:16;;;;12685:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12778:1;12769:6;:10;12761:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12844:5;:11;12850:4;12844:11;;;;;;;;;;;;;;;;;;;;;;;;;12843:12;12835:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;12889:20;:26;12910:4;12889:26;;;;;;;;;;;;;;;;;;;;;;;;;12888:27;:56;;;;;12920:20;:24;12941:2;12920:24;;;;;;;;;;;;;;;;;;;;;;;;;12919:25;12888:56;12884:393;;;12979:11;;12969:6;:21;;12961:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;13090:7;;;;;;;;;;;13085:181;;13159:4;13148:15;;:7;;;;;;;;;;;:15;;;;:32;;;;;13178:2;13167:13;;:7;;;;;;;;;;;:13;;;;13148:32;13118:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;13085:181;12884:393;13294:24;:28;13319:2;13294:28;;;;;;;;;;;;;;;;;;;;;;;;;13289:195;;13394:12;;13365:25;13383:6;13365:13;13375:2;13365:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:41;;13339:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;13289:195;13525:30;13546:4;13552:2;13525:20;:30::i;:::-;13629:12;13644:4;13629:19;;13748:17;:23;13766:4;13748:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;13775:17;:21;13793:2;13775:21;;;;;;;;;;;;;;;;;;;;;;;;;13748:48;:63;;;;13801:10;;;;;;;;;;;13800:11;13748:63;13744:111;;;13838:5;13828:15;;13744:111;13933:41;13948:4;13954:2;13958:6;13966:7;13933:14;:41::i;:::-;12594:1388;12491:1491;;;:::o;20813:226::-;20933:7;20966:1;20961;:6;;20969:12;20953:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;20993:9;21009:1;21005;:5;;;;:::i;:::-;20993:17;;21030:1;21023:8;;;20813:226;;;;;:::o;20480:181::-;20538:7;20558:9;20574:1;20570;:5;;;;:::i;:::-;20558:17;;20599:1;20594;:6;;20586:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;20652:1;20645:8;;;20480:181;;;;:::o;21666:312::-;21786:7;21818:1;21814;:5;21821:12;21806:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;21845:9;21861:1;21857;:5;;;;:::i;:::-;21845:17;;21969:1;21962:8;;;21666:312;;;;;:::o;16841:2386::-;17194:28;17225:24;17243:4;17225:9;:24::i;:::-;17194:55;;17262:15;17304:14;;17280:20;:38;;17262:56;;17349:10;:42;;;;;17384:7;;;;;;;;;;;17376:15;;:4;:15;;;;17349:42;:85;;;;;17408:26;;;;;;;;;;;17349:85;:143;;;;;17469:4;17453:21;;:4;:21;;;:38;;;;;17484:7;;;;;;;;;;;17478:13;;:2;:13;;;17453:38;17451:41;17349:143;17331:1889;;;17567:65;17584:4;17599:9;;;;;;;;;;;17611:20;17567:8;:65::i;:::-;17649:21;17673:26;17697:1;17673:19;;:23;;:26;;;;:::i;:::-;17649:50;;17714:26;17743:38;17767:13;17743:19;;:23;;:38;;;;:::i;:::-;17714:67;;17798:30;17831:76;17874:18;17831:20;:24;;:76;;;;:::i;:::-;17798:109;;17924:21;17948;17924:45;;18036:66;18067:9;;;;;;;;;;;18079:22;18036;:66::i;:::-;18119:20;18142:40;18168:13;18142:21;:25;;:40;;;;:::i;:::-;18119:63;;18199:31;18233:95;18305:22;18233:49;18268:13;18233:12;:34;;:49;;;;:::i;:::-;:71;;:95;;;;:::i;:::-;18199:129;;18412:1;18386:23;:27;18382:445;;;18434:195;18483:9;;;;;;;;;;;18516:7;:5;:7::i;:::-;18546:18;18587:23;18434:18;:195::i;:::-;18655:156;18692:13;18728:23;18774:18;18655:156;;;;;;;;:::i;:::-;;;;;;;;18382:445;18843:23;18869:82;18913:23;18869:21;:25;;:82;;;;:::i;:::-;18843:108;;19038:1;19020:15;:19;19016:75;;;19049:15;;;;;;;;;;;19041:33;;:50;19075:15;19041:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19016:75;19169:1;19147:19;:23;;;;19207:1;19185:19;:23;;;;17519:1701;;;;;;;17331:1889;16905:2322;;16841:2386;;:::o;14063:1974::-;14229:6;14218:17;;:7;;;;;;;;;;;:17;;;:28;;;;;14239:7;14218:28;14214:1816;;;14263:14;14292:23;14407:11;;14394:10;;:24;;;;:::i;:::-;14376:15;:42;:91;;;;;14457:9;;;;;;;;;;;14439:28;;:6;:28;;;;14376:91;14354:492;;;14511:38;14534:14;;14511:18;14522:6;;14511;:10;;:18;;;;:::i;:::-;:22;;:38;;;;:::i;:::-;14502:47;;14591:6;14568:19;;:29;;;;;;;:::i;:::-;;;;;;;;14634:18;14645:6;14634;:10;;:18;;;;:::i;:::-;14616:36;;14354:492;;;14702:24;14719:6;14702:16;:24::i;:::-;14693:33;;14763:18;14774:6;14763;:10;;:18;;;;:::i;:::-;14745:36;;14800:30;14823:6;14800:22;:30::i;:::-;14354:492;14882:110;14922:6;14882:110;;;;;;;;;;;;;;;;;:9;:17;14892:6;14882:17;;;;;;;;;;;;;;;;:21;;:110;;;;;:::i;:::-;14862:9;:17;14872:6;14862:17;;;;;;;;;;;;;;;:130;;;;15030:41;15055:15;15030:9;:20;15040:9;15030:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;15007:9;:20;15017:9;15007:20;;;;;;;;;;;;;;;:64;;;;15108:9;15091:44;;15100:6;15091:44;;;15119:15;15091:44;;;;;;:::i;:::-;;;;;;;;15152:28;15165:6;15173;15152:12;:28::i;:::-;14248:944;;14214:1816;;;15213:9;15202:20;;:7;;;;;;;;;;;:20;;;:31;;;;;15226:7;15202:31;15198:832;;;15250:14;15267:25;15285:6;15267:17;:25::i;:::-;15250:42;;15307:23;15333:18;15344:6;15333;:10;;:18;;;;:::i;:::-;15307:44;;15386:110;15426:6;15386:110;;;;;;;;;;;;;;;;;:9;:17;15396:6;15386:17;;;;;;;;;;;;;;;;:21;;:110;;;;;:::i;:::-;15366:9;:17;15376:6;15366:17;;;;;;;;;;;;;;;:130;;;;15534:41;15559:15;15534:9;:20;15544:9;15534:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;15511:9;:20;15521:9;15511:20;;;;;;;;;;;;;;;:64;;;;15612:9;15595:44;;15604:6;15595:44;;;15623:15;15595:44;;;;;;:::i;:::-;;;;;;;;15656:28;15669:6;15677;15656:12;:28::i;:::-;15699:31;15723:6;15699:23;:31::i;:::-;15235:507;;15198:832;;;15783:110;15823:6;15783:110;;;;;;;;;;;;;;;;;:9;:17;15793:6;15783:17;;;;;;;;;;;;;;;;:21;;:110;;;;;:::i;:::-;15763:9;:17;15773:6;15763:17;;;;;;;;;;;;;;;:130;;;;15931:32;15956:6;15931:9;:20;15941:9;15931:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15908:9;:20;15918:9;15908:20;;;;;;;;;;;;;;;:55;;;;16000:9;15983:35;;15992:6;15983:35;;;16011:6;15983:35;;;;;;:::i;:::-;;;;;;;;15198:832;14214:1816;14063:1974;;;;:::o;20669:136::-;20727:7;20754:43;20758:1;20761;20754:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;20747:50;;20669:136;;;;:::o;19326:603::-;19430:20;19464:13;19430:48;;19547:21;19585:1;19571:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19547:40;;19616:4;19598;19603:1;19598:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19642:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19632:4;19637:1;19632:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;19697:9;:60;;;19772:11;19798:1;19842:4;19869;19907:3;19889:15;:21;;;;:::i;:::-;19697:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19419:510;;19326:603;;:::o;19937:512::-;20100:20;20134:13;20100:48;;20191:9;:25;;;20224:9;20257:4;20277:11;20303:1;20346;20389:5;20427:3;20409:15;:21;;;;:::i;:::-;20191:250;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20089:360;19937:512;;;;:::o;16254:284::-;16344:76;16395:14;;16344:32;16355:20;;16344:6;:10;;:32;;;;:::i;:::-;:36;;:76;;;;:::i;:::-;16321:19;;:99;;;;;;;:::i;:::-;;;;;;;;16454:76;16505:14;;16454:32;16465:20;;16454:6;:10;;:32;;;;:::i;:::-;:36;;:76;;;;:::i;:::-;16431:19;;:99;;;;;;;:::i;:::-;;;;;;;;16254:284;:::o;16045:201::-;16145:36;16174:6;16145:9;:24;16163:4;16145:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;16118:9;:24;16136:4;16118:24;;;;;;;;;;;;;;;:63;;;;16224:4;16199:39;;16208:6;16199:39;;;16231:6;16199:39;;;;;;:::i;:::-;;;;;;;;16045:201;;:::o;16546:287::-;16637:77;16689:14;;16637:33;16648:21;;16637:6;:10;;:33;;;;:::i;:::-;:37;;:77;;;;:::i;:::-;16614:19;;:100;;;;;;;:::i;:::-;;;;;;;;16748:77;16800:14;;16748:33;16759:21;;16748:6;:10;;:33;;;;:::i;:::-;:37;;:77;;;;:::i;:::-;16725:19;;:100;;;;;;;:::i;:::-;;;;;;;;16546:287;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:99::-;1724:6;1758:5;1752:12;1742:22;;1672:99;;;:::o;1777:169::-;1861:11;1895:6;1890:3;1883:19;1935:4;1930:3;1926:14;1911:29;;1777:169;;;;:::o;1952:307::-;2020:1;2030:113;2044:6;2041:1;2038:13;2030:113;;;2129:1;2124:3;2120:11;2114:18;2110:1;2105:3;2101:11;2094:39;2066:2;2063:1;2059:10;2054:15;;2030:113;;;2161:6;2158:1;2155:13;2152:101;;;2241:1;2232:6;2227:3;2223:16;2216:27;2152:101;2001:258;1952:307;;;:::o;2265:102::-;2306:6;2357:2;2353:7;2348:2;2341:5;2337:14;2333:28;2323:38;;2265:102;;;:::o;2373:364::-;2461:3;2489:39;2522:5;2489:39;:::i;:::-;2544:71;2608:6;2603:3;2544:71;:::i;:::-;2537:78;;2624:52;2669:6;2664:3;2657:4;2650:5;2646:16;2624:52;:::i;:::-;2701:29;2723:6;2701:29;:::i;:::-;2696:3;2692:39;2685:46;;2465:272;2373:364;;;;:::o;2743:313::-;2856:4;2894:2;2883:9;2879:18;2871:26;;2943:9;2937:4;2933:20;2929:1;2918:9;2914:17;2907:47;2971:78;3044:4;3035:6;2971:78;:::i;:::-;2963:86;;2743:313;;;;:::o;3062:60::-;3090:3;3111:5;3104:12;;3062:60;;;:::o;3128:142::-;3178:9;3211:53;3229:34;3238:24;3256:5;3238:24;:::i;:::-;3229:34;:::i;:::-;3211:53;:::i;:::-;3198:66;;3128:142;;;:::o;3276:126::-;3326:9;3359:37;3390:5;3359:37;:::i;:::-;3346:50;;3276:126;;;:::o;3408:144::-;3476:9;3509:37;3540:5;3509:37;:::i;:::-;3496:50;;3408:144;;;:::o;3558:167::-;3663:55;3712:5;3663:55;:::i;:::-;3658:3;3651:68;3558:167;;:::o;3731:258::-;3842:4;3880:2;3869:9;3865:18;3857:26;;3893:89;3979:1;3968:9;3964:17;3955:6;3893:89;:::i;:::-;3731:258;;;;:::o;3995:77::-;4032:7;4061:5;4050:16;;3995:77;;;:::o;4078:122::-;4151:24;4169:5;4151:24;:::i;:::-;4144:5;4141:35;4131:63;;4190:1;4187;4180:12;4131:63;4078:122;:::o;4206:139::-;4252:5;4290:6;4277:20;4268:29;;4306:33;4333:5;4306:33;:::i;:::-;4206:139;;;;:::o;4351:474::-;4419:6;4427;4476:2;4464:9;4455:7;4451:23;4447:32;4444:119;;;4482:79;;:::i;:::-;4444:119;4602:1;4627:53;4672:7;4663:6;4652:9;4648:22;4627:53;:::i;:::-;4617:63;;4573:117;4729:2;4755:53;4800:7;4791:6;4780:9;4776:22;4755:53;:::i;:::-;4745:63;;4700:118;4351:474;;;;;:::o;4831:109::-;4912:21;4927:5;4912:21;:::i;:::-;4907:3;4900:34;4831:109;;:::o;4946:210::-;5033:4;5071:2;5060:9;5056:18;5048:26;;5084:65;5146:1;5135:9;5131:17;5122:6;5084:65;:::i;:::-;4946:210;;;;:::o;5162:323::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:50;5460:7;5451:6;5440:9;5436:22;5418:50;:::i;:::-;5408:60;;5364:114;5162:323;;;;:::o;5491:118::-;5578:24;5596:5;5578:24;:::i;:::-;5573:3;5566:37;5491:118;;:::o;5615:222::-;5708:4;5746:2;5735:9;5731:18;5723:26;;5759:71;5827:1;5816:9;5812:17;5803:6;5759:71;:::i;:::-;5615:222;;;;:::o;5843:619::-;5920:6;5928;5936;5985:2;5973:9;5964:7;5960:23;5956:32;5953:119;;;5991:79;;:::i;:::-;5953:119;6111:1;6136:53;6181:7;6172:6;6161:9;6157:22;6136:53;:::i;:::-;6126:63;;6082:117;6238:2;6264:53;6309:7;6300:6;6289:9;6285:22;6264:53;:::i;:::-;6254:63;;6209:118;6366:2;6392:53;6437:7;6428:6;6417:9;6413:22;6392:53;:::i;:::-;6382:63;;6337:118;5843:619;;;;;:::o;6468:86::-;6503:7;6543:4;6536:5;6532:16;6521:27;;6468:86;;;:::o;6560:112::-;6643:22;6659:5;6643:22;:::i;:::-;6638:3;6631:35;6560:112;;:::o;6678:214::-;6767:4;6805:2;6794:9;6790:18;6782:26;;6818:67;6882:1;6871:9;6867:17;6858:6;6818:67;:::i;:::-;6678:214;;;;:::o;6898:329::-;6957:6;7006:2;6994:9;6985:7;6981:23;6977:32;6974:119;;;7012:79;;:::i;:::-;6974:119;7132:1;7157:53;7202:7;7193:6;7182:9;7178:22;7157:53;:::i;:::-;7147:63;;7103:117;6898:329;;;;:::o;7233:118::-;7320:24;7338:5;7320:24;:::i;:::-;7315:3;7308:37;7233:118;;:::o;7357:222::-;7450:4;7488:2;7477:9;7473:18;7465:26;;7501:71;7569:1;7558:9;7554:17;7545:6;7501:71;:::i;:::-;7357:222;;;;:::o;7585:329::-;7644:6;7693:2;7681:9;7672:7;7668:23;7664:32;7661:119;;;7699:79;;:::i;:::-;7661:119;7819:1;7844:53;7889:7;7880:6;7869:9;7865:22;7844:53;:::i;:::-;7834:63;;7790:117;7585:329;;;;:::o;7920:474::-;7988:6;7996;8045:2;8033:9;8024:7;8020:23;8016:32;8013:119;;;8051:79;;:::i;:::-;8013:119;8171:1;8196:53;8241:7;8232:6;8221:9;8217:22;8196:53;:::i;:::-;8186:63;;8142:117;8298:2;8324:53;8369:7;8360:6;8349:9;8345:22;8324:53;:::i;:::-;8314:63;;8269:118;7920:474;;;;;:::o;8400:::-;8468:6;8476;8525:2;8513:9;8504:7;8500:23;8496:32;8493:119;;;8531:79;;:::i;:::-;8493:119;8651:1;8676:53;8721:7;8712:6;8701:9;8697:22;8676:53;:::i;:::-;8666:63;;8622:117;8778:2;8804:53;8849:7;8840:6;8829:9;8825:22;8804:53;:::i;:::-;8794:63;;8749:118;8400:474;;;;;:::o;8880:182::-;9020:34;9016:1;9008:6;9004:14;8997:58;8880:182;:::o;9068:366::-;9210:3;9231:67;9295:2;9290:3;9231:67;:::i;:::-;9224:74;;9307:93;9396:3;9307:93;:::i;:::-;9425:2;9420:3;9416:12;9409:19;;9068:366;;;:::o;9440:419::-;9606:4;9644:2;9633:9;9629:18;9621:26;;9693:9;9687:4;9683:20;9679:1;9668:9;9664:17;9657:47;9721:131;9847:4;9721:131;:::i;:::-;9713:139;;9440:419;;;:::o;9865:180::-;9913:77;9910:1;9903:88;10010:4;10007:1;10000:15;10034:4;10031:1;10024:15;10051:320;10095:6;10132:1;10126:4;10122:12;10112:22;;10179:1;10173:4;10169:12;10200:18;10190:81;;10256:4;10248:6;10244:17;10234:27;;10190:81;10318:2;10310:6;10307:14;10287:18;10284:38;10281:84;;;10337:18;;:::i;:::-;10281:84;10102:269;10051:320;;;:::o;10377:222::-;10517:34;10513:1;10505:6;10501:14;10494:58;10586:5;10581:2;10573:6;10569:15;10562:30;10377:222;:::o;10605:366::-;10747:3;10768:67;10832:2;10827:3;10768:67;:::i;:::-;10761:74;;10844:93;10933:3;10844:93;:::i;:::-;10962:2;10957:3;10953:12;10946:19;;10605:366;;;:::o;10977:419::-;11143:4;11181:2;11170:9;11166:18;11158:26;;11230:9;11224:4;11220:20;11216:1;11205:9;11201:17;11194:47;11258:131;11384:4;11258:131;:::i;:::-;11250:139;;10977:419;;;:::o;11402:173::-;11542:25;11538:1;11530:6;11526:14;11519:49;11402:173;:::o;11581:366::-;11723:3;11744:67;11808:2;11803:3;11744:67;:::i;:::-;11737:74;;11820:93;11909:3;11820:93;:::i;:::-;11938:2;11933:3;11929:12;11922:19;;11581:366;;;:::o;11953:419::-;12119:4;12157:2;12146:9;12142:18;12134:26;;12206:9;12200:4;12196:20;12192:1;12181:9;12177:17;12170:47;12234:131;12360:4;12234:131;:::i;:::-;12226:139;;11953:419;;;:::o;12378:180::-;12426:77;12423:1;12416:88;12523:4;12520:1;12513:15;12547:4;12544:1;12537:15;12564:180;12612:77;12609:1;12602:88;12709:4;12706:1;12699:15;12733:4;12730:1;12723:15;12750:185;12790:1;12807:20;12825:1;12807:20;:::i;:::-;12802:25;;12841:20;12859:1;12841:20;:::i;:::-;12836:25;;12880:1;12870:35;;12885:18;;:::i;:::-;12870:35;12927:1;12924;12920:9;12915:14;;12750:185;;;;:::o;12941:222::-;13081:34;13077:1;13069:6;13065:14;13058:58;13150:5;13145:2;13137:6;13133:15;13126:30;12941:222;:::o;13169:366::-;13311:3;13332:67;13396:2;13391:3;13332:67;:::i;:::-;13325:74;;13408:93;13497:3;13408:93;:::i;:::-;13526:2;13521:3;13517:12;13510:19;;13169:366;;;:::o;13541:419::-;13707:4;13745:2;13734:9;13730:18;13722:26;;13794:9;13788:4;13784:20;13780:1;13769:9;13765:17;13758:47;13822:131;13948:4;13822:131;:::i;:::-;13814:139;;13541:419;;;:::o;13966:180::-;14106:32;14102:1;14094:6;14090:14;14083:56;13966:180;:::o;14152:366::-;14294:3;14315:67;14379:2;14374:3;14315:67;:::i;:::-;14308:74;;14391:93;14480:3;14391:93;:::i;:::-;14509:2;14504:3;14500:12;14493:19;;14152:366;;;:::o;14524:419::-;14690:4;14728:2;14717:9;14713:18;14705:26;;14777:9;14771:4;14767:20;14763:1;14752:9;14748:17;14741:47;14805:131;14931:4;14805:131;:::i;:::-;14797:139;;14524:419;;;:::o;14949:168::-;15089:20;15085:1;15077:6;15073:14;15066:44;14949:168;:::o;15123:366::-;15265:3;15286:67;15350:2;15345:3;15286:67;:::i;:::-;15279:74;;15362:93;15451:3;15362:93;:::i;:::-;15480:2;15475:3;15471:12;15464:19;;15123:366;;;:::o;15495:419::-;15661:4;15699:2;15688:9;15684:18;15676:26;;15748:9;15742:4;15738:20;15734:1;15723:9;15719:17;15712:47;15776:131;15902:4;15776:131;:::i;:::-;15768:139;;15495:419;;;:::o;15920:225::-;16060:34;16056:1;16048:6;16044:14;16037:58;16129:8;16124:2;16116:6;16112:15;16105:33;15920:225;:::o;16151:366::-;16293:3;16314:67;16378:2;16373:3;16314:67;:::i;:::-;16307:74;;16390:93;16479:3;16390:93;:::i;:::-;16508:2;16503:3;16499:12;16492:19;;16151:366;;;:::o;16523:419::-;16689:4;16727:2;16716:9;16712:18;16704:26;;16776:9;16770:4;16766:20;16762:1;16751:9;16747:17;16740:47;16804:131;16930:4;16804:131;:::i;:::-;16796:139;;16523:419;;;:::o;16948:348::-;16988:7;17011:20;17029:1;17011:20;:::i;:::-;17006:25;;17045:20;17063:1;17045:20;:::i;:::-;17040:25;;17233:1;17165:66;17161:74;17158:1;17155:81;17150:1;17143:9;17136:17;17132:105;17129:131;;;17240:18;;:::i;:::-;17129:131;17288:1;17285;17281:9;17270:20;;16948:348;;;;:::o;17302:220::-;17442:34;17438:1;17430:6;17426:14;17419:58;17511:3;17506:2;17498:6;17494:15;17487:28;17302:220;:::o;17528:366::-;17670:3;17691:67;17755:2;17750:3;17691:67;:::i;:::-;17684:74;;17767:93;17856:3;17767:93;:::i;:::-;17885:2;17880:3;17876:12;17869:19;;17528:366;;;:::o;17900:419::-;18066:4;18104:2;18093:9;18089:18;18081:26;;18153:9;18147:4;18143:20;18139:1;18128:9;18124:17;18117:47;18181:131;18307:4;18181:131;:::i;:::-;18173:139;;17900:419;;;:::o;18325:224::-;18465:34;18461:1;18453:6;18449:14;18442:58;18534:7;18529:2;18521:6;18517:15;18510:32;18325:224;:::o;18555:366::-;18697:3;18718:67;18782:2;18777:3;18718:67;:::i;:::-;18711:74;;18794:93;18883:3;18794:93;:::i;:::-;18912:2;18907:3;18903:12;18896:19;;18555:366;;;:::o;18927:419::-;19093:4;19131:2;19120:9;19116:18;19108:26;;19180:9;19174:4;19170:20;19166:1;19155:9;19151:17;19144:47;19208:131;19334:4;19208:131;:::i;:::-;19200:139;;18927:419;;;:::o;19352:222::-;19492:34;19488:1;19480:6;19476:14;19469:58;19561:5;19556:2;19548:6;19544:15;19537:30;19352:222;:::o;19580:366::-;19722:3;19743:67;19807:2;19802:3;19743:67;:::i;:::-;19736:74;;19819:93;19908:3;19819:93;:::i;:::-;19937:2;19932:3;19928:12;19921:19;;19580:366;;;:::o;19952:419::-;20118:4;20156:2;20145:9;20141:18;20133:26;;20205:9;20199:4;20195:20;20191:1;20180:9;20176:17;20169:47;20233:131;20359:4;20233:131;:::i;:::-;20225:139;;19952:419;;;:::o;20377:225::-;20517:34;20513:1;20505:6;20501:14;20494:58;20586:8;20581:2;20573:6;20569:15;20562:33;20377:225;:::o;20608:366::-;20750:3;20771:67;20835:2;20830:3;20771:67;:::i;:::-;20764:74;;20847:93;20936:3;20847:93;:::i;:::-;20965:2;20960:3;20956:12;20949:19;;20608:366;;;:::o;20980:419::-;21146:4;21184:2;21173:9;21169:18;21161:26;;21233:9;21227:4;21223:20;21219:1;21208:9;21204:17;21197:47;21261:131;21387:4;21261:131;:::i;:::-;21253:139;;20980:419;;;:::o;21405:223::-;21545:34;21541:1;21533:6;21529:14;21522:58;21614:6;21609:2;21601:6;21597:15;21590:31;21405:223;:::o;21634:366::-;21776:3;21797:67;21861:2;21856:3;21797:67;:::i;:::-;21790:74;;21873:93;21962:3;21873:93;:::i;:::-;21991:2;21986:3;21982:12;21975:19;;21634:366;;;:::o;22006:419::-;22172:4;22210:2;22199:9;22195:18;22187:26;;22259:9;22253:4;22249:20;22245:1;22234:9;22230:17;22223:47;22287:131;22413:4;22287:131;:::i;:::-;22279:139;;22006:419;;;:::o;22431:227::-;22571:34;22567:1;22559:6;22555:14;22548:58;22640:10;22635:2;22627:6;22623:15;22616:35;22431:227;:::o;22664:366::-;22806:3;22827:67;22891:2;22886:3;22827:67;:::i;:::-;22820:74;;22903:93;22992:3;22903:93;:::i;:::-;23021:2;23016:3;23012:12;23005:19;;22664:366;;;:::o;23036:419::-;23202:4;23240:2;23229:9;23225:18;23217:26;;23289:9;23283:4;23279:20;23275:1;23264:9;23260:17;23253:47;23317:131;23443:4;23317:131;:::i;:::-;23309:139;;23036:419;;;:::o;23461:162::-;23601:14;23597:1;23589:6;23585:14;23578:38;23461:162;:::o;23629:366::-;23771:3;23792:67;23856:2;23851:3;23792:67;:::i;:::-;23785:74;;23868:93;23957:3;23868:93;:::i;:::-;23986:2;23981:3;23977:12;23970:19;;23629:366;;;:::o;24001:419::-;24167:4;24205:2;24194:9;24190:18;24182:26;;24254:9;24248:4;24244:20;24240:1;24229:9;24225:17;24218:47;24282:131;24408:4;24282:131;:::i;:::-;24274:139;;24001:419;;;:::o;24426:179::-;24566:31;24562:1;24554:6;24550:14;24543:55;24426:179;:::o;24611:366::-;24753:3;24774:67;24838:2;24833:3;24774:67;:::i;:::-;24767:74;;24850:93;24939:3;24850:93;:::i;:::-;24968:2;24963:3;24959:12;24952:19;;24611:366;;;:::o;24983:419::-;25149:4;25187:2;25176:9;25172:18;25164:26;;25236:9;25230:4;25226:20;25222:1;25211:9;25207:17;25200:47;25264:131;25390:4;25264:131;:::i;:::-;25256:139;;24983:419;;;:::o;25408:176::-;25548:28;25544:1;25536:6;25532:14;25525:52;25408:176;:::o;25590:366::-;25732:3;25753:67;25817:2;25812:3;25753:67;:::i;:::-;25746:74;;25829:93;25918:3;25829:93;:::i;:::-;25947:2;25942:3;25938:12;25931:19;;25590:366;;;:::o;25962:419::-;26128:4;26166:2;26155:9;26151:18;26143:26;;26215:9;26209:4;26205:20;26201:1;26190:9;26186:17;26179:47;26243:131;26369:4;26243:131;:::i;:::-;26235:139;;25962:419;;;:::o;26387:180::-;26527:32;26523:1;26515:6;26511:14;26504:56;26387:180;:::o;26573:366::-;26715:3;26736:67;26800:2;26795:3;26736:67;:::i;:::-;26729:74;;26812:93;26901:3;26812:93;:::i;:::-;26930:2;26925:3;26921:12;26914:19;;26573:366;;;:::o;26945:419::-;27111:4;27149:2;27138:9;27134:18;27126:26;;27198:9;27192:4;27188:20;27184:1;27173:9;27169:17;27162:47;27226:131;27352:4;27226:131;:::i;:::-;27218:139;;26945:419;;;:::o;27370:191::-;27410:4;27430:20;27448:1;27430:20;:::i;:::-;27425:25;;27464:20;27482:1;27464:20;:::i;:::-;27459:25;;27503:1;27500;27497:8;27494:34;;;27508:18;;:::i;:::-;27494:34;27553:1;27550;27546:9;27538:17;;27370:191;;;;:::o;27567:305::-;27607:3;27626:20;27644:1;27626:20;:::i;:::-;27621:25;;27660:20;27678:1;27660:20;:::i;:::-;27655:25;;27814:1;27746:66;27742:74;27739:1;27736:81;27733:107;;;27820:18;;:::i;:::-;27733:107;27864:1;27861;27857:9;27850:16;;27567:305;;;;:::o;27878:177::-;28018:29;28014:1;28006:6;28002:14;27995:53;27878:177;:::o;28061:366::-;28203:3;28224:67;28288:2;28283:3;28224:67;:::i;:::-;28217:74;;28300:93;28389:3;28300:93;:::i;:::-;28418:2;28413:3;28409:12;28402:19;;28061:366;;;:::o;28433:419::-;28599:4;28637:2;28626:9;28622:18;28614:26;;28686:9;28680:4;28676:20;28672:1;28661:9;28657:17;28650:47;28714:131;28840:4;28714:131;:::i;:::-;28706:139;;28433:419;;;:::o;28858:442::-;29007:4;29045:2;29034:9;29030:18;29022:26;;29058:71;29126:1;29115:9;29111:17;29102:6;29058:71;:::i;:::-;29139:72;29207:2;29196:9;29192:18;29183:6;29139:72;:::i;:::-;29221;29289:2;29278:9;29274:18;29265:6;29221:72;:::i;:::-;28858:442;;;;;;:::o;29306:180::-;29354:77;29351:1;29344:88;29451:4;29448:1;29441:15;29475:4;29472:1;29465:15;29492:180;29540:77;29537:1;29530:88;29637:4;29634:1;29627:15;29661:4;29658:1;29651:15;29678:143;29735:5;29766:6;29760:13;29751:22;;29782:33;29809:5;29782:33;:::i;:::-;29678:143;;;;:::o;29827:351::-;29897:6;29946:2;29934:9;29925:7;29921:23;29917:32;29914:119;;;29952:79;;:::i;:::-;29914:119;30072:1;30097:64;30153:7;30144:6;30133:9;30129:22;30097:64;:::i;:::-;30087:74;;30043:128;29827:351;;;;:::o;30184:85::-;30229:7;30258:5;30247:16;;30184:85;;;:::o;30275:158::-;30333:9;30366:61;30384:42;30393:32;30419:5;30393:32;:::i;:::-;30384:42;:::i;:::-;30366:61;:::i;:::-;30353:74;;30275:158;;;:::o;30439:147::-;30534:45;30573:5;30534:45;:::i;:::-;30529:3;30522:58;30439:147;;:::o;30592:114::-;30659:6;30693:5;30687:12;30677:22;;30592:114;;;:::o;30712:184::-;30811:11;30845:6;30840:3;30833:19;30885:4;30880:3;30876:14;30861:29;;30712:184;;;;:::o;30902:132::-;30969:4;30992:3;30984:11;;31022:4;31017:3;31013:14;31005:22;;30902:132;;;:::o;31040:108::-;31117:24;31135:5;31117:24;:::i;:::-;31112:3;31105:37;31040:108;;:::o;31154:179::-;31223:10;31244:46;31286:3;31278:6;31244:46;:::i;:::-;31322:4;31317:3;31313:14;31299:28;;31154:179;;;;:::o;31339:113::-;31409:4;31441;31436:3;31432:14;31424:22;;31339:113;;;:::o;31488:732::-;31607:3;31636:54;31684:5;31636:54;:::i;:::-;31706:86;31785:6;31780:3;31706:86;:::i;:::-;31699:93;;31816:56;31866:5;31816:56;:::i;:::-;31895:7;31926:1;31911:284;31936:6;31933:1;31930:13;31911:284;;;32012:6;32006:13;32039:63;32098:3;32083:13;32039:63;:::i;:::-;32032:70;;32125:60;32178:6;32125:60;:::i;:::-;32115:70;;31971:224;31958:1;31955;31951:9;31946:14;;31911:284;;;31915:14;32211:3;32204:10;;31612:608;;;31488:732;;;;:::o;32226:831::-;32489:4;32527:3;32516:9;32512:19;32504:27;;32541:71;32609:1;32598:9;32594:17;32585:6;32541:71;:::i;:::-;32622:80;32698:2;32687:9;32683:18;32674:6;32622:80;:::i;:::-;32749:9;32743:4;32739:20;32734:2;32723:9;32719:18;32712:48;32777:108;32880:4;32871:6;32777:108;:::i;:::-;32769:116;;32895:72;32963:2;32952:9;32948:18;32939:6;32895:72;:::i;:::-;32977:73;33045:3;33034:9;33030:19;33021:6;32977:73;:::i;:::-;32226:831;;;;;;;;:::o;33063:807::-;33312:4;33350:3;33339:9;33335:19;33327:27;;33364:71;33432:1;33421:9;33417:17;33408:6;33364:71;:::i;:::-;33445:72;33513:2;33502:9;33498:18;33489:6;33445:72;:::i;:::-;33527:80;33603:2;33592:9;33588:18;33579:6;33527:80;:::i;:::-;33617;33693:2;33682:9;33678:18;33669:6;33617:80;:::i;:::-;33707:73;33775:3;33764:9;33760:19;33751:6;33707:73;:::i;:::-;33790;33858:3;33847:9;33843:19;33834:6;33790:73;:::i;:::-;33063:807;;;;;;;;;:::o;33876:143::-;33933:5;33964:6;33958:13;33949:22;;33980:33;34007:5;33980:33;:::i;:::-;33876:143;;;;:::o;34025:663::-;34113:6;34121;34129;34178:2;34166:9;34157:7;34153:23;34149:32;34146:119;;;34184:79;;:::i;:::-;34146:119;34304:1;34329:64;34385:7;34376:6;34365:9;34361:22;34329:64;:::i;:::-;34319:74;;34275:128;34442:2;34468:64;34524:7;34515:6;34504:9;34500:22;34468:64;:::i;:::-;34458:74;;34413:129;34581:2;34607:64;34663:7;34654:6;34643:9;34639:22;34607:64;:::i;:::-;34597:74;;34552:129;34025:663;;;;;:::o

Swarm Source

ipfs://0a427a496be0d25183229a87b3e9dc514ac8bf095296494d5edd773904c28163
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.