ETH Price: $3,408.41 (-1.86%)
Gas: 5 Gwei

Token

RFK24 (RFK24)
 

Overview

Max Total Supply

240,000,000,000 RFK24

Holders

71

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,071,964,640.570223956 RFK24

Value
$0.00
0xa2a885e529005336a91708e00ddb52e654c9a357
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:
RFK24_Token

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-10-05
*/

// Token: RFK24
// Website: https://www.rfk24.io
// TG Channel: https://t.me/RFK24_coin
// Twitter Account https://twitter.com/RFK24_coin

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

library SafeMath {
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            // 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 (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

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

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

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

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

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 swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

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

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

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

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

interface IDividendDistributor {
    function setShare(address shareholder, uint256 amount) external;

    function deposit() external payable;

    function claimDividend(address _user) external;

    function getPaidEarnings(
        address shareholder
    ) external view returns (uint256);

    function getUnpaidEarnings(
        address shareholder
    ) external view returns (uint256);

    function totalDistributed() external view returns (uint256);
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;
    address public token;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    address[] public shareholders;
    mapping(address => uint256) public shareholderIndexes;
    mapping(address => uint256) public shareholderClaims;

    mapping(address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;
    uint256 currentIndex;

    modifier onlyToken() {
        require(msg.sender == token);
        _;
    }

    constructor() {
        token = msg.sender;
    }

    function setShare(
        address shareholder,
        uint256 amount
    ) external override onlyToken {
        if (shares[shareholder].amount > 0) {
            distributeDividend(shareholder);
        }

        if (amount > 0 && shares[shareholder].amount == 0) {
            addShareholder(shareholder);
        } else if (amount == 0 && shares[shareholder].amount > 0) {
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(
            shares[shareholder].amount
        );
    }

    function deposit() external payable override onlyToken {
        totalDividends = totalDividends.add(msg.value);
        dividendsPerShare = dividendsPerShare.add(
            dividendsPerShareAccuracyFactor.mul(msg.value).div(totalShares)
        );
    }

    function distributeDividend(address shareholder) internal {
        if (shares[shareholder].amount == 0) {
            return;
        }

        uint256 amount = getUnpaidEarnings(shareholder);
        if (amount > 0) {
            totalDistributed = totalDistributed.add(amount);
            payable(shareholder).transfer(amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder]
                .totalRealised
                .add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(
                shares[shareholder].amount
            );
        }
    }

    function claimDividend(address _user) external {
        distributeDividend(_user);
    }

    function getPaidEarnings(
        address shareholder
    ) public view returns (uint256) {
        return shares[shareholder].totalRealised;
    }

    function getUnpaidEarnings(
        address shareholder
    ) public view returns (uint256) {
        if (shares[shareholder].amount == 0) {
            return 0;
        }

        uint256 shareholderTotalDividends = getCumulativeDividends(
            shares[shareholder].amount
        );
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if (shareholderTotalDividends <= shareholderTotalExcluded) {
            return 0;
        }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(
        uint256 share
    ) internal view returns (uint256) {
        return
            share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[
            shareholders.length - 1
        ];
        shareholderIndexes[
            shareholders[shareholders.length - 1]
        ] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

// main contract
contract RFK24_Token is IERC20Extended, Ownable {
    using SafeMath for uint256;

    string private constant _name = "RFK24";
    string private constant _symbol = "RFK24";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 240_000_000_000 * 10 ** _decimals;

    DividendDistributor public distributor;
    IDexRouter public router;
    address public pair;
    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    uint256 _reflectionPercent = 25_00;
    uint256 _liquidityPercent = 10_00;
    uint256 _marketingPercent = 65_00;

    uint256 public totalBuyFee = 5_00;
    uint256 public totalSellFee = 5_00;
    uint256 public percentDivider = 100_00;


    uint256 public maxWalletAmount = (_totalSupply * 2) / 100;
    uint256 public vultureFee = 99_99;
    uint256 public vulturingTime = 2 minutes;
    uint256 public launchedAt;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private isGood;
    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isWalletExmpt;
    mapping(address => bool) public isDividendExempt;

    uint256 public swapThreshold = (_totalSupply * 5) / 1000;
    bool public swapEnabled;
    bool public trading;
    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);

    constructor() Ownable() {
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x8D8a9E2D2E2d4DCa697491d4bdcC308BBc62A281;
        distributor = new DividendDistributor();

        isFeeExempt[autoLiquidityReceiver] = true;
        isFeeExempt[address(this)] = true;
        isDividendExempt[address(this)] = true;
        isGood[autoLiquidityReceiver] = true;
        isGood[address(this)] = true;
        isWalletExmpt[autoLiquidityReceiver] = true;
        isWalletExmpt[address(this)] = true;

        _balances[address(this)] = _totalSupply;
        emit Transfer(address(0), address(this), _totalSupply);
    }

    receive() external payable {}

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

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

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

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

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

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

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, _totalSupply);
    }

    function transfer(
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != _totalSupply) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (!isGood[sender] && !isGood[recipient]) {
            // trading disable till launch
            if (!trading) {
                require(
                    pair != sender && pair != recipient,
                    "Trading is disable"
                );
            }
            // anti vultures
            if (
                block.timestamp < launchedAt + vulturingTime &&
                sender != address(router)
            ) {
                _balances[sender] = _balances[sender].sub(
                    amount,
                    "Insufficient Balance"
                );

                uint256 feeAmount = amount.mul(vultureFee).div(percentDivider);
                _balances[recipient] = _balances[recipient].add(amount.sub(feeAmount));
                emit Transfer(sender, recipient, amount.sub(feeAmount));
                takeFee(sender, feeAmount);
                return true;
            }
        }

        if (!isWalletExmpt[recipient]) {
            require(
                balanceOf(recipient).add(amount) <= maxWalletAmount,
                "Max Wallet limit exceeds"
            );
        }

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (shouldSwapBack()) {
            swapBack();
        }

        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );

        uint256 amountReceived;
        if (
            isFeeExempt[sender] ||
            isFeeExempt[recipient] ||
            (sender != pair && recipient != pair)
        ) {
            amountReceived = amount;
        } else {
            uint256 feeAmount;
            if (sender == pair) {
                feeAmount = amount.mul(totalBuyFee).div(percentDivider);
                amountReceived = amount.sub(feeAmount);
                takeFee(sender, feeAmount);
            } else {
                feeAmount = amount.mul(totalSellFee).div(percentDivider);
                amountReceived = amount.sub(feeAmount);
                takeFee(sender, feeAmount);
            }
        }

        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);

        if (!isDividendExempt[sender]) {
            try distributor.setShare(sender, _balances[sender]) {} catch {}
        }
        if (!isDividendExempt[recipient]) {
            try
                distributor.setShare(recipient, _balances[recipient])
            {} catch {}
        }
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 feeAmount) internal {
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 amountToLiquify = swapThreshold
            .mul(_liquidityPercent)
            .div(percentDivider)
            .div(2);

        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);
        _allowances[address(this)][address(router)] = _totalSupply;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

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

        uint256 feePercentDivider = percentDivider.sub(
            _liquidityPercent.div(2)
        );

        uint256 amountEthLiquidity = amountBNB
            .mul(_liquidityPercent)
            .div(feePercentDivider)
            .div(2);

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountEthLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountEthLiquidity, amountToLiquify);
        }

        uint256 amountEthReflection = amountBNB.mul(_reflectionPercent).div(
            feePercentDivider
        );
        if (amountEthReflection > 0) {
            try distributor.deposit{value: amountEthReflection}() {} catch {}
        }

        if (address(this).balance > 0) {
            payable(marketingFeeReceiver).transfer(address(this).balance);
        }
    }

    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }

    function getPaidDividend(
        address shareholder
    ) public view returns (uint256) {
        return distributor.getPaidEarnings(shareholder);
    }

    function getUnpaidDividend(
        address shareholder
    ) external view returns (uint256) {
        return distributor.getUnpaidEarnings(shareholder);
    }

    function getTotalDistributedDividend() external view returns (uint256) {
        return distributor.totalDistributed();
    }

    function setIsDividendExempt(
        address holder,
        bool exempt
    ) external onlyOwner {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if (exempt) {
            distributor.setShare(holder, 0);
        } else {
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function addLp(address _router) external payable onlyOwner {
        router = IDexRouter(_router);
        pair = IDexFactory(router.factory()).createPair(
            address(this),
            router.WETH()
        );
        isFeeExempt[address(router)] = true;
        isDividendExempt[pair] = true;
        isDividendExempt[address(router)] = true;
        isWalletExmpt[pair] = true;
        isWalletExmpt[address(router)] = true;
        _allowances[address(this)][address(router)] = _totalSupply;
        router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20Extended(pair).approve(address(router), type(uint).max);
    }

    function enableTrading() external onlyOwner {
        require(!trading, "Already enabled");
        trading = true;
        swapEnabled = true;
        launchedAt = block.timestamp;
    }

    function removeStuckEth(uint256 amount) external {
        require(msg.sender == marketingFeeReceiver, "Invalid caller");
        payable(marketingFeeReceiver).transfer(amount);
    }

    function setIsGood(
        address[] memory holders,
        bool exempt
    ) external onlyOwner {
        for (uint256 i; i < holders.length; i++) {
            isGood[holders[i]] = exempt;
        }
    }
    
    function setFeeReceivers(
        address _autoLiquidityReceiver,
        address _marketingFeeReceiver
    ) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function setSwapBackSettings(
        bool _enabled,
        uint256 _amount
    ) external onlyOwner {
        require(swapThreshold > 0);
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"addLp","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getPaidDividend","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDistributedDividend","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidDividend","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletExmpt","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":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","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":"uint256","name":"amount","type":"uint256"}],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsGood","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"vultureFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vulturingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526109c46006556103e86007556119646008556101f46009556101f4600a55612710600b55606460026009600a6200003c919062000802565b6437e11d60006200004e919062000853565b6200005a919062000853565b620000669190620008e3565b600c5561270f600d556078600e556103e860056009600a62000089919062000802565b6437e11d60006200009b919062000853565b620000a7919062000853565b620000b39190620008e3565b601655348015620000c357600080fd5b50620000d46200065260201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a333600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738d8a9e2d2e2d4dca697491d4bdcc308bbc62a281600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405162000232906200065a565b604051809103906000f0801580156200024f573d6000803e3d6000fd5b50600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160136000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a6200056e919062000802565b6437e11d600062000580919062000853565b601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000623919062000802565b6437e11d600062000635919062000853565b6040516200064491906200092c565b60405180910390a362000949565b600033905090565b61133180620054e683390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006f657808604811115620006ce57620006cd62000668565b5b6001851615620006de5780820291505b8081029050620006ee8562000697565b9450620006ae565b94509492505050565b600082620007115760019050620007e4565b81620007215760009050620007e4565b81600181146200073a576002811462000745576200077b565b6001915050620007e4565b60ff8411156200075a576200075962000668565b5b8360020a91508482111562000774576200077362000668565b5b50620007e4565b5060208310610133831016604e8410600b8410161715620007b55782820a905083811115620007af57620007ae62000668565b5b620007e4565b620007c48484846001620006a4565b92509050818404811115620007de57620007dd62000668565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200080f82620007eb565b91506200081c83620007f5565b92506200084b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006ff565b905092915050565b60006200086082620007eb565b91506200086d83620007eb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008a957620008a862000668565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008f082620007eb565b9150620008fd83620007eb565b92508262000910576200090f620008b4565b5b828204905092915050565b6200092681620007eb565b82525050565b60006020820190506200094360008301846200091b565b92915050565b614b8d80620009596000396000f3fe6080604052600436106102555760003560e01c80638a8c523c11610139578063c78a9be5116100b6578063ec44acf21161007a578063ec44acf2146108f4578063f0fc6bca1461091f578063f2fde38b14610936578063f708a64f1461095f578063f887ea4014610988578063fe6f1b05146109b35761025c565b8063c78a9be51461080d578063ca33e64c14610838578063dd62ed3e14610863578063df20fd49146108a0578063e96fada2146108c95761025c565b8063a8aa1b31116100fd578063a8aa1b3114610724578063a9059cbb1461074f578063aa4bde281461078c578063bf56b371146107b7578063bfe10928146107e25761025c565b80638a8c523c146106635780638da5cb5b1461067a57806395d89b41146106a55780639d9241ec146106d0578063a4b45c00146106fb5761025c565b80634355855a116101d257806370a082311161019657806370a0823114610543578063715018a61461058057806380222f8d1461059757806386cb8fb1146105c057806386db0c05146105fd578063893c9f2b1461063a5761025c565b80634355855a1461043657806349bc3feb14610473578063571ac8b0146104b057806359b107b9146104ed5780636ddd1713146105185761025c565b8063182f11b011610219578063182f11b01461033b5780631961cee21461036657806323b872dd14610391578063313ce567146103ce5780633f4218e0146103f95761025c565b80630445b6671461026157806306f200031461028c57806306fdde03146102a8578063095ea7b3146102d357806318160ddd146103105761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109de565b6040516102839190613b91565b60405180910390f35b6102a660048036038101906102a19190613c1e565b6109e4565b005b3480156102b457600080fd5b506102bd61115c565b6040516102ca9190613ce4565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190613d32565b611199565b6040516103079190613d8d565b60405180910390f35b34801561031c57600080fd5b5061032561128b565b6040516103329190613b91565b60405180910390f35b34801561034757600080fd5b506103506112b0565b60405161035d9190613b91565b60405180910390f35b34801561037257600080fd5b5061037b6112b6565b6040516103889190613b91565b60405180910390f35b34801561039d57600080fd5b506103b860048036038101906103b39190613da8565b61134e565b6040516103c59190613d8d565b60405180910390f35b3480156103da57600080fd5b506103e361154b565b6040516103f09190613e17565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190613c1e565b611554565b60405161042d9190613d8d565b60405180910390f35b34801561044257600080fd5b5061045d60048036038101906104589190613c1e565b611574565b60405161046a9190613d8d565b60405180910390f35b34801561047f57600080fd5b5061049a60048036038101906104959190613c1e565b611594565b6040516104a79190613b91565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d29190613c1e565b611639565b6040516104e49190613d8d565b60405180910390f35b3480156104f957600080fd5b50610502611669565b60405161050f9190613b91565b60405180910390f35b34801561052457600080fd5b5061052d61166f565b60405161053a9190613d8d565b60405180910390f35b34801561054f57600080fd5b5061056a60048036038101906105659190613c1e565b611682565b6040516105779190613b91565b60405180910390f35b34801561058c57600080fd5b506105956116cb565b005b3480156105a357600080fd5b506105be60048036038101906105b99190613fa6565b61181e565b005b3480156105cc57600080fd5b506105e760048036038101906105e29190613c1e565b611948565b6040516105f49190613d8d565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190613c1e565b611968565b6040516106319190613b91565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190614002565b611a0d565b005b34801561066f57600080fd5b50610678611b09565b005b34801561068657600080fd5b5061068f611c2d565b60405161069c919061403e565b60405180910390f35b3480156106b157600080fd5b506106ba611c56565b6040516106c79190613ce4565b60405180910390f35b3480156106dc57600080fd5b506106e5611c93565b6040516106f29190613b91565b60405180910390f35b34801561070757600080fd5b50610722600480360381019061071d9190614059565b611c99565b005b34801561073057600080fd5b50610739611db4565b604051610746919061403e565b60405180910390f35b34801561075b57600080fd5b5061077660048036038101906107719190613d32565b611dda565b6040516107839190613d8d565b60405180910390f35b34801561079857600080fd5b506107a1611def565b6040516107ae9190613b91565b60405180910390f35b3480156107c357600080fd5b506107cc611df5565b6040516107d99190613b91565b60405180910390f35b3480156107ee57600080fd5b506107f7611dfb565b60405161080491906140f8565b60405180910390f35b34801561081957600080fd5b50610822611e21565b60405161082f9190613b91565b60405180910390f35b34801561084457600080fd5b5061084d611e27565b60405161085a919061403e565b60405180910390f35b34801561086f57600080fd5b5061088a60048036038101906108859190614059565b611e4d565b6040516108979190613b91565b60405180910390f35b3480156108ac57600080fd5b506108c760048036038101906108c29190614113565b611ed4565b005b3480156108d557600080fd5b506108de611f9d565b6040516108eb919061403e565b60405180910390f35b34801561090057600080fd5b50610909611fc3565b6040516109169190613d8d565b60405180910390f35b34801561092b57600080fd5b50610934611fd6565b005b34801561094257600080fd5b5061095d60048036038101906109589190613c1e565b612065565b005b34801561096b57600080fd5b5061098660048036038101906109819190614153565b612227565b005b34801561099457600080fd5b5061099d612514565b6040516109aa91906141b4565b60405180910390f35b3480156109bf57600080fd5b506109c861253a565b6040516109d59190613b91565b60405180910390f35b60165481565b6109ec612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a709061421b565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4b9190614250565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf89190614250565b6040518363ffffffff1660e01b8152600401610c1592919061427d565b6020604051808303816000875af1158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c589190614250565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160136000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160156000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160156000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a610f089190614408565b6437e11d6000610f189190614453565b601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061100330611682565b60008061100e611c2d565b426040518863ffffffff1660e01b8152600401611030969594939291906144e8565b60606040518083038185885af115801561104e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611073919061455e565b505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111159291906145b1565b6020604051808303816000875af1158015611134573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115891906145ef565b5050565b60606040518060400160405280600581526020017f52464b3234000000000000000000000000000000000000000000000000000000815250905090565b600081601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112799190613b91565b60405180910390a36001905092915050565b60006009600a61129b9190614408565b6437e11d60006112ab9190614453565b905090565b600d5481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efca2eed6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611325573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611349919061461c565b905090565b60006009600a61135e9190614408565b6437e11d600061136e9190614453565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611537576114b6826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125489092919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61154284848461259d565b90509392505050565b60006009905090565b60136020528060005260406000206000915054906101000a900460ff1681565b60156020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352f48158836040518263ffffffff1660e01b81526004016115f1919061403e565b602060405180830381865afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611632919061461c565b9050919050565b6000611662826009600a61164d9190614408565b6437e11d600061165d9190614453565b611199565b9050919050565b60095481565b601760009054906101000a900460ff1681565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116d3612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117579061421b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611826612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118aa9061421b565b60405180910390fd5b60005b82518110156119435781601260008584815181106118d7576118d6614649565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061193b90614678565b9150506118b6565b505050565b60146020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b81526004016119c5919061403e565b602060405180830381865afa1580156119e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a06919061461c565b9050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a949061470d565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b05573d6000803e3d6000fd5b5050565b611b11612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b959061421b565b60405180910390fd5b601760019054906101000a900460ff1615611bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be590614779565b60405180910390fd5b6001601760016101000a81548160ff0219169083151502179055506001601760006101000a81548160ff02191690831515021790555042600f81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f52464b3234000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b611ca1612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d259061421b565b60405180910390fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611de733848461259d565b905092915050565b600c5481565b600f5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611edc612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f609061421b565b60405180910390fd5b600060165411611f7857600080fd5b81601760006101000a81548160ff021916908315150217905550806016819055505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760019054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401612031919061403e565b600060405180830381600087803b15801561204b57600080fd5b505af115801561205f573d6000803e3d6000fd5b50505050565b61206d612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f19061421b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561216a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121619061480b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61222f612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b39061421b565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156123465750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61234f57600080fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561244157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b815260040161240a92919061482b565b600060405180830381600087803b15801561242457600080fd5b505af1158015612438573d6000803e3d6000fd5b50505050612510565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016124dd9291906145b1565b600060405180830381600087803b1580156124f757600080fd5b505af115801561250b573d6000803e3d6000fd5b505050505b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600033905090565b6000838311158290612590576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125879190613ce4565b60405180910390fd5b5082840390509392505050565b6000601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126435750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129e557601760019054906101000a900460ff16612748578373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561270857508273ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273e906148a0565b60405180910390fd5b5b600e54600f5461275891906148c0565b421080156127b45750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156129e457612842826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125489092919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006128b0600b546128a2600d548661314390919063ffffffff16565b61315990919063ffffffff16565b90506129166128c8828561316f90919063ffffffff16565b601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461318590919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6129bb848761316f90919063ffffffff16565b6040516129c89190613b91565b60405180910390a36129da858261319b565b600191505061313c565b5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a9657600c54612a5483612a4686611682565b61318590919063ffffffff16565b1115612a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8c90614962565b60405180910390fd5b5b601760029054906101000a900460ff1615612abd57612ab6848484613299565b905061313c565b612ac561346c565b15612ad357612ad2613543565b5b612b5c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125489092919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c425750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612cf55750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612cf45750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b15612d0257829050612df6565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415612da957612d83600b54612d756009548761314390919063ffffffff16565b61315990919063ffffffff16565b9050612d98818561316f90919063ffffffff16565b9150612da4868261319b565b612df4565b612dd2600b54612dc4600a548761314390919063ffffffff16565b61315990919063ffffffff16565b9050612de7818561316f90919063ffffffff16565b9150612df3868261319b565b5b505b612e4881601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461318590919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ee89190613b91565b60405180910390a3601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661301357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612fdd9291906145b1565b600060405180830381600087803b158015612ff757600080fd5b505af1925050508015613008575060015b61301157613012565b5b5b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661313657600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016131009291906145b1565b600060405180830381600087803b15801561311a57600080fd5b505af192505050801561312b575060015b61313457613135565b5b5b60019150505b9392505050565b600081836131519190614453565b905092915050565b6000818361316791906149b1565b905092915050565b6000818361317d91906149e2565b905092915050565b6000818361319391906148c0565b905092915050565b6131ed81601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461318590919063ffffffff16565b601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161328d9190613b91565b60405180910390a35050565b6000613324826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125489092919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133b982601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461318590919063ffffffff16565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134599190613b91565b60405180910390a3600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156134d95750601760029054906101000a900460ff16155b80156134f15750601760009054906101000a900460ff165b801561353e5750601654601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760026101000a81548160ff021916908315150217905550600061359e6002613590600b5461358260075460165461314390919063ffffffff16565b61315990919063ffffffff16565b61315990919063ffffffff16565b905060006135b78260165461316f90919063ffffffff16565b90506009600a6135c79190614408565b6437e11d60006135d79190614453565b601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561369657613695613e37565b5b6040519080825280602002602001820160405280156136c45781602001602082028036833780820191505090505b50905030816000815181106136dc576136db614649565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a79190614250565b816001815181106137bb576137ba614649565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161385e959493929190614ad4565b600060405180830381600087803b15801561387857600080fd5b505af115801561388c573d6000803e3d6000fd5b5050505060006138a5824761316f90919063ffffffff16565b905060006138d36138c2600260075461315990919063ffffffff16565b600b5461316f90919063ffffffff16565b905060006139116002613903846138f56007548861314390919063ffffffff16565b61315990919063ffffffff16565b61315990919063ffffffff16565b90506000871115613a2557600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308a600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016139a5969594939291906144e8565b60606040518083038185885af11580156139c3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906139e8919061455e565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068188604051613a1c929190614b2e565b60405180910390a15b6000613a4e83613a406006548761314390919063ffffffff16565b61315990919063ffffffff16565b90506000811115613ae057600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015613ac357600080fd5b505af193505050508015613ad5575060015b613ade57613adf565b5b5b6000471115613b5357600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015613b51573d6000803e3d6000fd5b505b50505050505050506000601760026101000a81548160ff021916908315150217905550565b6000819050919050565b613b8b81613b78565b82525050565b6000602082019050613ba66000830184613b82565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613beb82613bc0565b9050919050565b613bfb81613be0565b8114613c0657600080fd5b50565b600081359050613c1881613bf2565b92915050565b600060208284031215613c3457613c33613bb6565b5b6000613c4284828501613c09565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c85578082015181840152602081019050613c6a565b83811115613c94576000848401525b50505050565b6000601f19601f8301169050919050565b6000613cb682613c4b565b613cc08185613c56565b9350613cd0818560208601613c67565b613cd981613c9a565b840191505092915050565b60006020820190508181036000830152613cfe8184613cab565b905092915050565b613d0f81613b78565b8114613d1a57600080fd5b50565b600081359050613d2c81613d06565b92915050565b60008060408385031215613d4957613d48613bb6565b5b6000613d5785828601613c09565b9250506020613d6885828601613d1d565b9150509250929050565b60008115159050919050565b613d8781613d72565b82525050565b6000602082019050613da26000830184613d7e565b92915050565b600080600060608486031215613dc157613dc0613bb6565b5b6000613dcf86828701613c09565b9350506020613de086828701613c09565b9250506040613df186828701613d1d565b9150509250925092565b600060ff82169050919050565b613e1181613dfb565b82525050565b6000602082019050613e2c6000830184613e08565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613e6f82613c9a565b810181811067ffffffffffffffff82111715613e8e57613e8d613e37565b5b80604052505050565b6000613ea1613bac565b9050613ead8282613e66565b919050565b600067ffffffffffffffff821115613ecd57613ecc613e37565b5b602082029050602081019050919050565b600080fd5b6000613ef6613ef184613eb2565b613e97565b90508083825260208201905060208402830185811115613f1957613f18613ede565b5b835b81811015613f425780613f2e8882613c09565b845260208401935050602081019050613f1b565b5050509392505050565b600082601f830112613f6157613f60613e32565b5b8135613f71848260208601613ee3565b91505092915050565b613f8381613d72565b8114613f8e57600080fd5b50565b600081359050613fa081613f7a565b92915050565b60008060408385031215613fbd57613fbc613bb6565b5b600083013567ffffffffffffffff811115613fdb57613fda613bbb565b5b613fe785828601613f4c565b9250506020613ff885828601613f91565b9150509250929050565b60006020828403121561401857614017613bb6565b5b600061402684828501613d1d565b91505092915050565b61403881613be0565b82525050565b6000602082019050614053600083018461402f565b92915050565b600080604083850312156140705761406f613bb6565b5b600061407e85828601613c09565b925050602061408f85828601613c09565b9150509250929050565b6000819050919050565b60006140be6140b96140b484613bc0565b614099565b613bc0565b9050919050565b60006140d0826140a3565b9050919050565b60006140e2826140c5565b9050919050565b6140f2816140d7565b82525050565b600060208201905061410d60008301846140e9565b92915050565b6000806040838503121561412a57614129613bb6565b5b600061413885828601613f91565b925050602061414985828601613d1d565b9150509250929050565b6000806040838503121561416a57614169613bb6565b5b600061417885828601613c09565b925050602061418985828601613f91565b9150509250929050565b600061419e826140c5565b9050919050565b6141ae81614193565b82525050565b60006020820190506141c960008301846141a5565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614205602083613c56565b9150614210826141cf565b602082019050919050565b60006020820190508181036000830152614234816141f8565b9050919050565b60008151905061424a81613bf2565b92915050565b60006020828403121561426657614265613bb6565b5b60006142748482850161423b565b91505092915050565b6000604082019050614292600083018561402f565b61429f602083018461402f565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561432c57808604811115614308576143076142a6565b5b60018516156143175780820291505b8081029050614325856142d5565b94506142ec565b94509492505050565b6000826143455760019050614401565b816143535760009050614401565b81600181146143695760028114614373576143a2565b6001915050614401565b60ff841115614385576143846142a6565b5b8360020a91508482111561439c5761439b6142a6565b5b50614401565b5060208310610133831016604e8410600b84101617156143d75782820a9050838111156143d2576143d16142a6565b5b614401565b6143e484848460016142e2565b925090508184048111156143fb576143fa6142a6565b5b81810290505b9392505050565b600061441382613b78565b915061441e83613dfb565b925061444b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614335565b905092915050565b600061445e82613b78565b915061446983613b78565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144a2576144a16142a6565b5b828202905092915050565b6000819050919050565b60006144d26144cd6144c8846144ad565b614099565b613b78565b9050919050565b6144e2816144b7565b82525050565b600060c0820190506144fd600083018961402f565b61450a6020830188613b82565b61451760408301876144d9565b61452460608301866144d9565b614531608083018561402f565b61453e60a0830184613b82565b979650505050505050565b60008151905061455881613d06565b92915050565b60008060006060848603121561457757614576613bb6565b5b600061458586828701614549565b935050602061459686828701614549565b92505060406145a786828701614549565b9150509250925092565b60006040820190506145c6600083018561402f565b6145d36020830184613b82565b9392505050565b6000815190506145e981613f7a565b92915050565b60006020828403121561460557614604613bb6565b5b6000614613848285016145da565b91505092915050565b60006020828403121561463257614631613bb6565b5b600061464084828501614549565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061468382613b78565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156146b6576146b56142a6565b5b600182019050919050565b7f496e76616c69642063616c6c6572000000000000000000000000000000000000600082015250565b60006146f7600e83613c56565b9150614702826146c1565b602082019050919050565b60006020820190508181036000830152614726816146ea565b9050919050565b7f416c726561647920656e61626c65640000000000000000000000000000000000600082015250565b6000614763600f83613c56565b915061476e8261472d565b602082019050919050565b6000602082019050818103600083015261479281614756565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006147f5602683613c56565b915061480082614799565b604082019050919050565b60006020820190508181036000830152614824816147e8565b9050919050565b6000604082019050614840600083018561402f565b61484d60208301846144d9565b9392505050565b7f54726164696e672069732064697361626c650000000000000000000000000000600082015250565b600061488a601283613c56565b915061489582614854565b602082019050919050565b600060208201905081810360008301526148b98161487d565b9050919050565b60006148cb82613b78565b91506148d683613b78565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561490b5761490a6142a6565b5b828201905092915050565b7f4d61782057616c6c6574206c696d697420657863656564730000000000000000600082015250565b600061494c601883613c56565b915061495782614916565b602082019050919050565b6000602082019050818103600083015261497b8161493f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006149bc82613b78565b91506149c783613b78565b9250826149d7576149d6614982565b5b828204905092915050565b60006149ed82613b78565b91506149f883613b78565b925082821015614a0b57614a0a6142a6565b5b828203905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a4b81613be0565b82525050565b6000614a5d8383614a42565b60208301905092915050565b6000602082019050919050565b6000614a8182614a16565b614a8b8185614a21565b9350614a9683614a32565b8060005b83811015614ac7578151614aae8882614a51565b9750614ab983614a69565b925050600181019050614a9a565b5085935050505092915050565b600060a082019050614ae96000830188613b82565b614af660208301876144d9565b8181036040830152614b088186614a76565b9050614b17606083018561402f565b614b246080830184613b82565b9695505050505050565b6000604082019050614b436000830185613b82565b614b506020830184613b82565b939250505056fea264697066735822122071ce505beb648c389b607fc62dd574e47785fd8dc3338bf54bf82210399a057e64736f6c634300080a003360806040526ec097ce7bc90715b34b9f100000000060095534801561002357600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112be806100736000396000f3fe6080604052600436106100e85760003560e01c8063997664d71161008a578063d4fda1f211610059578063d4fda1f2146102fd578063e2d2e2191461033a578063efca2eed14610365578063fc0c546a14610390576100e8565b8063997664d71461024c578063ab377daa14610277578063ce7c2ac2146102b4578063d0e30db0146102f3576100e8565b806328fd3198116100c657806328fd31981461016a5780633a98ef39146101a757806352f48158146101d257806366817df51461020f576100e8565b806311ce023d146100ed57806314b6ca961461011857806315f7e05e14610141575b600080fd5b3480156100f957600080fd5b506101026103bb565b60405161010f9190610f12565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a9190610fbc565b6103c1565b005b34801561014d57600080fd5b5061016860048036038101906101639190610ffc565b610680565b005b34801561017657600080fd5b50610191600480360381019061018c9190610ffc565b61068c565b60405161019e9190610f12565b60405180910390f35b3480156101b357600080fd5b506101bc6107a6565b6040516101c99190610f12565b60405180910390f35b3480156101de57600080fd5b506101f960048036038101906101f49190610ffc565b6107ac565b6040516102069190610f12565b60405180910390f35b34801561021b57600080fd5b5061023660048036038101906102319190610ffc565b6107f8565b6040516102439190610f12565b60405180910390f35b34801561025857600080fd5b50610261610810565b60405161026e9190610f12565b60405180910390f35b34801561028357600080fd5b5061029e60048036038101906102999190611029565b610816565b6040516102ab9190611065565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d69190610ffc565b610855565b6040516102ea93929190611080565b60405180910390f35b6102fb61087f565b005b34801561030957600080fd5b50610324600480360381019061031f9190610ffc565b610937565b6040516103319190610f12565b60405180910390f35b34801561034657600080fd5b5061034f61094f565b60405161035c9190610f12565b60405180910390f35b34801561037157600080fd5b5061037a610955565b6040516103879190610f12565b60405180910390f35b34801561039c57600080fd5b506103a561095b565b6040516103b29190611065565b60405180910390f35b60095481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461041957600080fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561046e5761046d8261097f565b5b6000811180156104c057506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104d3576104ce82610bbd565b610535565b60008114801561052557506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156105345761053382610c6c565b5b5b61059e81610590600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600554610e6f90919063ffffffff16565b610e8590919063ffffffff16565b60058190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610636600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610e9b565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b6106898161097f565b50565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106e157600090506107a1565b600061072e600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610e9b565b90506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050808211610789576000925050506107a1565b61079c8183610e6f90919063ffffffff16565b925050505b919050565b60055481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b60036020528060005260406000206000915090505481565b60065481565b6001818154811061082657600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d757600080fd5b6108ec34600654610e8590919063ffffffff16565b60068190555061092f61091e60055461091034600954610ecd90919063ffffffff16565b610ee390919063ffffffff16565b600854610e8590919063ffffffff16565b600881905550565b60026020528060005260406000206000915090505481565b60085481565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156109cf57610bba565b60006109da8261068c565b90506000811115610bb8576109fa81600754610e8590919063ffffffff16565b6007819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a46573d6000803e3d6000fd5b5042600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ae081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610e8590919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610b71600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610e9b565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600180549050600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6001808080549050610c7e91906110e6565b81548110610c8f57610c8e61111a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110610d0d57610d0c61111a565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260006001808080549050610dab91906110e6565b81548110610dbc57610dbb61111a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001805480610e3757610e36611149565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b60008183610e7d91906110e6565b905092915050565b60008183610e939190611178565b905092915050565b6000610ec6600954610eb860085485610ecd90919063ffffffff16565b610ee390919063ffffffff16565b9050919050565b60008183610edb91906111ce565b905092915050565b60008183610ef19190611257565b905092915050565b6000819050919050565b610f0c81610ef9565b82525050565b6000602082019050610f276000830184610f03565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f5d82610f32565b9050919050565b610f6d81610f52565b8114610f7857600080fd5b50565b600081359050610f8a81610f64565b92915050565b610f9981610ef9565b8114610fa457600080fd5b50565b600081359050610fb681610f90565b92915050565b60008060408385031215610fd357610fd2610f2d565b5b6000610fe185828601610f7b565b9250506020610ff285828601610fa7565b9150509250929050565b60006020828403121561101257611011610f2d565b5b600061102084828501610f7b565b91505092915050565b60006020828403121561103f5761103e610f2d565b5b600061104d84828501610fa7565b91505092915050565b61105f81610f52565b82525050565b600060208201905061107a6000830184611056565b92915050565b60006060820190506110956000830186610f03565b6110a26020830185610f03565b6110af6040830184610f03565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006110f182610ef9565b91506110fc83610ef9565b92508282101561110f5761110e6110b7565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061118382610ef9565b915061118e83610ef9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156111c3576111c26110b7565b5b828201905092915050565b60006111d982610ef9565b91506111e483610ef9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561121d5761121c6110b7565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061126282610ef9565b915061126d83610ef9565b92508261127d5761127c611228565b5b82820490509291505056fea264697066735822122033b149397c455eccc224c8a97dbac7b31289791f44b3eea774c26bc0d297bb3264736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106102555760003560e01c80638a8c523c11610139578063c78a9be5116100b6578063ec44acf21161007a578063ec44acf2146108f4578063f0fc6bca1461091f578063f2fde38b14610936578063f708a64f1461095f578063f887ea4014610988578063fe6f1b05146109b35761025c565b8063c78a9be51461080d578063ca33e64c14610838578063dd62ed3e14610863578063df20fd49146108a0578063e96fada2146108c95761025c565b8063a8aa1b31116100fd578063a8aa1b3114610724578063a9059cbb1461074f578063aa4bde281461078c578063bf56b371146107b7578063bfe10928146107e25761025c565b80638a8c523c146106635780638da5cb5b1461067a57806395d89b41146106a55780639d9241ec146106d0578063a4b45c00146106fb5761025c565b80634355855a116101d257806370a082311161019657806370a0823114610543578063715018a61461058057806380222f8d1461059757806386cb8fb1146105c057806386db0c05146105fd578063893c9f2b1461063a5761025c565b80634355855a1461043657806349bc3feb14610473578063571ac8b0146104b057806359b107b9146104ed5780636ddd1713146105185761025c565b8063182f11b011610219578063182f11b01461033b5780631961cee21461036657806323b872dd14610391578063313ce567146103ce5780633f4218e0146103f95761025c565b80630445b6671461026157806306f200031461028c57806306fdde03146102a8578063095ea7b3146102d357806318160ddd146103105761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109de565b6040516102839190613b91565b60405180910390f35b6102a660048036038101906102a19190613c1e565b6109e4565b005b3480156102b457600080fd5b506102bd61115c565b6040516102ca9190613ce4565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190613d32565b611199565b6040516103079190613d8d565b60405180910390f35b34801561031c57600080fd5b5061032561128b565b6040516103329190613b91565b60405180910390f35b34801561034757600080fd5b506103506112b0565b60405161035d9190613b91565b60405180910390f35b34801561037257600080fd5b5061037b6112b6565b6040516103889190613b91565b60405180910390f35b34801561039d57600080fd5b506103b860048036038101906103b39190613da8565b61134e565b6040516103c59190613d8d565b60405180910390f35b3480156103da57600080fd5b506103e361154b565b6040516103f09190613e17565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190613c1e565b611554565b60405161042d9190613d8d565b60405180910390f35b34801561044257600080fd5b5061045d60048036038101906104589190613c1e565b611574565b60405161046a9190613d8d565b60405180910390f35b34801561047f57600080fd5b5061049a60048036038101906104959190613c1e565b611594565b6040516104a79190613b91565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d29190613c1e565b611639565b6040516104e49190613d8d565b60405180910390f35b3480156104f957600080fd5b50610502611669565b60405161050f9190613b91565b60405180910390f35b34801561052457600080fd5b5061052d61166f565b60405161053a9190613d8d565b60405180910390f35b34801561054f57600080fd5b5061056a60048036038101906105659190613c1e565b611682565b6040516105779190613b91565b60405180910390f35b34801561058c57600080fd5b506105956116cb565b005b3480156105a357600080fd5b506105be60048036038101906105b99190613fa6565b61181e565b005b3480156105cc57600080fd5b506105e760048036038101906105e29190613c1e565b611948565b6040516105f49190613d8d565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190613c1e565b611968565b6040516106319190613b91565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190614002565b611a0d565b005b34801561066f57600080fd5b50610678611b09565b005b34801561068657600080fd5b5061068f611c2d565b60405161069c919061403e565b60405180910390f35b3480156106b157600080fd5b506106ba611c56565b6040516106c79190613ce4565b60405180910390f35b3480156106dc57600080fd5b506106e5611c93565b6040516106f29190613b91565b60405180910390f35b34801561070757600080fd5b50610722600480360381019061071d9190614059565b611c99565b005b34801561073057600080fd5b50610739611db4565b604051610746919061403e565b60405180910390f35b34801561075b57600080fd5b5061077660048036038101906107719190613d32565b611dda565b6040516107839190613d8d565b60405180910390f35b34801561079857600080fd5b506107a1611def565b6040516107ae9190613b91565b60405180910390f35b3480156107c357600080fd5b506107cc611df5565b6040516107d99190613b91565b60405180910390f35b3480156107ee57600080fd5b506107f7611dfb565b60405161080491906140f8565b60405180910390f35b34801561081957600080fd5b50610822611e21565b60405161082f9190613b91565b60405180910390f35b34801561084457600080fd5b5061084d611e27565b60405161085a919061403e565b60405180910390f35b34801561086f57600080fd5b5061088a60048036038101906108859190614059565b611e4d565b6040516108979190613b91565b60405180910390f35b3480156108ac57600080fd5b506108c760048036038101906108c29190614113565b611ed4565b005b3480156108d557600080fd5b506108de611f9d565b6040516108eb919061403e565b60405180910390f35b34801561090057600080fd5b50610909611fc3565b6040516109169190613d8d565b60405180910390f35b34801561092b57600080fd5b50610934611fd6565b005b34801561094257600080fd5b5061095d60048036038101906109589190613c1e565b612065565b005b34801561096b57600080fd5b5061098660048036038101906109819190614153565b612227565b005b34801561099457600080fd5b5061099d612514565b6040516109aa91906141b4565b60405180910390f35b3480156109bf57600080fd5b506109c861253a565b6040516109d59190613b91565b60405180910390f35b60165481565b6109ec612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a709061421b565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4b9190614250565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf89190614250565b6040518363ffffffff1660e01b8152600401610c1592919061427d565b6020604051808303816000875af1158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c589190614250565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160136000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160156000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160156000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a610f089190614408565b6437e11d6000610f189190614453565b601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061100330611682565b60008061100e611c2d565b426040518863ffffffff1660e01b8152600401611030969594939291906144e8565b60606040518083038185885af115801561104e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611073919061455e565b505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111159291906145b1565b6020604051808303816000875af1158015611134573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115891906145ef565b5050565b60606040518060400160405280600581526020017f52464b3234000000000000000000000000000000000000000000000000000000815250905090565b600081601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112799190613b91565b60405180910390a36001905092915050565b60006009600a61129b9190614408565b6437e11d60006112ab9190614453565b905090565b600d5481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efca2eed6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611325573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611349919061461c565b905090565b60006009600a61135e9190614408565b6437e11d600061136e9190614453565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611537576114b6826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125489092919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61154284848461259d565b90509392505050565b60006009905090565b60136020528060005260406000206000915054906101000a900460ff1681565b60156020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352f48158836040518263ffffffff1660e01b81526004016115f1919061403e565b602060405180830381865afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611632919061461c565b9050919050565b6000611662826009600a61164d9190614408565b6437e11d600061165d9190614453565b611199565b9050919050565b60095481565b601760009054906101000a900460ff1681565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116d3612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117579061421b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611826612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118aa9061421b565b60405180910390fd5b60005b82518110156119435781601260008584815181106118d7576118d6614649565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061193b90614678565b9150506118b6565b505050565b60146020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b81526004016119c5919061403e565b602060405180830381865afa1580156119e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a06919061461c565b9050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a949061470d565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b05573d6000803e3d6000fd5b5050565b611b11612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b959061421b565b60405180910390fd5b601760019054906101000a900460ff1615611bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be590614779565b60405180910390fd5b6001601760016101000a81548160ff0219169083151502179055506001601760006101000a81548160ff02191690831515021790555042600f81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f52464b3234000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b611ca1612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d259061421b565b60405180910390fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611de733848461259d565b905092915050565b600c5481565b600f5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611edc612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f609061421b565b60405180910390fd5b600060165411611f7857600080fd5b81601760006101000a81548160ff021916908315150217905550806016819055505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760019054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401612031919061403e565b600060405180830381600087803b15801561204b57600080fd5b505af115801561205f573d6000803e3d6000fd5b50505050565b61206d612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f19061421b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561216a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121619061480b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61222f612540565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b39061421b565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156123465750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61234f57600080fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561244157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b815260040161240a92919061482b565b600060405180830381600087803b15801561242457600080fd5b505af1158015612438573d6000803e3d6000fd5b50505050612510565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016124dd9291906145b1565b600060405180830381600087803b1580156124f757600080fd5b505af115801561250b573d6000803e3d6000fd5b505050505b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600033905090565b6000838311158290612590576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125879190613ce4565b60405180910390fd5b5082840390509392505050565b6000601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126435750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129e557601760019054906101000a900460ff16612748578373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561270857508273ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273e906148a0565b60405180910390fd5b5b600e54600f5461275891906148c0565b421080156127b45750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156129e457612842826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125489092919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006128b0600b546128a2600d548661314390919063ffffffff16565b61315990919063ffffffff16565b90506129166128c8828561316f90919063ffffffff16565b601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461318590919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6129bb848761316f90919063ffffffff16565b6040516129c89190613b91565b60405180910390a36129da858261319b565b600191505061313c565b5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a9657600c54612a5483612a4686611682565b61318590919063ffffffff16565b1115612a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8c90614962565b60405180910390fd5b5b601760029054906101000a900460ff1615612abd57612ab6848484613299565b905061313c565b612ac561346c565b15612ad357612ad2613543565b5b612b5c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125489092919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c425750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612cf55750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612cf45750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b15612d0257829050612df6565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415612da957612d83600b54612d756009548761314390919063ffffffff16565b61315990919063ffffffff16565b9050612d98818561316f90919063ffffffff16565b9150612da4868261319b565b612df4565b612dd2600b54612dc4600a548761314390919063ffffffff16565b61315990919063ffffffff16565b9050612de7818561316f90919063ffffffff16565b9150612df3868261319b565b5b505b612e4881601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461318590919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ee89190613b91565b60405180910390a3601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661301357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612fdd9291906145b1565b600060405180830381600087803b158015612ff757600080fd5b505af1925050508015613008575060015b61301157613012565b5b5b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661313657600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016131009291906145b1565b600060405180830381600087803b15801561311a57600080fd5b505af192505050801561312b575060015b61313457613135565b5b5b60019150505b9392505050565b600081836131519190614453565b905092915050565b6000818361316791906149b1565b905092915050565b6000818361317d91906149e2565b905092915050565b6000818361319391906148c0565b905092915050565b6131ed81601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461318590919063ffffffff16565b601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161328d9190613b91565b60405180910390a35050565b6000613324826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125489092919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133b982601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461318590919063ffffffff16565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134599190613b91565b60405180910390a3600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156134d95750601760029054906101000a900460ff16155b80156134f15750601760009054906101000a900460ff165b801561353e5750601654601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760026101000a81548160ff021916908315150217905550600061359e6002613590600b5461358260075460165461314390919063ffffffff16565b61315990919063ffffffff16565b61315990919063ffffffff16565b905060006135b78260165461316f90919063ffffffff16565b90506009600a6135c79190614408565b6437e11d60006135d79190614453565b601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561369657613695613e37565b5b6040519080825280602002602001820160405280156136c45781602001602082028036833780820191505090505b50905030816000815181106136dc576136db614649565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a79190614250565b816001815181106137bb576137ba614649565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161385e959493929190614ad4565b600060405180830381600087803b15801561387857600080fd5b505af115801561388c573d6000803e3d6000fd5b5050505060006138a5824761316f90919063ffffffff16565b905060006138d36138c2600260075461315990919063ffffffff16565b600b5461316f90919063ffffffff16565b905060006139116002613903846138f56007548861314390919063ffffffff16565b61315990919063ffffffff16565b61315990919063ffffffff16565b90506000871115613a2557600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308a600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016139a5969594939291906144e8565b60606040518083038185885af11580156139c3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906139e8919061455e565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068188604051613a1c929190614b2e565b60405180910390a15b6000613a4e83613a406006548761314390919063ffffffff16565b61315990919063ffffffff16565b90506000811115613ae057600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015613ac357600080fd5b505af193505050508015613ad5575060015b613ade57613adf565b5b5b6000471115613b5357600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015613b51573d6000803e3d6000fd5b505b50505050505050506000601760026101000a81548160ff021916908315150217905550565b6000819050919050565b613b8b81613b78565b82525050565b6000602082019050613ba66000830184613b82565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613beb82613bc0565b9050919050565b613bfb81613be0565b8114613c0657600080fd5b50565b600081359050613c1881613bf2565b92915050565b600060208284031215613c3457613c33613bb6565b5b6000613c4284828501613c09565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c85578082015181840152602081019050613c6a565b83811115613c94576000848401525b50505050565b6000601f19601f8301169050919050565b6000613cb682613c4b565b613cc08185613c56565b9350613cd0818560208601613c67565b613cd981613c9a565b840191505092915050565b60006020820190508181036000830152613cfe8184613cab565b905092915050565b613d0f81613b78565b8114613d1a57600080fd5b50565b600081359050613d2c81613d06565b92915050565b60008060408385031215613d4957613d48613bb6565b5b6000613d5785828601613c09565b9250506020613d6885828601613d1d565b9150509250929050565b60008115159050919050565b613d8781613d72565b82525050565b6000602082019050613da26000830184613d7e565b92915050565b600080600060608486031215613dc157613dc0613bb6565b5b6000613dcf86828701613c09565b9350506020613de086828701613c09565b9250506040613df186828701613d1d565b9150509250925092565b600060ff82169050919050565b613e1181613dfb565b82525050565b6000602082019050613e2c6000830184613e08565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613e6f82613c9a565b810181811067ffffffffffffffff82111715613e8e57613e8d613e37565b5b80604052505050565b6000613ea1613bac565b9050613ead8282613e66565b919050565b600067ffffffffffffffff821115613ecd57613ecc613e37565b5b602082029050602081019050919050565b600080fd5b6000613ef6613ef184613eb2565b613e97565b90508083825260208201905060208402830185811115613f1957613f18613ede565b5b835b81811015613f425780613f2e8882613c09565b845260208401935050602081019050613f1b565b5050509392505050565b600082601f830112613f6157613f60613e32565b5b8135613f71848260208601613ee3565b91505092915050565b613f8381613d72565b8114613f8e57600080fd5b50565b600081359050613fa081613f7a565b92915050565b60008060408385031215613fbd57613fbc613bb6565b5b600083013567ffffffffffffffff811115613fdb57613fda613bbb565b5b613fe785828601613f4c565b9250506020613ff885828601613f91565b9150509250929050565b60006020828403121561401857614017613bb6565b5b600061402684828501613d1d565b91505092915050565b61403881613be0565b82525050565b6000602082019050614053600083018461402f565b92915050565b600080604083850312156140705761406f613bb6565b5b600061407e85828601613c09565b925050602061408f85828601613c09565b9150509250929050565b6000819050919050565b60006140be6140b96140b484613bc0565b614099565b613bc0565b9050919050565b60006140d0826140a3565b9050919050565b60006140e2826140c5565b9050919050565b6140f2816140d7565b82525050565b600060208201905061410d60008301846140e9565b92915050565b6000806040838503121561412a57614129613bb6565b5b600061413885828601613f91565b925050602061414985828601613d1d565b9150509250929050565b6000806040838503121561416a57614169613bb6565b5b600061417885828601613c09565b925050602061418985828601613f91565b9150509250929050565b600061419e826140c5565b9050919050565b6141ae81614193565b82525050565b60006020820190506141c960008301846141a5565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614205602083613c56565b9150614210826141cf565b602082019050919050565b60006020820190508181036000830152614234816141f8565b9050919050565b60008151905061424a81613bf2565b92915050565b60006020828403121561426657614265613bb6565b5b60006142748482850161423b565b91505092915050565b6000604082019050614292600083018561402f565b61429f602083018461402f565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561432c57808604811115614308576143076142a6565b5b60018516156143175780820291505b8081029050614325856142d5565b94506142ec565b94509492505050565b6000826143455760019050614401565b816143535760009050614401565b81600181146143695760028114614373576143a2565b6001915050614401565b60ff841115614385576143846142a6565b5b8360020a91508482111561439c5761439b6142a6565b5b50614401565b5060208310610133831016604e8410600b84101617156143d75782820a9050838111156143d2576143d16142a6565b5b614401565b6143e484848460016142e2565b925090508184048111156143fb576143fa6142a6565b5b81810290505b9392505050565b600061441382613b78565b915061441e83613dfb565b925061444b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614335565b905092915050565b600061445e82613b78565b915061446983613b78565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144a2576144a16142a6565b5b828202905092915050565b6000819050919050565b60006144d26144cd6144c8846144ad565b614099565b613b78565b9050919050565b6144e2816144b7565b82525050565b600060c0820190506144fd600083018961402f565b61450a6020830188613b82565b61451760408301876144d9565b61452460608301866144d9565b614531608083018561402f565b61453e60a0830184613b82565b979650505050505050565b60008151905061455881613d06565b92915050565b60008060006060848603121561457757614576613bb6565b5b600061458586828701614549565b935050602061459686828701614549565b92505060406145a786828701614549565b9150509250925092565b60006040820190506145c6600083018561402f565b6145d36020830184613b82565b9392505050565b6000815190506145e981613f7a565b92915050565b60006020828403121561460557614604613bb6565b5b6000614613848285016145da565b91505092915050565b60006020828403121561463257614631613bb6565b5b600061464084828501614549565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061468382613b78565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156146b6576146b56142a6565b5b600182019050919050565b7f496e76616c69642063616c6c6572000000000000000000000000000000000000600082015250565b60006146f7600e83613c56565b9150614702826146c1565b602082019050919050565b60006020820190508181036000830152614726816146ea565b9050919050565b7f416c726561647920656e61626c65640000000000000000000000000000000000600082015250565b6000614763600f83613c56565b915061476e8261472d565b602082019050919050565b6000602082019050818103600083015261479281614756565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006147f5602683613c56565b915061480082614799565b604082019050919050565b60006020820190508181036000830152614824816147e8565b9050919050565b6000604082019050614840600083018561402f565b61484d60208301846144d9565b9392505050565b7f54726164696e672069732064697361626c650000000000000000000000000000600082015250565b600061488a601283613c56565b915061489582614854565b602082019050919050565b600060208201905081810360008301526148b98161487d565b9050919050565b60006148cb82613b78565b91506148d683613b78565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561490b5761490a6142a6565b5b828201905092915050565b7f4d61782057616c6c6574206c696d697420657863656564730000000000000000600082015250565b600061494c601883613c56565b915061495782614916565b602082019050919050565b6000602082019050818103600083015261497b8161493f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006149bc82613b78565b91506149c783613b78565b9250826149d7576149d6614982565b5b828204905092915050565b60006149ed82613b78565b91506149f883613b78565b925082821015614a0b57614a0a6142a6565b5b828203905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a4b81613be0565b82525050565b6000614a5d8383614a42565b60208301905092915050565b6000602082019050919050565b6000614a8182614a16565b614a8b8185614a21565b9350614a9683614a32565b8060005b83811015614ac7578151614aae8882614a51565b9750614ab983614a69565b925050600181019050614a9a565b5085935050505092915050565b600060a082019050614ae96000830188613b82565b614af660208301876144d9565b8181036040830152614b088186614a76565b9050614b17606083018561402f565b614b246080830184613b82565b9695505050505050565b6000604082019050614b436000830185613b82565b614b506020830184613b82565b939250505056fea264697066735822122071ce505beb648c389b607fc62dd574e47785fd8dc3338bf54bf82210399a057e64736f6c634300080a0033

Deployed Bytecode Sourcemap

10943:12279:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12210:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21306:807;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13524:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13933:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13206:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11758:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20788:127;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14496:419;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13316:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12051:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12153:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20450:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14182:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11564:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12273:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13626:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5926:157;;;;;;;;;;;;;:::i;:::-;;22515:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12101:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20616:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22321:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22121:192;;;;;;;;;;;;;:::i;:::-;;5712:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13418:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11604:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22742:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11328:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14307:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11694:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11845:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11252:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11798:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11354:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13753:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23002:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11397:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12303:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20352:90;;;;;;;;;;;;;:::i;:::-;;6091:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20923:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11297:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11645:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12210:56;;;;:::o;21306:807::-;5849:12;:10;:12::i;:::-;5839:22;;:6;;;;;;;;;;:22;;;5831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21396:7:::1;21376:6;;:28;;;;;;;;;;;;;;;;;;21434:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21422:40;;;21485:4;21505:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21422:107;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21415:4;;:114;;;;;;;;;;;;;;;;;;21571:4;21540:11;:28;21560:6;;;;;;;;;;;21540:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;21611:4;21586:16;:22;21603:4;;;;;;;;;;;21586:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;21662:4;21626:16;:33;21651:6;;;;;;;;;;;21626:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;21699:4;21677:13;:19;21691:4;;;;;;;;;;;21677:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;21747:4;21714:13;:30;21736:6;;;;;;;;;;;21714:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;11162:1;11228:2;:15;;;;:::i;:::-;11210;:33;;;;:::i;:::-;21762:11;:26;21782:4;21762:26;;;;;;;;;;;;;;;:43;21797:6;;;;;;;;;;;21762:43;;;;;;;;;;;;;;;:58;;;;21831:6;;;;;;;;;;;:22;;;21861:9;21894:4;21914:24;21932:4;21914:9;:24::i;:::-;21953:1;21969::::0;21985:7:::1;:5;:7::i;:::-;22007:15;21831:202;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22059:4;;;;;;;;;;;22044:28;;;22081:6;;;;;;;;;;;22090:14;22044:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21306:807:::0;:::o;13524:94::-;13572:13;13605:5;;;;;;;;;;;;;;;;;13598:12;;13524:94;:::o;13933:241::-;14033:4;14085:6;14050:11;:23;14062:10;14050:23;;;;;;;;;;;;;;;:32;14074:7;14050:32;;;;;;;;;;;;;;;:41;;;;14128:7;14107:37;;14116:10;14107:37;;;14137:6;14107:37;;;;;;:::i;:::-;;;;;;;;14162:4;14155:11;;13933:241;;;;:::o;13206:102::-;13261:7;11162:1;11228:2;:15;;;;:::i;:::-;11210;:33;;;;:::i;:::-;13281:19;;13206:102;:::o;11758:33::-;;;;:::o;20788:127::-;20850:7;20877:11;;;;;;;;;;;:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20870:37;;20788:127;:::o;14496:419::-;14630:4;11162:1;11228:2;:15;;;;:::i;:::-;11210;:33;;;;:::i;:::-;14651:11;:19;14663:6;14651:19;;;;;;;;;;;;;;;:31;14671:10;14651:31;;;;;;;;;;;;;;;;:47;14647:201;;14749:87;14803:6;14749:87;;;;;;;;;;;;;;;;;:11;:19;14761:6;14749:19;;;;;;;;;;;;;;;:31;14769:10;14749:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;14715:11;:19;14727:6;14715:19;;;;;;;;;;;;;;;:31;14735:10;14715:31;;;;;;;;;;;;;;;:121;;;;14647:201;14867:40;14881:6;14889:9;14900:6;14867:13;:40::i;:::-;14860:47;;14496:419;;;;;:::o;13316:94::-;13368:5;11162:1;13386:16;;13316:94;:::o;12051:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;12153:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;20450:158::-;20533:7;20560:11;;;;;;;;;;;:27;;;20588:11;20560:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20553:47;;20450:158;;;:::o;14182:117::-;14237:4;14261:30;14269:7;11162:1;11228:2;:15;;;;:::i;:::-;11210;:33;;;;:::i;:::-;14261:7;:30::i;:::-;14254:37;;14182:117;;;:::o;11564:33::-;;;;:::o;12273:23::-;;;;;;;;;;;;;:::o;13626:119::-;13692:7;13719:9;:18;13729:7;13719:18;;;;;;;;;;;;;;;;13712:25;;13626:119;;;:::o;5926:157::-;5849:12;:10;:12::i;:::-;5839:22;;:6;;;;;;;;;;:22;;;5831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6033:1:::1;5996:40;;6017:6;::::0;::::1;;;;;;;;5996:40;;;;;;;;;;;;6072:1;6047:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;5926:157::o:0;22515:215::-;5849:12;:10;:12::i;:::-;5839:22;;:6;;;;;;;;;;:22;;;5831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22633:9:::1;22628:95;22648:7;:14;22644:1;:18;22628:95;;;22705:6;22684;:18;22691:7;22699:1;22691:10;;;;;;;;:::i;:::-;;;;;;;;22684:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;22664:3;;;;;:::i;:::-;;;;22628:95;;;;22515:215:::0;;:::o;12101:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;20616:164::-;20703:7;20730:11;;;;;;;;;;;:29;;;20760:11;20730:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20723:49;;20616:164;;;:::o;22321:186::-;22403:20;;;;;;;;;;;22389:34;;:10;:34;;;22381:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;22461:20;;;;;;;;;;;22453:38;;:46;22492:6;22453:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22321:186;:::o;22121:192::-;5849:12;:10;:12::i;:::-;5839:22;;:6;;;;;;;;;;:22;;;5831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22185:7:::1;;;;;;;;;;;22184:8;22176:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;22233:4;22223:7;;:14;;;;;;;;;;;;;;;;;;22262:4;22248:11;;:18;;;;;;;;;;;;;;;;;;22290:15;22277:10;:28;;;;22121:192::o:0;5712:79::-;5750:7;5777:6;;;;;;;;;;;5770:13;;5712:79;:::o;13418:98::-;13468:13;13501:7;;;;;;;;;;;;;;;;;13494:14;;13418:98;:::o;11604:34::-;;;;:::o;22742:252::-;5849:12;:10;:12::i;:::-;5839:22;;:6;;;;;;;;;;:22;;;5831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22909:22:::1;22885:21;;:46;;;;;;;;;;;;;;;;;;22965:21;22942:20;;:44;;;;;;;;;;;;;;;;;;22742:252:::0;;:::o;11328:19::-;;;;;;;;;;;;;:::o;14307:181::-;14412:4;14436:44;14450:10;14462:9;14473:6;14436:13;:44::i;:::-;14429:51;;14307:181;;;;:::o;11694:57::-;;;;:::o;11845:25::-;;;;:::o;11252:38::-;;;;;;;;;;;;;:::o;11798:40::-;;;;:::o;11354:36::-;;;;;;;;;;;;;:::o;13753:172::-;13862:7;13889:11;:19;13901:6;13889:19;;;;;;;;;;;;;;;:28;13909:7;13889:28;;;;;;;;;;;;;;;;13882:35;;13753:172;;;;:::o;23002:217::-;5849:12;:10;:12::i;:::-;5839:22;;:6;;;;;;;;;;:22;;;5831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23142:1:::1;23126:13;;:17;23118:26;;;::::0;::::1;;23169:8;23155:11;;:22;;;;;;;;;;;;;;;;;;23204:7;23188:13;:23;;;;23002:217:::0;;:::o;11397:35::-;;;;;;;;;;;;;:::o;12303:19::-;;;;;;;;;;;;;:::o;20352:90::-;20397:11;;;;;;;;;;;:25;;;20423:10;20397:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20352:90::o;6091:281::-;5849:12;:10;:12::i;:::-;5839:22;;:6;;;;;;;;;;:22;;;5831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6214:1:::1;6194:22;;:8;:22;;;;6172:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;6327:8;6298:38;;6319:6;::::0;::::1;;;;;;;;6298:38;;;;;;;;;;;;6356:8;6347:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6091:281:::0;:::o;20923:375::-;5849:12;:10;:12::i;:::-;5839:22;;:6;;;;;;;;;;:22;;;5831:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21062:4:::1;21044:23;;:6;:23;;;;:41;;;;;21081:4;;;;;;;;;;;21071:14;;:6;:14;;;;21044:41;21036:50;;;::::0;::::1;;21124:6;21097:16;:24;21114:6;21097:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;21145:6;21141:150;;;21168:11;;;;;;;;;;;:20;;;21189:6;21197:1;21168:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21141:150;;;21232:11;;;;;;;;;;;:20;;;21253:6;21261:9;:17;21271:6;21261:17;;;;;;;;;;;;;;;;21232:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21141:150;20923:375:::0;;:::o;11297:24::-;;;;;;;;;;;;;:::o;11645:38::-;;;;:::o;5048:115::-;5101:15;5144:10;5129:26;;5048:115;:::o;2233:240::-;2353:7;2411:1;2406;:6;;2414:12;2398:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2453:1;2449;:5;2442:12;;2233:240;;;;;:::o;14923:2771::-;15049:4;15071:6;:14;15078:6;15071:14;;;;;;;;;;;;;;;;;;;;;;;;;15070:15;:37;;;;;15090:6;:17;15097:9;15090:17;;;;;;;;;;;;;;;;;;;;;;;;;15089:18;15070:37;15066:951;;;15173:7;;;;;;;;;;;15168:176;;15239:6;15231:14;;:4;;;;;;;;;;;:14;;;;:35;;;;;15257:9;15249:17;;:4;;;;;;;;;;;:17;;;;15231:35;15201:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;15168:176;15441:13;;15428:10;;:26;;;;:::i;:::-;15410:15;:44;:90;;;;;15493:6;;;;;;;;;;;15475:25;;:6;:25;;;;15410:90;15388:618;;;15555:114;15599:6;15555:114;;;;;;;;;;;;;;;;;:9;:17;15565:6;15555:17;;;;;;;;;;;;;;;;:21;;:114;;;;;:::i;:::-;15535:9;:17;15545:6;15535:17;;;;;;;;;;;;;;;:134;;;;15690:17;15710:42;15737:14;;15710:22;15721:10;;15710:6;:10;;:22;;;;:::i;:::-;:26;;:42;;;;:::i;:::-;15690:62;;15794:47;15819:21;15830:9;15819:6;:10;;:21;;;;:::i;:::-;15794:9;:20;15804:9;15794:20;;;;;;;;;;;;;;;;:24;;:47;;;;:::i;:::-;15771:9;:20;15781:9;15771:20;;;;;;;;;;;;;;;:70;;;;15882:9;15865:50;;15874:6;15865:50;;;15893:21;15904:9;15893:6;:10;;:21;;;;:::i;:::-;15865:50;;;;;;:::i;:::-;;;;;;;;15934:26;15942:6;15950:9;15934:7;:26::i;:::-;15986:4;15979:11;;;;;15388:618;15066:951;16034:13;:24;16048:9;16034:24;;;;;;;;;;;;;;;;;;;;;;;;;16029:195;;16137:15;;16101:32;16126:6;16101:20;16111:9;16101;:20::i;:::-;:24;;:32;;;;:::i;:::-;:51;;16075:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;16029:195;16240:6;;;;;;;;;;;16236:87;;;16270:41;16285:6;16293:9;16304:6;16270:14;:41::i;:::-;16263:48;;;;16236:87;16339:16;:14;:16::i;:::-;16335:59;;;16372:10;:8;:10::i;:::-;16335:59;16426:90;16462:6;16426:90;;;;;;;;;;;;;;;;;:9;:17;16436:6;16426:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;16406:9;:17;16416:6;16406:17;;;;;;;;;;;;;;;:110;;;;16529:22;16580:11;:19;16592:6;16580:19;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;;16616:11;:22;16628:9;16616:22;;;;;;;;;;;;;;;;;;;;;;;;;16580:58;:112;;;;16666:4;;;;;;;;;;;16656:14;;:6;:14;;;;:35;;;;;16687:4;;;;;;;;;;;16674:17;;:9;:17;;;;16656:35;16580:112;16562:667;;;16736:6;16719:23;;16562:667;;;16775:17;16821:4;;;;;;;;;;;16811:14;;:6;:14;;;16807:411;;;16858:43;16886:14;;16858:23;16869:11;;16858:6;:10;;:23;;;;:::i;:::-;:27;;:43;;;;:::i;:::-;16846:55;;16937:21;16948:9;16937:6;:10;;:21;;;;:::i;:::-;16920:38;;16977:26;16985:6;16993:9;16977:7;:26::i;:::-;16807:411;;;17056:44;17085:14;;17056:24;17067:12;;17056:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;17044:56;;17136:21;17147:9;17136:6;:10;;:21;;;;:::i;:::-;17119:38;;17176:26;17184:6;17192:9;17176:7;:26::i;:::-;16807:411;16760:469;16562:667;17264:40;17289:14;17264:9;:20;17274:9;17264:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;17241:9;:20;17251:9;17241:20;;;;;;;;;;;;;;;:63;;;;17337:9;17320:43;;17329:6;17320:43;;;17348:14;17320:43;;;;;;:::i;:::-;;;;;;;;17381:16;:24;17398:6;17381:24;;;;;;;;;;;;;;;;;;;;;;;;;17376:120;;17426:11;;;;;;;;;;;:20;;;17447:6;17455:9;:17;17465:6;17455:17;;;;;;;;;;;;;;;;17426:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17422:63;;;;;;17376:120;17511:16;:27;17528:9;17511:27;;;;;;;;;;;;;;;;;;;;;;;;;17506:159;;17576:11;;;;;;;;;;;:20;;;17597:9;17608;:20;17618:9;17608:20;;;;;;;;;;;;;;;;17576:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17555:99;;;;;;17506:159;17682:4;17675:11;;;14923:2771;;;;;;:::o;1915:98::-;1973:7;2004:1;2000;:5;;;;:::i;:::-;1993:12;;1915:98;;;;:::o;2021:::-;2079:7;2110:1;2106;:5;;;;:::i;:::-;2099:12;;2021:98;;;;:::o;1809:::-;1867:7;1898:1;1894;:5;;;;:::i;:::-;1887:12;;1809:98;;;;:::o;1703:::-;1761:7;1792:1;1788;:5;;;;:::i;:::-;1781:12;;1703:98;;;;:::o;18111:204::-;18210:39;18239:9;18210;:24;18228:4;18210:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18183:9;:24;18201:4;18183:24;;;;;;;;;;;;;;;:66;;;;18290:4;18265:42;;18274:6;18265:42;;;18297:9;18265:42;;;;;;:::i;:::-;;;;;;;;18111:204;;:::o;17702:401::-;17829:4;17866:90;17902:6;17866:90;;;;;;;;;;;;;;;;;:9;:17;17876:6;17866:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;17846:9;:17;17856:6;17846:17;;;;;;;;;;;;;;;:110;;;;17990:32;18015:6;17990:9;:20;18000:9;17990:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17967:9;:20;17977:9;17967:20;;;;;;;;;;;;;;;:55;;;;18055:9;18038:35;;18047:6;18038:35;;;18066:6;18038:35;;;;;;:::i;:::-;;;;;;;;18091:4;18084:11;;17702:401;;;;;:::o;18323:222::-;18372:4;18423;;;;;;;;;;;18409:18;;:10;:18;;;;:42;;;;;18445:6;;;;;;;;;;;18444:7;18409:42;:70;;;;;18468:11;;;;;;;;;;;18409:70;:128;;;;;18524:13;;18496:9;:24;18514:4;18496:24;;;;;;;;;;;;;;;;:41;;18409:128;18389:148;;18323:222;:::o;18553:1791::-;12387:4;12378:6;;:13;;;;;;;;;;;;;;;;;;18602:23:::1;18628:105;18731:1;18628:84;18697:14;;18628:50;18660:17;;18628:13;;:31;;:50;;;;:::i;:::-;:68;;:84;;;;:::i;:::-;:102;;:105;;;;:::i;:::-;18602:131;;18746:20;18769:34;18787:15;18769:13;;:17;;:34;;;;:::i;:::-;18746:57;;11162:1;11228:2;:15;;;;:::i;:::-;11210;:33;;;;:::i;:::-;18814:11;:26;18834:4;18814:26;;;;;;;;;;;;;;;:43;18849:6;;;;;;;;;;;18814:43;;;;;;;;;;;;;;;:58;;;;18883:21;18921:1;18907:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18883:40;;18952:4;18934;18939:1;18934:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18978:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18968:4;18973:1;18968:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;19002:21;19026;19002:45;;19060:6;;;;;;;;;;;:57;;;19132:12;19159:1;19175:4;19202;19222:15;19060:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19261:17;19281:40;19307:13;19281:21;:25;;:40;;;;:::i;:::-;19261:60;;19334:25;19362:68;19395:24;19417:1;19395:17;;:21;;:24;;;;:::i;:::-;19362:14;;:18;;:68;;;;:::i;:::-;19334:96;;19443:26;19472:104;19574:1;19472:83;19537:17;19472:46;19500:17;;19472:9;:27;;:46;;;;:::i;:::-;:64;;:83;;;;:::i;:::-;:101;;:104;;;;:::i;:::-;19443:133;;19611:1;19593:15;:19;19589:364;;;19629:6;;;;;;;;;;;:22;;;19659:18;19705:4;19729:15;19763:1;19783::::0;19803:21:::1;;;;;;;;;;;19843:15;19629:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19893:48;19905:18;19925:15;19893:48;;;;;;;:::i;:::-;;;;;;;;19589:364;19965:27;19995:80;20047:17;19995:33;20009:18;;19995:9;:13;;:33;;;;:::i;:::-;:37;;:80;;;;:::i;:::-;19965:110;;20112:1;20090:19;:23;20086:120;;;20134:11;;;;;;;;;;;:19;;;20161;20134:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;20130:65;;;;;;20086:120;20246:1;20222:21;:25;20218:119;;;20272:20;;;;;;;;;;;20264:38;;:61;20303:21;20264:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20218:119;18591:1753;;;;;;;;12423:5:::0;12414:6;;:14;;;;;;;;;;;;;;;;;;18553:1791::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:99::-;1663:6;1697:5;1691:12;1681:22;;1611:99;;;:::o;1716:169::-;1800:11;1834:6;1829:3;1822:19;1874:4;1869:3;1865:14;1850:29;;1716:169;;;;:::o;1891:307::-;1959:1;1969:113;1983:6;1980:1;1977:13;1969:113;;;2068:1;2063:3;2059:11;2053:18;2049:1;2044:3;2040:11;2033:39;2005:2;2002:1;1998:10;1993:15;;1969:113;;;2100:6;2097:1;2094:13;2091:101;;;2180:1;2171:6;2166:3;2162:16;2155:27;2091:101;1940:258;1891:307;;;:::o;2204:102::-;2245:6;2296:2;2292:7;2287:2;2280:5;2276:14;2272:28;2262:38;;2204:102;;;:::o;2312:364::-;2400:3;2428:39;2461:5;2428:39;:::i;:::-;2483:71;2547:6;2542:3;2483:71;:::i;:::-;2476:78;;2563:52;2608:6;2603:3;2596:4;2589:5;2585:16;2563:52;:::i;:::-;2640:29;2662:6;2640:29;:::i;:::-;2635:3;2631:39;2624:46;;2404:272;2312:364;;;;:::o;2682:313::-;2795:4;2833:2;2822:9;2818:18;2810:26;;2882:9;2876:4;2872:20;2868:1;2857:9;2853:17;2846:47;2910:78;2983:4;2974:6;2910:78;:::i;:::-;2902:86;;2682:313;;;;:::o;3001:122::-;3074:24;3092:5;3074:24;:::i;:::-;3067:5;3064:35;3054:63;;3113:1;3110;3103:12;3054:63;3001:122;:::o;3129:139::-;3175:5;3213:6;3200:20;3191:29;;3229:33;3256:5;3229:33;:::i;:::-;3129:139;;;;:::o;3274:474::-;3342:6;3350;3399:2;3387:9;3378:7;3374:23;3370:32;3367:119;;;3405:79;;:::i;:::-;3367:119;3525:1;3550:53;3595:7;3586:6;3575:9;3571:22;3550:53;:::i;:::-;3540:63;;3496:117;3652:2;3678:53;3723:7;3714:6;3703:9;3699:22;3678:53;:::i;:::-;3668:63;;3623:118;3274:474;;;;;:::o;3754:90::-;3788:7;3831:5;3824:13;3817:21;3806:32;;3754:90;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:117::-;5345:1;5342;5335:12;5359:180;5407:77;5404:1;5397:88;5504:4;5501:1;5494:15;5528:4;5525:1;5518:15;5545:281;5628:27;5650:4;5628:27;:::i;:::-;5620:6;5616:40;5758:6;5746:10;5743:22;5722:18;5710:10;5707:34;5704:62;5701:88;;;5769:18;;:::i;:::-;5701:88;5809:10;5805:2;5798:22;5588:238;5545:281;;:::o;5832:129::-;5866:6;5893:20;;:::i;:::-;5883:30;;5922:33;5950:4;5942:6;5922:33;:::i;:::-;5832:129;;;:::o;5967:311::-;6044:4;6134:18;6126:6;6123:30;6120:56;;;6156:18;;:::i;:::-;6120:56;6206:4;6198:6;6194:17;6186:25;;6266:4;6260;6256:15;6248:23;;5967:311;;;:::o;6284:117::-;6393:1;6390;6383:12;6424:710;6520:5;6545:81;6561:64;6618:6;6561:64;:::i;:::-;6545:81;:::i;:::-;6536:90;;6646:5;6675:6;6668:5;6661:21;6709:4;6702:5;6698:16;6691:23;;6762:4;6754:6;6750:17;6742:6;6738:30;6791:3;6783:6;6780:15;6777:122;;;6810:79;;:::i;:::-;6777:122;6925:6;6908:220;6942:6;6937:3;6934:15;6908:220;;;7017:3;7046:37;7079:3;7067:10;7046:37;:::i;:::-;7041:3;7034:50;7113:4;7108:3;7104:14;7097:21;;6984:144;6968:4;6963:3;6959:14;6952:21;;6908:220;;;6912:21;6526:608;;6424:710;;;;;:::o;7157:370::-;7228:5;7277:3;7270:4;7262:6;7258:17;7254:27;7244:122;;7285:79;;:::i;:::-;7244:122;7402:6;7389:20;7427:94;7517:3;7509:6;7502:4;7494:6;7490:17;7427:94;:::i;:::-;7418:103;;7234:293;7157:370;;;;:::o;7533:116::-;7603:21;7618:5;7603:21;:::i;:::-;7596:5;7593:32;7583:60;;7639:1;7636;7629:12;7583:60;7533:116;:::o;7655:133::-;7698:5;7736:6;7723:20;7714:29;;7752:30;7776:5;7752:30;:::i;:::-;7655:133;;;;:::o;7794:678::-;7884:6;7892;7941:2;7929:9;7920:7;7916:23;7912:32;7909:119;;;7947:79;;:::i;:::-;7909:119;8095:1;8084:9;8080:17;8067:31;8125:18;8117:6;8114:30;8111:117;;;8147:79;;:::i;:::-;8111:117;8252:78;8322:7;8313:6;8302:9;8298:22;8252:78;:::i;:::-;8242:88;;8038:302;8379:2;8405:50;8447:7;8438:6;8427:9;8423:22;8405:50;:::i;:::-;8395:60;;8350:115;7794:678;;;;;:::o;8478:329::-;8537:6;8586:2;8574:9;8565:7;8561:23;8557:32;8554:119;;;8592:79;;:::i;:::-;8554:119;8712:1;8737:53;8782:7;8773:6;8762:9;8758:22;8737:53;:::i;:::-;8727:63;;8683:117;8478:329;;;;:::o;8813:118::-;8900:24;8918:5;8900:24;:::i;:::-;8895:3;8888:37;8813:118;;:::o;8937:222::-;9030:4;9068:2;9057:9;9053:18;9045:26;;9081:71;9149:1;9138:9;9134:17;9125:6;9081:71;:::i;:::-;8937:222;;;;:::o;9165:474::-;9233:6;9241;9290:2;9278:9;9269:7;9265:23;9261:32;9258:119;;;9296:79;;:::i;:::-;9258:119;9416:1;9441:53;9486:7;9477:6;9466:9;9462:22;9441:53;:::i;:::-;9431:63;;9387:117;9543:2;9569:53;9614:7;9605:6;9594:9;9590:22;9569:53;:::i;:::-;9559:63;;9514:118;9165:474;;;;;:::o;9645:60::-;9673:3;9694:5;9687:12;;9645:60;;;:::o;9711:142::-;9761:9;9794:53;9812:34;9821:24;9839:5;9821:24;:::i;:::-;9812:34;:::i;:::-;9794:53;:::i;:::-;9781:66;;9711:142;;;:::o;9859:126::-;9909:9;9942:37;9973:5;9942:37;:::i;:::-;9929:50;;9859:126;;;:::o;9991:154::-;10069:9;10102:37;10133:5;10102:37;:::i;:::-;10089:50;;9991:154;;;:::o;10151:187::-;10266:65;10325:5;10266:65;:::i;:::-;10261:3;10254:78;10151:187;;:::o;10344:278::-;10465:4;10503:2;10492:9;10488:18;10480:26;;10516:99;10612:1;10601:9;10597:17;10588:6;10516:99;:::i;:::-;10344:278;;;;:::o;10628:468::-;10693:6;10701;10750:2;10738:9;10729:7;10725:23;10721:32;10718:119;;;10756:79;;:::i;:::-;10718:119;10876:1;10901:50;10943:7;10934:6;10923:9;10919:22;10901:50;:::i;:::-;10891:60;;10847:114;11000:2;11026:53;11071:7;11062:6;11051:9;11047:22;11026:53;:::i;:::-;11016:63;;10971:118;10628:468;;;;;:::o;11102:::-;11167:6;11175;11224:2;11212:9;11203:7;11199:23;11195:32;11192:119;;;11230:79;;:::i;:::-;11192:119;11350:1;11375:53;11420:7;11411:6;11400:9;11396:22;11375:53;:::i;:::-;11365:63;;11321:117;11477:2;11503:50;11545:7;11536:6;11525:9;11521:22;11503:50;:::i;:::-;11493:60;;11448:115;11102:468;;;;;:::o;11576:144::-;11644:9;11677:37;11708:5;11677:37;:::i;:::-;11664:50;;11576:144;;;:::o;11726:167::-;11831:55;11880:5;11831:55;:::i;:::-;11826:3;11819:68;11726:167;;:::o;11899:258::-;12010:4;12048:2;12037:9;12033:18;12025:26;;12061:89;12147:1;12136:9;12132:17;12123:6;12061:89;:::i;:::-;11899:258;;;;:::o;12163:182::-;12303:34;12299:1;12291:6;12287:14;12280:58;12163:182;:::o;12351:366::-;12493:3;12514:67;12578:2;12573:3;12514:67;:::i;:::-;12507:74;;12590:93;12679:3;12590:93;:::i;:::-;12708:2;12703:3;12699:12;12692:19;;12351:366;;;:::o;12723:419::-;12889:4;12927:2;12916:9;12912:18;12904:26;;12976:9;12970:4;12966:20;12962:1;12951:9;12947:17;12940:47;13004:131;13130:4;13004:131;:::i;:::-;12996:139;;12723:419;;;:::o;13148:143::-;13205:5;13236:6;13230:13;13221:22;;13252:33;13279:5;13252:33;:::i;:::-;13148:143;;;;:::o;13297:351::-;13367:6;13416:2;13404:9;13395:7;13391:23;13387:32;13384:119;;;13422:79;;:::i;:::-;13384:119;13542:1;13567:64;13623:7;13614:6;13603:9;13599:22;13567:64;:::i;:::-;13557:74;;13513:128;13297:351;;;;:::o;13654:332::-;13775:4;13813:2;13802:9;13798:18;13790:26;;13826:71;13894:1;13883:9;13879:17;13870:6;13826:71;:::i;:::-;13907:72;13975:2;13964:9;13960:18;13951:6;13907:72;:::i;:::-;13654:332;;;;;:::o;13992:180::-;14040:77;14037:1;14030:88;14137:4;14134:1;14127:15;14161:4;14158:1;14151:15;14178:102;14220:8;14267:5;14264:1;14260:13;14239:34;;14178:102;;;:::o;14286:848::-;14347:5;14354:4;14378:6;14369:15;;14402:5;14393:14;;14416:712;14437:1;14427:8;14424:15;14416:712;;;14532:4;14527:3;14523:14;14517:4;14514:24;14511:50;;;14541:18;;:::i;:::-;14511:50;14591:1;14581:8;14577:16;14574:451;;;15006:4;14999:5;14995:16;14986:25;;14574:451;15056:4;15050;15046:15;15038:23;;15086:32;15109:8;15086:32;:::i;:::-;15074:44;;14416:712;;;14286:848;;;;;;;:::o;15140:1073::-;15194:5;15385:8;15375:40;;15406:1;15397:10;;15408:5;;15375:40;15434:4;15424:36;;15451:1;15442:10;;15453:5;;15424:36;15520:4;15568:1;15563:27;;;;15604:1;15599:191;;;;15513:277;;15563:27;15581:1;15572:10;;15583:5;;;15599:191;15644:3;15634:8;15631:17;15628:43;;;15651:18;;:::i;:::-;15628:43;15700:8;15697:1;15693:16;15684:25;;15735:3;15728:5;15725:14;15722:40;;;15742:18;;:::i;:::-;15722:40;15775:5;;;15513:277;;15899:2;15889:8;15886:16;15880:3;15874:4;15871:13;15867:36;15849:2;15839:8;15836:16;15831:2;15825:4;15822:12;15818:35;15802:111;15799:246;;;15955:8;15949:4;15945:19;15936:28;;15990:3;15983:5;15980:14;15977:40;;;15997:18;;:::i;:::-;15977:40;16030:5;;15799:246;16070:42;16108:3;16098:8;16092:4;16089:1;16070:42;:::i;:::-;16055:57;;;;16144:4;16139:3;16135:14;16128:5;16125:25;16122:51;;;16153:18;;:::i;:::-;16122:51;16202:4;16195:5;16191:16;16182:25;;15140:1073;;;;;;:::o;16219:281::-;16277:5;16301:23;16319:4;16301:23;:::i;:::-;16293:31;;16345:25;16361:8;16345:25;:::i;:::-;16333:37;;16389:104;16426:66;16416:8;16410:4;16389:104;:::i;:::-;16380:113;;16219:281;;;;:::o;16506:348::-;16546:7;16569:20;16587:1;16569:20;:::i;:::-;16564:25;;16603:20;16621:1;16603:20;:::i;:::-;16598:25;;16791:1;16723:66;16719:74;16716:1;16713:81;16708:1;16701:9;16694:17;16690:105;16687:131;;;16798:18;;:::i;:::-;16687:131;16846:1;16843;16839:9;16828:20;;16506:348;;;;:::o;16860:85::-;16905:7;16934:5;16923:16;;16860:85;;;:::o;16951:158::-;17009:9;17042:61;17060:42;17069:32;17095:5;17069:32;:::i;:::-;17060:42;:::i;:::-;17042:61;:::i;:::-;17029:74;;16951:158;;;:::o;17115:147::-;17210:45;17249:5;17210:45;:::i;:::-;17205:3;17198:58;17115:147;;:::o;17268:807::-;17517:4;17555:3;17544:9;17540:19;17532:27;;17569:71;17637:1;17626:9;17622:17;17613:6;17569:71;:::i;:::-;17650:72;17718:2;17707:9;17703:18;17694:6;17650:72;:::i;:::-;17732:80;17808:2;17797:9;17793:18;17784:6;17732:80;:::i;:::-;17822;17898:2;17887:9;17883:18;17874:6;17822:80;:::i;:::-;17912:73;17980:3;17969:9;17965:19;17956:6;17912:73;:::i;:::-;17995;18063:3;18052:9;18048:19;18039:6;17995:73;:::i;:::-;17268:807;;;;;;;;;:::o;18081:143::-;18138:5;18169:6;18163:13;18154:22;;18185:33;18212:5;18185:33;:::i;:::-;18081:143;;;;:::o;18230:663::-;18318:6;18326;18334;18383:2;18371:9;18362:7;18358:23;18354:32;18351:119;;;18389:79;;:::i;:::-;18351:119;18509:1;18534:64;18590:7;18581:6;18570:9;18566:22;18534:64;:::i;:::-;18524:74;;18480:128;18647:2;18673:64;18729:7;18720:6;18709:9;18705:22;18673:64;:::i;:::-;18663:74;;18618:129;18786:2;18812:64;18868:7;18859:6;18848:9;18844:22;18812:64;:::i;:::-;18802:74;;18757:129;18230:663;;;;;:::o;18899:332::-;19020:4;19058:2;19047:9;19043:18;19035:26;;19071:71;19139:1;19128:9;19124:17;19115:6;19071:71;:::i;:::-;19152:72;19220:2;19209:9;19205:18;19196:6;19152:72;:::i;:::-;18899:332;;;;;:::o;19237:137::-;19291:5;19322:6;19316:13;19307:22;;19338:30;19362:5;19338:30;:::i;:::-;19237:137;;;;:::o;19380:345::-;19447:6;19496:2;19484:9;19475:7;19471:23;19467:32;19464:119;;;19502:79;;:::i;:::-;19464:119;19622:1;19647:61;19700:7;19691:6;19680:9;19676:22;19647:61;:::i;:::-;19637:71;;19593:125;19380:345;;;;:::o;19731:351::-;19801:6;19850:2;19838:9;19829:7;19825:23;19821:32;19818:119;;;19856:79;;:::i;:::-;19818:119;19976:1;20001:64;20057:7;20048:6;20037:9;20033:22;20001:64;:::i;:::-;19991:74;;19947:128;19731:351;;;;:::o;20088:180::-;20136:77;20133:1;20126:88;20233:4;20230:1;20223:15;20257:4;20254:1;20247:15;20274:233;20313:3;20336:24;20354:5;20336:24;:::i;:::-;20327:33;;20382:66;20375:5;20372:77;20369:103;;;20452:18;;:::i;:::-;20369:103;20499:1;20492:5;20488:13;20481:20;;20274:233;;;:::o;20513:164::-;20653:16;20649:1;20641:6;20637:14;20630:40;20513:164;:::o;20683:366::-;20825:3;20846:67;20910:2;20905:3;20846:67;:::i;:::-;20839:74;;20922:93;21011:3;20922:93;:::i;:::-;21040:2;21035:3;21031:12;21024:19;;20683:366;;;:::o;21055:419::-;21221:4;21259:2;21248:9;21244:18;21236:26;;21308:9;21302:4;21298:20;21294:1;21283:9;21279:17;21272:47;21336:131;21462:4;21336:131;:::i;:::-;21328:139;;21055:419;;;:::o;21480:165::-;21620:17;21616:1;21608:6;21604:14;21597:41;21480:165;:::o;21651:366::-;21793:3;21814:67;21878:2;21873:3;21814:67;:::i;:::-;21807:74;;21890:93;21979:3;21890:93;:::i;:::-;22008:2;22003:3;21999:12;21992:19;;21651:366;;;:::o;22023:419::-;22189:4;22227:2;22216:9;22212:18;22204:26;;22276:9;22270:4;22266:20;22262:1;22251:9;22247:17;22240:47;22304:131;22430:4;22304:131;:::i;:::-;22296:139;;22023:419;;;:::o;22448:225::-;22588:34;22584:1;22576:6;22572:14;22565:58;22657:8;22652:2;22644:6;22640:15;22633:33;22448:225;:::o;22679:366::-;22821:3;22842:67;22906:2;22901:3;22842:67;:::i;:::-;22835:74;;22918:93;23007:3;22918:93;:::i;:::-;23036:2;23031:3;23027:12;23020:19;;22679:366;;;:::o;23051:419::-;23217:4;23255:2;23244:9;23240:18;23232:26;;23304:9;23298:4;23294:20;23290:1;23279:9;23275:17;23268:47;23332:131;23458:4;23332:131;:::i;:::-;23324:139;;23051:419;;;:::o;23476:348::-;23605:4;23643:2;23632:9;23628:18;23620:26;;23656:71;23724:1;23713:9;23709:17;23700:6;23656:71;:::i;:::-;23737:80;23813:2;23802:9;23798:18;23789:6;23737:80;:::i;:::-;23476:348;;;;;:::o;23830:168::-;23970:20;23966:1;23958:6;23954:14;23947:44;23830:168;:::o;24004:366::-;24146:3;24167:67;24231:2;24226:3;24167:67;:::i;:::-;24160:74;;24243:93;24332:3;24243:93;:::i;:::-;24361:2;24356:3;24352:12;24345:19;;24004:366;;;:::o;24376:419::-;24542:4;24580:2;24569:9;24565:18;24557:26;;24629:9;24623:4;24619:20;24615:1;24604:9;24600:17;24593:47;24657:131;24783:4;24657:131;:::i;:::-;24649:139;;24376:419;;;:::o;24801:305::-;24841:3;24860:20;24878:1;24860:20;:::i;:::-;24855:25;;24894:20;24912:1;24894:20;:::i;:::-;24889:25;;25048:1;24980:66;24976:74;24973:1;24970:81;24967:107;;;25054:18;;:::i;:::-;24967:107;25098:1;25095;25091:9;25084:16;;24801:305;;;;:::o;25112:174::-;25252:26;25248:1;25240:6;25236:14;25229:50;25112:174;:::o;25292:366::-;25434:3;25455:67;25519:2;25514:3;25455:67;:::i;:::-;25448:74;;25531:93;25620:3;25531:93;:::i;:::-;25649:2;25644:3;25640:12;25633:19;;25292:366;;;:::o;25664:419::-;25830:4;25868:2;25857:9;25853:18;25845:26;;25917:9;25911:4;25907:20;25903:1;25892:9;25888:17;25881:47;25945:131;26071:4;25945:131;:::i;:::-;25937:139;;25664:419;;;:::o;26089:180::-;26137:77;26134:1;26127:88;26234:4;26231:1;26224:15;26258:4;26255:1;26248:15;26275:185;26315:1;26332:20;26350:1;26332:20;:::i;:::-;26327:25;;26366:20;26384:1;26366:20;:::i;:::-;26361:25;;26405:1;26395:35;;26410:18;;:::i;:::-;26395:35;26452:1;26449;26445:9;26440:14;;26275:185;;;;:::o;26466:191::-;26506:4;26526:20;26544:1;26526:20;:::i;:::-;26521:25;;26560:20;26578:1;26560:20;:::i;:::-;26555:25;;26599:1;26596;26593:8;26590:34;;;26604:18;;:::i;:::-;26590:34;26649:1;26646;26642:9;26634:17;;26466:191;;;;:::o;26663:114::-;26730:6;26764:5;26758:12;26748:22;;26663:114;;;:::o;26783:184::-;26882:11;26916:6;26911:3;26904:19;26956:4;26951:3;26947:14;26932:29;;26783:184;;;;:::o;26973:132::-;27040:4;27063:3;27055:11;;27093:4;27088:3;27084:14;27076:22;;26973:132;;;:::o;27111:108::-;27188:24;27206:5;27188:24;:::i;:::-;27183:3;27176:37;27111:108;;:::o;27225:179::-;27294:10;27315:46;27357:3;27349:6;27315:46;:::i;:::-;27393:4;27388:3;27384:14;27370:28;;27225:179;;;;:::o;27410:113::-;27480:4;27512;27507:3;27503:14;27495:22;;27410:113;;;:::o;27559:732::-;27678:3;27707:54;27755:5;27707:54;:::i;:::-;27777:86;27856:6;27851:3;27777:86;:::i;:::-;27770:93;;27887:56;27937:5;27887:56;:::i;:::-;27966:7;27997:1;27982:284;28007:6;28004:1;28001:13;27982:284;;;28083:6;28077:13;28110:63;28169:3;28154:13;28110:63;:::i;:::-;28103:70;;28196:60;28249:6;28196:60;:::i;:::-;28186:70;;28042:224;28029:1;28026;28022:9;28017:14;;27982:284;;;27986:14;28282:3;28275:10;;27683:608;;;27559:732;;;;:::o;28297:831::-;28560:4;28598:3;28587:9;28583:19;28575:27;;28612:71;28680:1;28669:9;28665:17;28656:6;28612:71;:::i;:::-;28693:80;28769:2;28758:9;28754:18;28745:6;28693:80;:::i;:::-;28820:9;28814:4;28810:20;28805:2;28794:9;28790:18;28783:48;28848:108;28951:4;28942:6;28848:108;:::i;:::-;28840:116;;28966:72;29034:2;29023:9;29019:18;29010:6;28966:72;:::i;:::-;29048:73;29116:3;29105:9;29101:19;29092:6;29048:73;:::i;:::-;28297:831;;;;;;;;:::o;29134:332::-;29255:4;29293:2;29282:9;29278:18;29270:26;;29306:71;29374:1;29363:9;29359:17;29350:6;29306:71;:::i;:::-;29387:72;29455:2;29444:9;29440:18;29431:6;29387:72;:::i;:::-;29134:332;;;;;:::o

Swarm Source

ipfs://33b149397c455eccc224c8a97dbac7b31289791f44b3eea774c26bc0d297bb32
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.