ETH Price: $2,686.34 (-1.83%)

Token

FURBO (FURBO)

Overview

Max Total Supply

1,000,000,000 FURBO

Holders

432

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Furbo

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2023-05-15
*/

/**
 $FURBO IS A PRODUCT OF ARB FURBO
 */

//SPDX-License-Identifier: MIT

/* Telegram: https://t.me/arbfurbo 
   Website: https://www.arbfurbo.wtf   */

pragma solidity ^0.7.4;

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

interface IBEP20 {
    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 getOwner() external view returns (address);

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

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 addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

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

    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 IDividendDistributor {
    function setDistributionCriteria(
        uint256 _minPeriod,
        uint256 _minDistribution
    ) external;

    function setShare(address shareholder, uint256 amount) external;

    function deposit() external payable;

    function process(uint256 gas) external;
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;
    address _token;

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

    IDEXRouter router;

    address routerAddress = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506;

    IBEP20 RewardToken = IBEP20(0xFC1e18fD211314900cb506993B9b14Ec72e3F574); //FARB

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

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

    uint256 public minPeriod = 60 minutes;
    uint256 public minDistribution = 1 * (10**6);

    uint256 currentIndex;

    bool initialized;
    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

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

    constructor(address _router) {
        router = _router != address(0)
            ? IDEXRouter(_router)
            : IDEXRouter(routerAddress);
        _token = msg.sender;
    }

    function setDistributionCriteria(
        uint256 newMinPeriod,
        uint256 newMinDistribution
    ) external override onlyToken {
        minPeriod = newMinPeriod;
        minDistribution = newMinDistribution;
    }

    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 {
        uint256 balanceBefore = RewardToken.balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(RewardToken);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{
            value: msg.value
        }(0, path, address(this), block.timestamp);

        uint256 amount = RewardToken.balanceOf(address(this)).sub(
            balanceBefore
        );
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(
            dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)
        );
    }

    function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;

        if (shareholderCount == 0) {
            return;
        }

        uint256 iterations = 0;
        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        while (gasUsed < gas && iterations < shareholderCount) {
            if (currentIndex >= shareholderCount) {
                currentIndex = 0;
            }

            if (shouldDistribute(shareholders[currentIndex])) {
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }

    function shouldDistribute(address shareholder)
        internal
        view
        returns (bool)
    {
        return
            shareholderClaims[shareholder] + minPeriod < block.timestamp &&
            getUnpaidEarnings(shareholder) > minDistribution;
    }

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

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

    function claimDividend(address shareholder) external onlyToken {
        distributeDividend(shareholder);
    }

    function rescueDividends(address to) external onlyToken {
        RewardToken.transfer(to, RewardToken.balanceOf(address(this)));
    }

    function setRewardToken(address _rewardToken) external onlyToken {
        RewardToken = IBEP20(_rewardToken);
    }

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

abstract contract Auth {
    address internal owner;
    mapping(address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER");
        _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier _onlyOwner() {
        require(isAuthorized(msg.sender), "!AUTHORIZED");
        _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function renounceOwnership() public virtual onlyOwner {
        transferOwnership(address(0));
    }

    /**
     * Transfer ownership to new address. Caller must be owner.
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

contract Furbo is IBEP20, Auth {
    using SafeMath for uint256;

    string constant _name = "FURBO";
    string constant _symbol = "FURBO";
    uint8 constant _decimals = 18;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address routerAddress = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506;
    address RewardToken = 0xFC1e18fD211314900cb506993B9b14Ec72e3F574;

    uint256 _totalSupply = 1000000000 * (10**_decimals);
    uint256 public _maxTxAmount = (_totalSupply * 2) / 100;
    uint256 public _walletMax = (_totalSupply * 20) / 100;

    bool public restrictWhales = false;

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

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
    mapping(address => bool) public isDividendExempt;
    mapping(address => bool) public normalTransferAddress;

    uint256 public liquidityFee = 1;
    uint256 public marketingFee = 1;
    uint256 public rewardsFee = 1;
    uint256 public stakingRewardFee = 2;
    uint256 public TeamdevFee = 1;
    uint256 private _gasPriceLimitB = 8;
    uint256 private gasPriceLimitB = _gasPriceLimitB * 1 gwei;
    uint256 public sellMultiplier = 15;

    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 0;

    address public autoLiquidityReceiver;
    address public marketingWallet;
    address public TeamdevWallet;
    address public stakingRewardWallet;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;

    DividendDistributor public dividendDistributor;
    uint256 distributorGas = 750000;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = (_totalSupply * 5) / 2000;

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() Auth(msg.sender) {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        _allowances[address(this)][address(router)] = uint256(-1);

        dividendDistributor = new DividendDistributor(address(router));

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;

        isDividendExempt[pair] = true;
        isDividendExempt[msg.sender] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;
        isDividendExempt[ZERO] = true;

        // NICE!
        autoLiquidityReceiver = msg.sender;
        marketingWallet = 0x2765f616E060d4E23a4aA2d751D6CF1AE6E4eeB8; // marketingwallet
        TeamdevWallet = 0xcECBCa9F4921632544F9DC5FF1fB104941f99149; // Teamdev
        stakingRewardWallet = 0xBF8944EA2E9705E0923708C1726c6BfFD4fae111; // Staking Reward

        totalFee = (
            liquidityFee.add(marketingFee).add(rewardsFee).add(TeamdevFee).add(stakingRewardFee)
        );
        totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

    function getOwner() external view override returns (address) {
        return owner;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    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, uint256(-1));
    }


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

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function changeSellFeeX10(uint256 newMulti) external onlyOwner {
        require(newMulti <= 30);
        sellMultiplier = newMulti;
        totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10);
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function changeTxLimit(uint256 newLimit) external _onlyOwner {
        _maxTxAmount = newLimit;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(
            amount <= _maxTxAmount || isTxLimitExempt[sender],
            "TX Limit Exceeded"
        );
    }

    function setNormalTransferAddress(address _address, bool _status) external _onlyOwner{
        normalTransferAddress[_address] = _status;
    }

    function changeWalletLimit(uint256 newLimit) external _onlyOwner {
        _walletMax = newLimit;
    }

    function changeRestrictWhales(bool newValue) external _onlyOwner {
        restrictWhales = newValue;
    }

    function changeIsFeeExempt(address holder, bool exempt)
        external
        _onlyOwner
    {
        isFeeExempt[holder] = exempt;
    }

    function changeIsTxLimitExempt(address holder, bool exempt)
        external
        _onlyOwner
    {
        isTxLimitExempt[holder] = exempt;
    }

    function changeIsDividendExempt(address holder, bool exempt)
        external
        _onlyOwner
    {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;

        if (exempt) {
            dividendDistributor.setShare(holder, 0);
        } else {
            dividendDistributor.setShare(holder, _balances[holder]);
        }
    }

    function changeFees(
        uint256 newLiqFee,
        uint256 newRewardFee,
        uint256 newMarketingFee,
        uint256 newTeamdevFee,
        uint256 newStakingRewardFee
    ) external _onlyOwner {
        liquidityFee = newLiqFee;
        rewardsFee = newRewardFee;
        marketingFee = newMarketingFee;
        TeamdevFee = newTeamdevFee;
        stakingRewardFee = newStakingRewardFee;

        totalFee = liquidityFee
            .add(marketingFee)
            .add(rewardsFee)
            .add(TeamdevFee)
            .add(stakingRewardFee);
        require(totalFee <= 10);
        totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10);
    }

    function changeFeeReceivers(
        address newLiquidityReceiver,
        address newMarketingWallet,
        address newTeamdevWallet,
        address newStakingRewardWallet
    ) external _onlyOwner {
        autoLiquidityReceiver = newLiquidityReceiver;
        marketingWallet = newMarketingWallet;
        TeamdevWallet = newTeamdevWallet;
        stakingRewardWallet = newStakingRewardWallet;
    }

    function changeSwapBackSettings(
        bool enableSwapBack,
        uint256 newSwapBackLimit,
        bool swapByLimitOnly
    ) external _onlyOwner {
        swapAndLiquifyEnabled = enableSwapBack;
        swapThreshold = newSwapBackLimit;
        swapAndLiquifyByLimitOnly = swapByLimitOnly;
    }

    function changeDistributionCriteria(
        uint256 newinPeriod,
        uint256 newMinDistribution
    ) external onlyOwner {
        dividendDistributor.setDistributionCriteria(
            newinPeriod,
            newMinDistribution
        );
    }

    function changeDistributorSettings(uint256 gas) external _onlyOwner {
        require(gas < 750000);
        distributorGas = gas;
    }

    function setRewardToken(address _rewardToken) external _onlyOwner {
        dividendDistributor.setRewardToken(_rewardToken);
    }

    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] != uint256(-1)) {
            _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 (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        }

        if(normalTransferAddress[sender]==true){
            return _basicTransfer(sender, recipient, amount);
        }

        require(
            amount <= _maxTxAmount || isTxLimitExempt[sender],
            "TX Limit Exceeded"
        );

        if (
            msg.sender != pair &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            _balances[address(this)] >= swapThreshold
        ) {
            swapBack();
        }

        if (!launched() && recipient == pair) {
            require(_balances[sender] > 0);
            launch();
        }

        if (recipient != pair && sender != pair) {
            return _basicTransfer(sender, recipient, amount);
        }

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

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax);
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient]
            ? takeFee(sender, recipient, amount)
            : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        // Dividend tracker
        if (!isDividendExempt[sender]) {
            try
                dividendDistributor.setShare(sender, _balances[sender])
            {} catch {}
        }

        if (!isDividendExempt[recipient]) {
            try
                dividendDistributor.setShare(recipient, _balances[recipient])
            {} catch {}
        }

        try dividendDistributor.process(distributorGas) {} catch {}

        emit Transfer(sender, recipient, finalAmount);
        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,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeApplicable = pair == recipient
            ? totalFeeIfSelling
            : totalFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function setGas(uint256 Gas) external onlyOwner {
        require(Gas > 7, "Max gas must be higher than 7 gwei");
        _gasPriceLimitB = Gas;
        gasPriceLimitB = _gasPriceLimitB * 1 gwei;
    }

    function swapBack() internal lockTheSwap {
      
        uint256 amountToSwap = _balances[address(this)];

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        uint256 amountBNB = address(this).balance;

        uint256 totalBNBFee = totalFee;

        uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee);

        uint256 amountBNBReflection = amountBNB.mul(rewardsFee).div(
            totalBNBFee
        );
        uint256 amountStakingReward = amountBNB.mul(stakingRewardFee).div(
            totalBNBFee
        );
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(
            totalBNBFee
        );
        uint256 amountBNBTeamdev = amountBNB.mul(TeamdevFee).div(totalBNBFee);

        try
            dividendDistributor.deposit{value: amountBNBReflection}()
        {} catch {}

        (bool tmpSuccess, ) = payable(marketingWallet).call{
            value: amountBNBMarketing,
            gas: 30000
        }("");
        (bool tmpSuccess1, ) = payable(TeamdevWallet).call{
            value: amountBNBTeamdev,
            gas: 30000
        }("");

        (bool tmpSuccess2, ) = payable(autoLiquidityReceiver).call{
            value: amountBNBLiquidity,
            gas: 30000
        }("");

         (bool tmpSuccess3, ) = payable(stakingRewardWallet).call{
            value: amountStakingReward,
            gas: 30000
        }("");

        // only to supress warning msg
        tmpSuccess = false;
        tmpSuccess1 = false;
        tmpSuccess2 = false;
        tmpSuccess3 = false;
    }

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TeamdevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TeamdevWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"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":[{"internalType":"uint256","name":"newinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"changeDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"changeDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newTeamdevWallet","type":"address"},{"internalType":"address","name":"newStakingRewardWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newTeamdevFee","type":"uint256"},{"internalType":"uint256","name":"newStakingRewardFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMulti","type":"uint256"}],"name":"changeSellFeeX10","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly","type":"bool"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","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":"dividendDistributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","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":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"normalTransferAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Gas","type":"uint256"}],"name":"setGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setNormalTransferAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardToken","type":"address"}],"name":"setRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingRewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingRewardWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731b02da8cb0d097eb8d57a175b88c7d8b47997506600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fc1e18fd211314900cb506993b9b14ec72e3f574600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a633b9aca00026006556064600260065402816200015457fe5b046007556064601460065402816200016857fe5b046008556000600960006101000a81548160ff021916908315150217905550600160105560016011556001601255600260135560016014556008601555633b9aca0060155402601655600f60175560006018556000601955620b71b06022556001602360016101000a81548160ff0219169083151502179055506000602360026101000a81548160ff0219169083151502179055506107d0600560065402816200020e57fe5b046024553480156200021f57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038557600080fd5b505afa1580156200039a573d6000803e3d6000fd5b505050506040513d6020811015620003b157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044657600080fd5b505afa1580156200045b573d6000803e3d6000fd5b505050506040513d60208110156200047257600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620004ee57600080fd5b505af115801562000503573d6000803e3d6000fd5b505050506040513d60208110156200051a57600080fd5b8101908080519060200190929190505050601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200065f9062000f55565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801580156200069c573d6000803e3d6000fd5b50602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732765f616e060d4e23a4aa2d751d6cf1ae6e4eeb8601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cecbca9f4921632544f9dc5ff1fb104941f99149601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bf8944ea2e9705e0923708c1726c6bffd4fae111601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000c2c60135462000c1860145462000c0460125462000bf060115460105462000d2460201b6200305d1790919060201c565b62000d2460201b6200305d1790919060201c565b62000d2460201b6200305d1790919060201c565b62000d2460201b6200305d1790919060201c565b60188190555062000c6a600a62000c5660175460185462000dad60201b620030e51790919060201c565b62000e3860201b6200316b1790919060201c565b601981905550600654600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a362000f63565b60008082840190508381101562000da3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141562000dc2576000905062000e32565b600082840290508284828162000dd457fe5b041462000e2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806200761f6021913960400191505060405180910390fd5b809150505b92915050565b600062000e8283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000e8a60201b60201c565b905092915050565b6000808311829062000f3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000efe57808201518184015260208101905062000ee1565b50505050905090810190601f16801562000f2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858162000f4757fe5b049050809150509392505050565b611e2e80620057f183390190565b61487e8062000f736000396000f3fe60806040526004361061039b5760003560e01c8063807c2d9c116101dc578063bf56b37111610102578063e66b1d1e116100a0578063f887ea401161006f578063f887ea40146113d2578063fabe628314611413578063fe9fbb8014611470578063fed0d2a1146114d7576103a2565b8063e66b1d1e146112dc578063f0b37c0414611319578063f0fc6bca1461136a578063f2fde38b14611381576103a2565b8063d920334e116100dc578063d920334e146111b4578063da00097d146111ef578063dd51faa21461121c578063dd62ed3e14611257576103a2565b8063bf56b3711461111d578063ca33e64c14611148578063ca987b0e14611189576103a2565b80639e1211171161017a578063a9f7864b11610149578063a9f7864b1461100b578063b6a5d7de14611050578063bad3ea6a146110a1578063bbb19940146110e2576103a2565b80639e12111714610e99578063a3a2e89e14610efc578063a8aa1b3114610f59578063a9059cbb14610f9a576103a2565b80638aee8127116101b65780638aee812714610d265780638b42507f14610d7757806395d89b4114610dde57806398118cb414610e6e576103a2565b8063807c2d9c14610c5d5780638647cb3c14610c88578063893d20e814610ce5576103a2565b80633f4218e0116102c15780636b67c4df1161025f57806375f0a8741161022e57806375f0a87414610b59578063773fcb5c14610b9a5780637d1db4a514610bf75780637db1342c14610c22576103a2565b80636b67c4df14610a4b57806370a0823114610a76578063715018a614610adb578063734d171414610af2576103a2565b8063479f66d81161029b578063479f66d8146108cb5780634a74bb0214610906578063571ac8b0146109335780635ada676a1461099a576103a2565b80633f4218e0146107d05780634355855a1461083757806344de2e4c1461089e576103a2565b806323b872dd116103395780632f54bf6e116103085780632f54bf6e146106a7578063313ce5671461070e578063326066f71461073c57806334c708891461077d576103a2565b806323b872dd1461057f5780632b112e49146106105780632bb14e1d1461063b5780632d2e5cd514610666576103a2565b8063095ea7b311610375578063095ea7b31461048d5780630c9e7019146104fe57806318160ddd146105295780631df4ccfc14610554576103a2565b80630445b667146103a7578063054bee62146103d257806306fdde03146103fd576103a2565b366103a257005b600080fd5b3480156103b357600080fd5b506103bc611502565b6040518082815260200191505060405180910390f35b3480156103de57600080fd5b506103e7611508565b6040518082815260200191505060405180910390f35b34801561040957600080fd5b5061041261150e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610452578082015181840152602081019050610437565b50505050905090810190601f16801561047f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049957600080fd5b506104e6600480360360408110156104b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061154b565b60405180821515815260200191505060405180910390f35b34801561050a57600080fd5b5061051361163d565b6040518082815260200191505060405180910390f35b34801561053557600080fd5b5061053e611643565b6040518082815260200191505060405180910390f35b34801561056057600080fd5b5061056961164d565b6040518082815260200191505060405180910390f35b34801561058b57600080fd5b506105f8600480360360608110156105a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611653565b60405180821515815260200191505060405180910390f35b34801561061c57600080fd5b50610625611853565b6040518082815260200191505060405180910390f35b34801561064757600080fd5b506106506118d5565b6040518082815260200191505060405180910390f35b34801561067257600080fd5b5061067b6118db565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b357600080fd5b506106f6600480360360208110156106ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611901565b60405180821515815260200191505060405180910390f35b34801561071a57600080fd5b5061072361195a565b604051808260ff16815260200191505060405180910390f35b34801561074857600080fd5b50610751611963565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078957600080fd5b506107ce600480360360608110156107a057600080fd5b8101908080351515906020019092919080359060200190929190803515159060200190929190505050611989565b005b3480156107dc57600080fd5b5061081f600480360360208110156107f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a44565b60405180821515815260200191505060405180910390f35b34801561084357600080fd5b506108866004803603602081101561085a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a64565b60405180821515815260200191505060405180910390f35b3480156108aa57600080fd5b506108b3611a84565b60405180821515815260200191505060405180910390f35b3480156108d757600080fd5b50610904600480360360208110156108ee57600080fd5b8101908080359060200190929190505050611a97565b005b34801561091257600080fd5b5061091b611b2b565b60405180821515815260200191505060405180910390f35b34801561093f57600080fd5b506109826004803603602081101561095657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3e565b60405180821515815260200191505060405180910390f35b3480156109a657600080fd5b50610a49600480360360808110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b71565b005b348015610a5757600080fd5b50610a60611cf6565b6040518082815260200191505060405180910390f35b348015610a8257600080fd5b50610ac560048036036020811015610a9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cfc565b6040518082815260200191505060405180910390f35b348015610ae757600080fd5b50610af0611d45565b005b348015610afe57600080fd5b50610b4160048036036020811015610b1557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcc565b60405180821515815260200191505060405180910390f35b348015610b6557600080fd5b50610b6e611dec565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ba657600080fd5b50610bf560048036036040811015610bbd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611e12565b005b348015610c0357600080fd5b50610c0c61211d565b6040518082815260200191505060405180910390f35b348015610c2e57600080fd5b50610c5b60048036036020811015610c4557600080fd5b8101908080359060200190929190505050612123565b005b348015610c6957600080fd5b50610c726121a8565b6040518082815260200191505060405180910390f35b348015610c9457600080fd5b50610ce360048036036040811015610cab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506121ae565b005b348015610cf157600080fd5b50610cfa612284565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d3257600080fd5b50610d7560048036036020811015610d4957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122ad565b005b348015610d8357600080fd5b50610dc660048036036020811015610d9a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123ce565b60405180821515815260200191505060405180910390f35b348015610dea57600080fd5b50610df36123ee565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e33578082015181840152602081019050610e18565b50505050905090810190601f168015610e605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e7a57600080fd5b50610e8361242b565b6040518082815260200191505060405180910390f35b348015610ea557600080fd5b50610efa600480360360a0811015610ebc57600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050612431565b005b348015610f0857600080fd5b50610f5760048036036040811015610f1f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061256f565b005b348015610f6557600080fd5b50610f6e612645565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fa657600080fd5b50610ff360048036036040811015610fbd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061266b565b60405180821515815260200191505060405180910390f35b34801561101757600080fd5b5061104e6004803603604081101561102e57600080fd5b810190808035906020019092919080359060200190929190505050612680565b005b34801561105c57600080fd5b5061109f6004803603602081101561107357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612794565b005b3480156110ad57600080fd5b506110b6612869565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110ee57600080fd5b5061111b6004803603602081101561110557600080fd5b810190808035906020019092919050505061288f565b005b34801561112957600080fd5b50611132612952565b6040518082815260200191505060405180910390f35b34801561115457600080fd5b5061115d612958565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561119557600080fd5b5061119e61297e565b6040518082815260200191505060405180910390f35b3480156111c057600080fd5b506111ed600480360360208110156111d757600080fd5b8101908080359060200190929190505050612984565b005b3480156111fb57600080fd5b50611204612a09565b60405180821515815260200191505060405180910390f35b34801561122857600080fd5b506112556004803603602081101561123f57600080fd5b8101908080359060200190929190505050612a1c565b005b34801561126357600080fd5b506112c66004803603604081101561127a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b09565b6040518082815260200191505060405180910390f35b3480156112e857600080fd5b50611317600480360360208110156112ff57600080fd5b81019080803515159060200190929190505050612b90565b005b34801561132557600080fd5b506113686004803603602081101561133c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c28565b005b34801561137657600080fd5b5061137f612cfe565b005b34801561138d57600080fd5b506113d0600480360360208110156113a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612da3565b005b3480156113de57600080fd5b506113e7612f05565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561141f57600080fd5b5061146e6004803603604081101561143657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612f2b565b005b34801561147c57600080fd5b506114bf6004803603602081101561149357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613001565b60405180821515815260200191505060405180910390f35b3480156114e357600080fd5b506114ec613057565b6040518082815260200191505060405180910390f35b60245481565b60145481565b60606040518060400160405280600581526020017f465552424f000000000000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60135481565b6000600654905090565b60185481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461183f576117be826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131b59092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61184a848484613275565b90509392505050565b60006118d0611883600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611cfc565b6118c26118b1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611cfc565b600654613c9f90919063ffffffff16565b613c9f90919063ffffffff16565b905090565b60125481565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61199233613001565b611a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82602360016101000a81548160ff0219169083151502179055508160248190555080602360026101000a81548160ff021916908315150217905550505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b611aa033613001565b611b12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611b2157600080fd5b8060228190555050565b602360019054906101000a900460ff1681565b6000611b6a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61154b565b9050919050565b611b7a33613001565b611bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60115481565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611d4e33611901565b611dc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611dca6000612da3565b565b600f6020528060005260406000206000915054906101000a900460ff1681565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e1b33613001565b611e8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611f175750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611f2057600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561202e57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561201157600080fd5b505af1158015612025573d6000803e3d6000fd5b50505050612119565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561210057600080fd5b505af1158015612114573d6000803e3d6000fd5b505050505b5050565b60075481565b61212c33613001565b61219e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b6121b733613001565b612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6122b633613001565b612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638aee8127826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156123b357600080fd5b505af11580156123c7573d6000803e3d6000fd5b5050505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600581526020017f465552424f000000000000000000000000000000000000000000000000000000815250905090565b60105481565b61243a33613001565b6124ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b84601081905550836012819055508260118190555081601481905550806013819055506125226013546125146014546125066012546124f860115460105461305d90919063ffffffff16565b61305d90919063ffffffff16565b61305d90919063ffffffff16565b61305d90919063ffffffff16565b601881905550600a601854111561253857600080fd5b612562600a6125546017546018546130e590919063ffffffff16565b61316b90919063ffffffff16565b6019819055505050505050565b61257833613001565b6125ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612678338484613275565b905092915050565b61268933611901565b6126fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561277857600080fd5b505af115801561278c573d6000803e3d6000fd5b505050505050565b61279d33611901565b61280f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61289833611901565b61290a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601e81111561291857600080fd5b80601781905550612949600a61293b6017546018546130e590919063ffffffff16565b61316b90919063ffffffff16565b60198190555050565b60205481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b61298d33613001565b6129ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b602360029054906101000a900460ff1681565b612a2533611901565b612a97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60078111612af0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806148066022913960400191505060405180910390fd5b80601581905550633b9aca006015540260168190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612b9933613001565b612c0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b612c3133611901565b612ca3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612d8957600080fd5b505af1158015612d9d573d6000803e3d6000fd5b50505050565b612dac33611901565b612e1e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612f3433613001565b612fa6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60175481565b6000808284019050838110156130db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156130f85760009050613165565b600082840290508284828161310957fe5b0414613160576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806148286021913960400191505060405180910390fd5b809150505b92915050565b60006131ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ce9565b905092915050565b6000838311158290613262576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561322757808201518184015260208101905061320c565b50505050905090810190601f1680156132545780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602360009054906101000a900460ff161561329e57613297848484613daf565b9050613c98565b60011515600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561330957613302848484613daf565b9050613c98565b600754821115806133635750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6133d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156134405750602360009054906101000a900460ff16155b80156134585750602360019054906101000a900460ff165b80156134a55750602454600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156134b3576134b2613f82565b5b6134bb614647565b1580156135155750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561356f576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161356657600080fd5b61356e614654565b5b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561361b5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156136325761362b848484613daf565b9050613c98565b6136bb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131b59092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137645750600960009054906101000a900460ff165b156137ca576008546137be83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b11156137c957600080fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156138705750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61387a5782613886565b61388585858561465d565b5b90506138da81600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613a5c57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613a4057600080fd5b505af1925050508015613a51575060015b613a5a57613a5b565b5b5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613b9b57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613b7f57600080fd5b505af1925050508015613b90575060015b613b9957613b9a565b5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796022546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613c1257600080fd5b505af1925050508015613c23575060015b613c2c57613c2d565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b6000613ce183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506131b5565b905092915050565b60008083118290613d95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d5a578082015181840152602081019050613d3f565b50505050905090810190601f168015613d875780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613da157fe5b049050809150509392505050565b6000613e3a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131b59092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ecf82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001602360006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506060600267ffffffffffffffff81118015613ffb57600080fd5b5060405190808252806020026020018201604052801561402a5781602001602082028036833780820191505090505b509050308160008151811061403b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156140dd57600080fd5b505afa1580156140f1573d6000803e3d6000fd5b505050506040513d602081101561410757600080fd5b81019080805190602001909291905050508160018151811061412557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015614223578082015181840152602081019050614208565b505050509050019650505050505050600060405180830381600087803b15801561424c57600080fd5b505af1158015614260573d6000803e3d6000fd5b5050505060004790506000601854905060006142998261428b601054866130e590919063ffffffff16565b61316b90919063ffffffff16565b905060006142c4836142b6601254876130e590919063ffffffff16565b61316b90919063ffffffff16565b905060006142ef846142e1601354886130e590919063ffffffff16565b61316b90919063ffffffff16565b9050600061431a8561430c601154896130e590919063ffffffff16565b61316b90919063ffffffff16565b90506000614345866143376014548a6130e590919063ffffffff16565b61316b90919063ffffffff16565b9050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b1580156143b157600080fd5b505af1935050505080156143c3575060015b6143cc576143cd565b5b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614454576040519150601f19603f3d011682016040523d82523d6000602084013e614459565b606091505b505090506000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146144e4576040519150601f19603f3d011682016040523d82523d6000602084013e6144e9565b606091505b505090506000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168861753090604051806000019050600060405180830381858888f193505050503d8060008114614574576040519150601f19603f3d011682016040523d82523d6000602084013e614579565b606091505b505090506000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168761753090604051806000019050600060405180830381858888f193505050503d8060008114614604576040519150601f19603f3d011682016040523d82523d6000602084013e614609565b606091505b5050905060009350600092506000915060009050505050505050505050505050506000602360006101000a81548160ff021916908315150217905550565b6000806020541415905090565b43602081905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146146bd576018546146c1565b6019545b905060006146eb60646146dd84876130e590919063ffffffff16565b61316b90919063ffffffff16565b905061473f81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36147fa8185613c9f90919063ffffffff16565b92505050939250505056fe4d617820676173206d75737420626520686967686572207468616e20372067776569536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212203454c8f836c6f71c7326f9556fbc494f3b67ee602f61dd020b88da40f8e379d164736f6c634300070400336080604052731b02da8cb0d097eb8d57a175b88c7d8b47997506600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fc1e18fd211314900cb506993b9b14ec72e3f574600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55620f4240600e553480156100da57600080fd5b50604051611e2e380380611e2e833981810160405260208110156100fd57600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561016b57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661016d565b805b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611c31806101fd6000396000f3fe6080604052600436106100f35760003560e01c80638aee81271161008a578063e2d2e21911610059578063e2d2e21914610419578063efca2eed14610444578063ffb2c4791461046f578063ffd49c84146104aa576100f3565b80638aee812714610320578063997664d714610371578063ce7c2ac21461039c578063d0e30db01461040f576100f3565b80632d48e896116100c65780632d48e896146102345780633a98ef39146102795780634339a815146102a45780634fab0ae8146102f5576100f3565b806311ce023d146100f857806314b6ca961461012357806315f7e05e1461017e57806328fd3198146101cf575b600080fd5b34801561010457600080fd5b5061010d6104d5565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061017c6004803603604081101561014657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104db565b005b34801561018a57600080fd5b506101cd600480360360208110156101a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061079a565b005b3480156101db57600080fd5b5061021e600480360360208110156101f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107fe565b6040518082815260200191505060405180910390f35b34801561024057600080fd5b506102776004803603604081101561025757600080fd5b810190808035906020019092919080359060200190929190505050610918565b005b34801561028557600080fd5b5061028e610982565b6040518082815260200191505060405180910390f35b3480156102b057600080fd5b506102f3600480360360208110156102c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610988565b005b34801561030157600080fd5b5061030a610b75565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b5061036f6004803603602081101561034357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b7b565b005b34801561037d57600080fd5b50610386610c17565b6040518082815260200191505060405180910390f35b3480156103a857600080fd5b506103eb600480360360208110156103bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c1d565b60405180848152602001838152602001828152602001935050505060405180910390f35b610417610c47565b005b34801561042557600080fd5b5061042e611142565b6040518082815260200191505060405180910390f35b34801561045057600080fd5b50610459611148565b6040518082815260200191505060405180910390f35b34801561047b57600080fd5b506104a86004803603602081101561049257600080fd5b810190808035906020019092919050505061114e565b005b3480156104b657600080fd5b506104bf6112c8565b6040518082815260200191505060405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461053357600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561058857610587826112ce565b5b6000811180156105da57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156105ed576105e882611594565b61064f565b60008114801561063f57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b1561064e5761064d82611643565b5b5b6106b8816106aa600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460085461181c90919063ffffffff16565b61186690919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107f257600080fd5b6107fb816112ce565b50565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156108535760009050610913565b60006108a0600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116108fb57600092505050610913565b61090e818361181c90919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461097057600080fd5b81600d8190555080600e819055505050565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109e057600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610aa857600080fd5b505afa158015610abc573d6000803e3d6000fd5b505050506040513d6020811015610ad257600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b3657600080fd5b505af1158015610b4a573d6000803e3d6000fd5b505050506040513d6020811015610b6057600080fd5b81019080805190602001909291905050505050565b600e5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bd357600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c9f57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d2a57600080fd5b505afa158015610d3e573d6000803e3d6000fd5b505050506040513d6020811015610d5457600080fd5b810190808051906020019092919050505090506060600267ffffffffffffffff81118015610d8157600080fd5b50604051908082528060200260200182016040528015610db05781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e1b57600080fd5b505afa158015610e2f573d6000803e3d6000fd5b505050506040513d6020811015610e4557600080fd5b810190808051906020019092919050505081600081518110610e6357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610ecd57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610fc5578082015181840152602081019050610faa565b50505050905001955050505050506000604051808303818588803b158015610fec57600080fd5b505af1158015611000573d6000803e3d6000fd5b505050505060006110dd83600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561109457600080fd5b505afa1580156110a8573d6000803e3d6000fd5b505050506040513d60208110156110be57600080fd5b810190808051906020019092919050505061181c90919063ffffffff16565b90506110f48160095461186690919063ffffffff16565b60098190555061113761112660085461111884600c5461192090919063ffffffff16565b6119a690919063ffffffff16565b600b5461186690919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111a657600080fd5b6000600480549050905060008114156111bf57506112c5565b60008060005a90505b84821080156111d657508383105b156112c05783600f54106111ed576000600f819055505b61122f6004600f54815481106111ff57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119f0565b15611277576112766004600f548154811061124657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112ce565b5b61129c61128d5a8361181c90919063ffffffff16565b8361186690919063ffffffff16565b91505a9050600f6000815480929190600101919050555082806001019350506111c8565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561131e57611591565b6000611329826107fe565b9050600081111561158f5761134981600a5461186690919063ffffffff16565b600a81905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156113e257600080fd5b505af11580156113f6573d6000803e3d6000fd5b505050506040513d602081101561140c57600080fd5b81019080805190602001909291905050505042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114b781600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461186690919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611548600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046001600480549050038154811061165857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106116cf57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546005600060046001600480549050038154811061177057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060048054806117e457fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061185e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a54565b905092915050565b6000808284019050838110156118e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000611919600c5461190b600b548561192090919063ffffffff16565b6119a690919063ffffffff16565b9050919050565b60008083141561193357600090506119a0565b600082840290508284828161194457fe5b041461199b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611bdb6021913960400191505060405180910390fd5b809150505b92915050565b60006119e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b14565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401108015611a4d5750600e54611a4b836107fe565b115b9050919050565b6000838311158290611b01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ac6578082015181840152602081019050611aab565b50505050905090810190601f168015611af35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611bc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b85578082015181840152602081019050611b6a565b50505050905090810190601f168015611bb25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611bcc57fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220f580e728f0dcc08611c6d27cde936cbd8916fae383abcfc31881286d60776a3064736f6c63430007040033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77

Deployed Bytecode

0x60806040526004361061039b5760003560e01c8063807c2d9c116101dc578063bf56b37111610102578063e66b1d1e116100a0578063f887ea401161006f578063f887ea40146113d2578063fabe628314611413578063fe9fbb8014611470578063fed0d2a1146114d7576103a2565b8063e66b1d1e146112dc578063f0b37c0414611319578063f0fc6bca1461136a578063f2fde38b14611381576103a2565b8063d920334e116100dc578063d920334e146111b4578063da00097d146111ef578063dd51faa21461121c578063dd62ed3e14611257576103a2565b8063bf56b3711461111d578063ca33e64c14611148578063ca987b0e14611189576103a2565b80639e1211171161017a578063a9f7864b11610149578063a9f7864b1461100b578063b6a5d7de14611050578063bad3ea6a146110a1578063bbb19940146110e2576103a2565b80639e12111714610e99578063a3a2e89e14610efc578063a8aa1b3114610f59578063a9059cbb14610f9a576103a2565b80638aee8127116101b65780638aee812714610d265780638b42507f14610d7757806395d89b4114610dde57806398118cb414610e6e576103a2565b8063807c2d9c14610c5d5780638647cb3c14610c88578063893d20e814610ce5576103a2565b80633f4218e0116102c15780636b67c4df1161025f57806375f0a8741161022e57806375f0a87414610b59578063773fcb5c14610b9a5780637d1db4a514610bf75780637db1342c14610c22576103a2565b80636b67c4df14610a4b57806370a0823114610a76578063715018a614610adb578063734d171414610af2576103a2565b8063479f66d81161029b578063479f66d8146108cb5780634a74bb0214610906578063571ac8b0146109335780635ada676a1461099a576103a2565b80633f4218e0146107d05780634355855a1461083757806344de2e4c1461089e576103a2565b806323b872dd116103395780632f54bf6e116103085780632f54bf6e146106a7578063313ce5671461070e578063326066f71461073c57806334c708891461077d576103a2565b806323b872dd1461057f5780632b112e49146106105780632bb14e1d1461063b5780632d2e5cd514610666576103a2565b8063095ea7b311610375578063095ea7b31461048d5780630c9e7019146104fe57806318160ddd146105295780631df4ccfc14610554576103a2565b80630445b667146103a7578063054bee62146103d257806306fdde03146103fd576103a2565b366103a257005b600080fd5b3480156103b357600080fd5b506103bc611502565b6040518082815260200191505060405180910390f35b3480156103de57600080fd5b506103e7611508565b6040518082815260200191505060405180910390f35b34801561040957600080fd5b5061041261150e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610452578082015181840152602081019050610437565b50505050905090810190601f16801561047f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049957600080fd5b506104e6600480360360408110156104b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061154b565b60405180821515815260200191505060405180910390f35b34801561050a57600080fd5b5061051361163d565b6040518082815260200191505060405180910390f35b34801561053557600080fd5b5061053e611643565b6040518082815260200191505060405180910390f35b34801561056057600080fd5b5061056961164d565b6040518082815260200191505060405180910390f35b34801561058b57600080fd5b506105f8600480360360608110156105a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611653565b60405180821515815260200191505060405180910390f35b34801561061c57600080fd5b50610625611853565b6040518082815260200191505060405180910390f35b34801561064757600080fd5b506106506118d5565b6040518082815260200191505060405180910390f35b34801561067257600080fd5b5061067b6118db565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b357600080fd5b506106f6600480360360208110156106ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611901565b60405180821515815260200191505060405180910390f35b34801561071a57600080fd5b5061072361195a565b604051808260ff16815260200191505060405180910390f35b34801561074857600080fd5b50610751611963565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078957600080fd5b506107ce600480360360608110156107a057600080fd5b8101908080351515906020019092919080359060200190929190803515159060200190929190505050611989565b005b3480156107dc57600080fd5b5061081f600480360360208110156107f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a44565b60405180821515815260200191505060405180910390f35b34801561084357600080fd5b506108866004803603602081101561085a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a64565b60405180821515815260200191505060405180910390f35b3480156108aa57600080fd5b506108b3611a84565b60405180821515815260200191505060405180910390f35b3480156108d757600080fd5b50610904600480360360208110156108ee57600080fd5b8101908080359060200190929190505050611a97565b005b34801561091257600080fd5b5061091b611b2b565b60405180821515815260200191505060405180910390f35b34801561093f57600080fd5b506109826004803603602081101561095657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3e565b60405180821515815260200191505060405180910390f35b3480156109a657600080fd5b50610a49600480360360808110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b71565b005b348015610a5757600080fd5b50610a60611cf6565b6040518082815260200191505060405180910390f35b348015610a8257600080fd5b50610ac560048036036020811015610a9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cfc565b6040518082815260200191505060405180910390f35b348015610ae757600080fd5b50610af0611d45565b005b348015610afe57600080fd5b50610b4160048036036020811015610b1557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcc565b60405180821515815260200191505060405180910390f35b348015610b6557600080fd5b50610b6e611dec565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ba657600080fd5b50610bf560048036036040811015610bbd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611e12565b005b348015610c0357600080fd5b50610c0c61211d565b6040518082815260200191505060405180910390f35b348015610c2e57600080fd5b50610c5b60048036036020811015610c4557600080fd5b8101908080359060200190929190505050612123565b005b348015610c6957600080fd5b50610c726121a8565b6040518082815260200191505060405180910390f35b348015610c9457600080fd5b50610ce360048036036040811015610cab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506121ae565b005b348015610cf157600080fd5b50610cfa612284565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d3257600080fd5b50610d7560048036036020811015610d4957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122ad565b005b348015610d8357600080fd5b50610dc660048036036020811015610d9a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123ce565b60405180821515815260200191505060405180910390f35b348015610dea57600080fd5b50610df36123ee565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e33578082015181840152602081019050610e18565b50505050905090810190601f168015610e605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e7a57600080fd5b50610e8361242b565b6040518082815260200191505060405180910390f35b348015610ea557600080fd5b50610efa600480360360a0811015610ebc57600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050612431565b005b348015610f0857600080fd5b50610f5760048036036040811015610f1f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061256f565b005b348015610f6557600080fd5b50610f6e612645565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fa657600080fd5b50610ff360048036036040811015610fbd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061266b565b60405180821515815260200191505060405180910390f35b34801561101757600080fd5b5061104e6004803603604081101561102e57600080fd5b810190808035906020019092919080359060200190929190505050612680565b005b34801561105c57600080fd5b5061109f6004803603602081101561107357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612794565b005b3480156110ad57600080fd5b506110b6612869565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110ee57600080fd5b5061111b6004803603602081101561110557600080fd5b810190808035906020019092919050505061288f565b005b34801561112957600080fd5b50611132612952565b6040518082815260200191505060405180910390f35b34801561115457600080fd5b5061115d612958565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561119557600080fd5b5061119e61297e565b6040518082815260200191505060405180910390f35b3480156111c057600080fd5b506111ed600480360360208110156111d757600080fd5b8101908080359060200190929190505050612984565b005b3480156111fb57600080fd5b50611204612a09565b60405180821515815260200191505060405180910390f35b34801561122857600080fd5b506112556004803603602081101561123f57600080fd5b8101908080359060200190929190505050612a1c565b005b34801561126357600080fd5b506112c66004803603604081101561127a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b09565b6040518082815260200191505060405180910390f35b3480156112e857600080fd5b50611317600480360360208110156112ff57600080fd5b81019080803515159060200190929190505050612b90565b005b34801561132557600080fd5b506113686004803603602081101561133c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c28565b005b34801561137657600080fd5b5061137f612cfe565b005b34801561138d57600080fd5b506113d0600480360360208110156113a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612da3565b005b3480156113de57600080fd5b506113e7612f05565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561141f57600080fd5b5061146e6004803603604081101561143657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612f2b565b005b34801561147c57600080fd5b506114bf6004803603602081101561149357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613001565b60405180821515815260200191505060405180910390f35b3480156114e357600080fd5b506114ec613057565b6040518082815260200191505060405180910390f35b60245481565b60145481565b60606040518060400160405280600581526020017f465552424f000000000000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60135481565b6000600654905090565b60185481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461183f576117be826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131b59092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61184a848484613275565b90509392505050565b60006118d0611883600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611cfc565b6118c26118b1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611cfc565b600654613c9f90919063ffffffff16565b613c9f90919063ffffffff16565b905090565b60125481565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61199233613001565b611a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82602360016101000a81548160ff0219169083151502179055508160248190555080602360026101000a81548160ff021916908315150217905550505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b611aa033613001565b611b12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611b2157600080fd5b8060228190555050565b602360019054906101000a900460ff1681565b6000611b6a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61154b565b9050919050565b611b7a33613001565b611bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60115481565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611d4e33611901565b611dc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611dca6000612da3565b565b600f6020528060005260406000206000915054906101000a900460ff1681565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e1b33613001565b611e8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611f175750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611f2057600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561202e57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561201157600080fd5b505af1158015612025573d6000803e3d6000fd5b50505050612119565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561210057600080fd5b505af1158015612114573d6000803e3d6000fd5b505050505b5050565b60075481565b61212c33613001565b61219e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b6121b733613001565b612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6122b633613001565b612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638aee8127826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156123b357600080fd5b505af11580156123c7573d6000803e3d6000fd5b5050505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600581526020017f465552424f000000000000000000000000000000000000000000000000000000815250905090565b60105481565b61243a33613001565b6124ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b84601081905550836012819055508260118190555081601481905550806013819055506125226013546125146014546125066012546124f860115460105461305d90919063ffffffff16565b61305d90919063ffffffff16565b61305d90919063ffffffff16565b61305d90919063ffffffff16565b601881905550600a601854111561253857600080fd5b612562600a6125546017546018546130e590919063ffffffff16565b61316b90919063ffffffff16565b6019819055505050505050565b61257833613001565b6125ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612678338484613275565b905092915050565b61268933611901565b6126fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561277857600080fd5b505af115801561278c573d6000803e3d6000fd5b505050505050565b61279d33611901565b61280f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61289833611901565b61290a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601e81111561291857600080fd5b80601781905550612949600a61293b6017546018546130e590919063ffffffff16565b61316b90919063ffffffff16565b60198190555050565b60205481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b61298d33613001565b6129ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b602360029054906101000a900460ff1681565b612a2533611901565b612a97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60078111612af0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806148066022913960400191505060405180910390fd5b80601581905550633b9aca006015540260168190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612b9933613001565b612c0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b612c3133611901565b612ca3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612d8957600080fd5b505af1158015612d9d573d6000803e3d6000fd5b50505050565b612dac33611901565b612e1e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612f3433613001565b612fa6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60175481565b6000808284019050838110156130db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156130f85760009050613165565b600082840290508284828161310957fe5b0414613160576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806148286021913960400191505060405180910390fd5b809150505b92915050565b60006131ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ce9565b905092915050565b6000838311158290613262576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561322757808201518184015260208101905061320c565b50505050905090810190601f1680156132545780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602360009054906101000a900460ff161561329e57613297848484613daf565b9050613c98565b60011515600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561330957613302848484613daf565b9050613c98565b600754821115806133635750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6133d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156134405750602360009054906101000a900460ff16155b80156134585750602360019054906101000a900460ff165b80156134a55750602454600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156134b3576134b2613f82565b5b6134bb614647565b1580156135155750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561356f576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161356657600080fd5b61356e614654565b5b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561361b5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156136325761362b848484613daf565b9050613c98565b6136bb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131b59092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137645750600960009054906101000a900460ff165b156137ca576008546137be83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b11156137c957600080fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156138705750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61387a5782613886565b61388585858561465d565b5b90506138da81600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613a5c57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613a4057600080fd5b505af1925050508015613a51575060015b613a5a57613a5b565b5b5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613b9b57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613b7f57600080fd5b505af1925050508015613b90575060015b613b9957613b9a565b5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796022546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613c1257600080fd5b505af1925050508015613c23575060015b613c2c57613c2d565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b6000613ce183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506131b5565b905092915050565b60008083118290613d95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d5a578082015181840152602081019050613d3f565b50505050905090810190601f168015613d875780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613da157fe5b049050809150509392505050565b6000613e3a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131b59092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ecf82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001602360006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506060600267ffffffffffffffff81118015613ffb57600080fd5b5060405190808252806020026020018201604052801561402a5781602001602082028036833780820191505090505b509050308160008151811061403b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156140dd57600080fd5b505afa1580156140f1573d6000803e3d6000fd5b505050506040513d602081101561410757600080fd5b81019080805190602001909291905050508160018151811061412557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015614223578082015181840152602081019050614208565b505050509050019650505050505050600060405180830381600087803b15801561424c57600080fd5b505af1158015614260573d6000803e3d6000fd5b5050505060004790506000601854905060006142998261428b601054866130e590919063ffffffff16565b61316b90919063ffffffff16565b905060006142c4836142b6601254876130e590919063ffffffff16565b61316b90919063ffffffff16565b905060006142ef846142e1601354886130e590919063ffffffff16565b61316b90919063ffffffff16565b9050600061431a8561430c601154896130e590919063ffffffff16565b61316b90919063ffffffff16565b90506000614345866143376014548a6130e590919063ffffffff16565b61316b90919063ffffffff16565b9050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b1580156143b157600080fd5b505af1935050505080156143c3575060015b6143cc576143cd565b5b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614454576040519150601f19603f3d011682016040523d82523d6000602084013e614459565b606091505b505090506000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146144e4576040519150601f19603f3d011682016040523d82523d6000602084013e6144e9565b606091505b505090506000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168861753090604051806000019050600060405180830381858888f193505050503d8060008114614574576040519150601f19603f3d011682016040523d82523d6000602084013e614579565b606091505b505090506000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168761753090604051806000019050600060405180830381858888f193505050503d8060008114614604576040519150601f19603f3d011682016040523d82523d6000602084013e614609565b606091505b5050905060009350600092506000915060009050505050505050505050505050506000602360006101000a81548160ff021916908315150217905550565b6000806020541415905090565b43602081905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146146bd576018546146c1565b6019545b905060006146eb60646146dd84876130e590919063ffffffff16565b61316b90919063ffffffff16565b905061473f81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36147fa8185613c9f90919063ffffffff16565b92505050939250505056fe4d617820676173206d75737420626520686967686572207468616e20372067776569536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212203454c8f836c6f71c7326f9556fbc494f3b67ee602f61dd020b88da40f8e379d164736f6c63430007040033

Deployed Bytecode Sourcemap

12692:14540:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14603:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13866:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16215:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17208:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13824:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16525:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14051:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21695:416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16735:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13788:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14245:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11980:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16423:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14210:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20625:309;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13491:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13595:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13336:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21211:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14502:40;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17464:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20202:415;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13750:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16885:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12269:102;;;;;;;;;;;;;:::i;:::-;;13650:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14173:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19110:395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13213:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18564:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13274:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18411:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16635:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21358:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13541:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16317:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13712:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19513:681;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18794:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14319:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21499:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20942:261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11653:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14381:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17794:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14347:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14130:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14085;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18089:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14549:45;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;25069:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17012:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18677:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11823:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17590:98;;;;;;;;;;;;;:::i;:::-;;12462:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14288:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18948:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12154:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14008:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14603:56;;;;:::o;13866:29::-;;;;:::o;16215:94::-;16263:13;16296:5;;;;;;;;;;;;;;;;;16289:12;;16215:94;:::o;17208:248::-;17310:4;17367:6;17332:11;:23;17344:10;17332:23;;;;;;;;;;;;;;;:32;17356:7;17332:32;;;;;;;;;;;;;;;:41;;;;17410:7;17389:37;;17398:10;17389:37;;;17419:6;17389:37;;;;;;;;;;;;;;;;;;17444:4;17437:11;;17208:248;;;;:::o;13824:35::-;;;;:::o;16525:102::-;16580:7;16607:12;;16600:19;;16525:102;:::o;14051:27::-;;;;:::o;21695:416::-;21829:4;21893:2;21850:11;:19;21862:6;21850:19;;;;;;;;;;;;;;;:31;21870:10;21850:31;;;;;;;;;;;;;;;;:46;21846:200;;21947:87;22001:6;21947:87;;;;;;;;;;;;;;;;;:11;:19;21959:6;21947:19;;;;;;;;;;;;;;;:31;21967:10;21947:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;21913:11;:19;21925:6;21913:19;;;;;;;;;;;;;;;:31;21933:10;21913:31;;;;;;;;;;;;;;;:121;;;;21846:200;22063:40;22077:6;22085:9;22096:6;22063:13;:40::i;:::-;22056:47;;21695:416;;;;;:::o;16735:142::-;16788:7;16815:54;16853:15;16863:4;;;;;;;;;;;16853:9;:15::i;:::-;16815:33;16832:15;16842:4;;;;;;;;;;;16832:9;:15::i;:::-;16815:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;16808:61;;16735:142;:::o;13788:29::-;;;;:::o;14245:34::-;;;;;;;;;;;;;:::o;11980:103::-;12035:4;12070:5;;;;;;;;;;;12059:16;;:7;:16;;;12052:23;;11980:103;;;:::o;16423:94::-;16475:5;12870:2;16493:16;;16423:94;:::o;14210:28::-;;;;;;;;;;;;;:::o;20625:309::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20815:14:::1;20791:21;;:38;;;;;;;;;;;;;;;;;;20856:16;20840:13;:32;;;;20911:15;20883:25;;:43;;;;;;;;;;;;;;;;;;20625:309:::0;;;:::o;13491:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;13595:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;13336:34::-;;;;;;;;;;;;;:::o;21211:139::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21304:6:::1;21298:3;:12;21290:21;;;::::0;::::1;;21339:3;21322:14;:20;;;;21211:139:::0;:::o;14502:40::-;;;;;;;;;;;;;:::o;17464:116::-;17519:4;17543:29;17551:7;17568:2;17543:7;:29::i;:::-;17536:36;;17464:116;;;:::o;20202:415::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20444:20:::1;20420:21;;:44;;;;;;;;;;;;;;;;;;20493:18;20475:15;;:36;;;;;;;;;;;;;;;;;;20538:16;20522:13;;:32;;;;;;;;;;;;;;;;;;20587:22;20565:19;;:44;;;;;;;;;;;;;;;;;;20202:415:::0;;;;:::o;13750:31::-;;;;:::o;16885:119::-;16951:7;16978:9;:18;16988:7;16978:18;;;;;;;;;;;;;;;;16971:25;;16885:119;;;:::o;12269:102::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12334:29:::1;12360:1;12334:17;:29::i;:::-;12269:102::o:0;13650:53::-;;;;;;;;;;;;;;;;;;;;;;:::o;14173:30::-;;;;;;;;;;;;;:::o;19110:395::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19251:4:::1;19233:23;;:6;:23;;;;:41;;;;;19270:4;;;;;;;;;;;19260:14;;:6;:14;;;;19233:41;19225:50;;;::::0;::::1;;19313:6;19286:16;:24;19303:6;19286:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19336:6;19332:166;;;19359:19;;;;;;;;;;;:28;;;19388:6;19396:1;19359:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19332:166;;;19431:19;;;;;;;;;;;:28;;;19460:6;19468:9;:17;19478:6;19468:17;;;;;;;;;;;;;;;;19431:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19332:166;19110:395:::0;;:::o;13213:54::-;;;;:::o;18564:105::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18653:8:::1;18640:10;:21;;;;18564:105:::0;:::o;13274:53::-;;;;:::o;18411:145::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18541:7:::1;18507:21;:31;18529:8;18507:31;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;18411:145:::0;;:::o;16635:92::-;16687:7;16714:5;;;;;;;;;;;16707:12;;16635:92;:::o;21358:133::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21435:19:::1;;;;;;;;;;;:34;;;21470:12;21435:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21358:133:::0;:::o;13541:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;16317:98::-;16367:13;16400:7;;;;;;;;;;;;;;;;;16393:14;;16317:98;:::o;13712:31::-;;;;:::o;19513:681::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19749:9:::1;19734:12;:24;;;;19782:12;19769:10;:25;;;;19820:15;19805:12;:30;;;;19859:13;19846:10;:26;;;;19902:19;19883:16;:38;;;;19945:140;20068:16;;19945:104;20038:10;;19945:74;20008:10;;19945:44;19976:12;;19945;;:30;;:44;;;;:::i;:::-;:62;;:74;;;;:::i;:::-;:92;;:104;;;;:::i;:::-;:122;;:140;;;;:::i;:::-;19934:8;:151;;;;20116:2;20104:8;;:14;;20096:23;;;::::0;::::1;;20150:36;20183:2;20150:28;20163:14;;20150:8;;:12;;:28;;;;:::i;:::-;:32;;:36;;;;:::i;:::-;20130:17;:56;;;;19513:681:::0;;;;;:::o;18794:146::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18926:6:::1;18904:11;:19;18916:6;18904:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18794:146:::0;;:::o;14319:19::-;;;;;;;;;;;;;:::o;21499:188::-;21606:4;21635:44;21649:10;21661:9;21672:6;21635:13;:44::i;:::-;21628:51;;21499:188;;;;:::o;20942:261::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21082:19:::1;;;;;;;;;;;:43;;;21140:11;21166:18;21082:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20942:261:::0;;:::o;11653:94::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11735:4:::1;11713:14:::0;:19:::1;11728:3;11713:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11653:94:::0;:::o;14381:46::-;;;;;;;;;;;;;:::o;17794:208::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17888:2:::1;17876:8;:14;;17868:23;;;::::0;::::1;;17919:8;17902:14;:25;;;;17958:36;17991:2;17958:28;17971:14;;17958:8;;:12;;:28;;;;:::i;:::-;:32;;:36;;;;:::i;:::-;17938:17;:56;;;;17794:208:::0;:::o;14347:25::-;;;;:::o;14130:36::-;;;;;;;;;;;;;:::o;14085:::-;;;;:::o;18089:103::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18176:8:::1;18161:12;:23;;;;18089:103:::0;:::o;14549:45::-;;;;;;;;;;;;;:::o;25069:205::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25142:1:::1;25136:3;:7;25128:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25211:3;25193:15;:21;;;;25260:6;25242:15;;:24;25225:14;:41;;;;25069:205:::0;:::o;17012:188::-;17132:7;17164:11;:19;17176:6;17164:19;;;;;;;;;;;;;;;:28;17184:7;17164:28;;;;;;;;;;;;;;;;17157:35;;17012:188;;;;:::o;18677:109::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18770:8:::1;18753:14;;:25;;;;;;;;;;;;;;;;;;18677:109:::0;:::o;11823:97::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11907:5:::1;11885:14;:19;11900:3;11885:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;11823:97:::0;:::o;17590:98::-;17635:19;;;;;;;;;;;:33;;;17669:10;17635:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17590:98::o;12462:173::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12546:3:::1;12538:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;12582:4;12560:14:::0;:19:::1;12575:3;12560:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;12602:25;12623:3;12602:25;;;;;;;;;;;;;;;;;;;;12462:173:::0;:::o;14288:24::-;;;;;;;;;;;;;:::o;18948:154::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19088:6:::1;19062:15;:23;19078:6;19062:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18948:154:::0;;:::o;12154:107::-;12210:4;12234:14;:19;12249:3;12234:19;;;;;;;;;;;;;;;;;;;;;;;;;12227:26;;12154:107;;;:::o;14008:34::-;;;;:::o;214:179::-;272:7;292:9;308:1;304;:5;292:17;;333:1;328;:6;;320:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;384:1;377:8;;;214:179;;;;:::o;777:246::-;835:7;864:1;859;:6;855:47;;;889:1;882:8;;;;855:47;912:9;928:1;924;:5;912:17;;957:1;952;948;:5;;;;;;:10;940:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1014:1;1007:8;;;777:246;;;;;:::o;1031:132::-;1089:7;1116:39;1120:1;1123;1116:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1109:46;;1031:132;;;;:::o;545:224::-;665:7;698:1;693;:6;;701:12;685:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;725:9;741:1;737;:5;725:17;;760:1;753:8;;;545:224;;;;;:::o;22119:2036::-;22245:4;22266:16;;;;;;;;;;;22262:97;;;22306:41;22321:6;22329:9;22340:6;22306:14;:41::i;:::-;22299:48;;;;22262:97;22405:4;22374:35;;:21;:29;22396:6;22374:29;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;22371:114;;;22432:41;22447:6;22455:9;22466:6;22432:14;:41::i;:::-;22425:48;;;;22371:114;22529:12;;22519:6;:22;;:49;;;;22545:15;:23;22561:6;22545:23;;;;;;;;;;;;;;;;;;;;;;;;;22519:49;22497:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22658:4;;;;;;;;;;;22644:18;;:10;:18;;;;:52;;;;;22680:16;;;;;;;;;;;22679:17;22644:52;:90;;;;;22713:21;;;;;;;;;;;22644:90;:148;;;;;22779:13;;22751:9;:24;22769:4;22751:24;;;;;;;;;;;;;;;;:41;;22644:148;22626:215;;;22819:10;:8;:10::i;:::-;22626:215;22858:10;:8;:10::i;:::-;22857:11;:32;;;;;22885:4;;;;;;;;;;;22872:17;;:9;:17;;;22857:32;22853:118;;;22934:1;22914:9;:17;22924:6;22914:17;;;;;;;;;;;;;;;;:21;22906:30;;;;;;22951:8;:6;:8::i;:::-;22853:118;23000:4;;;;;;;;;;;22987:17;;:9;:17;;;;:35;;;;;23018:4;;;;;;;;;;;23008:14;;:6;:14;;;;22987:35;22983:116;;;23046:41;23061:6;23069:9;23080:6;23046:14;:41::i;:::-;23039:48;;;;22983:116;23158:90;23194:6;23158:90;;;;;;;;;;;;;;;;;:9;:17;23168:6;23158:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;23138:9;:17;23148:6;23138:17;;;;;;;;;;;;;;;:110;;;;23266:15;:26;23282:9;23266:26;;;;;;;;;;;;;;;;;;;;;;;;;23265:27;:45;;;;;23296:14;;;;;;;;;;;23265:45;23261:133;;;23371:10;;23335:32;23360:6;23335:9;:20;23345:9;23335:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;23327:55;;;;;;23261:133;23406:19;23429:11;:19;23441:6;23429:19;;;;;;;;;;;;;;;;;;;;;;;;;23428:20;:47;;;;;23453:11;:22;23465:9;23453:22;;;;;;;;;;;;;;;;;;;;;;;;;23452:23;23428:47;:119;;23541:6;23428:119;;;23491:34;23499:6;23507:9;23518:6;23491:7;:34::i;:::-;23428:119;23406:141;;23581:37;23606:11;23581:9;:20;23591:9;23581:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;23558:9;:20;23568:9;23558:20;;;;;;;;;;;;;;;:60;;;;23665:16;:24;23682:6;23665:24;;;;;;;;;;;;;;;;;;;;;;;;;23660:158;;23727:19;;;;;;;;;;;:28;;;23756:6;23764:9;:17;23774:6;23764:17;;;;;;;;;;;;;;;;23727:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23706:101;;;;;;23660:158;23835:16;:27;23852:9;23835:27;;;;;;;;;;;;;;;;;;;;;;;;;23830:167;;23900:19;;;;;;;;;;;:28;;;23929:9;23940;:20;23950:9;23940:20;;;;;;;;;;;;;;;;23900:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23879:107;;;;;;23830:167;24013:19;;;;;;;;;;;:27;;;24041:14;;24013:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24009:59;;;;;;24102:9;24085:40;;24094:6;24085:40;;;24113:11;24085:40;;;;;;;;;;;;;;;;;;24143:4;24136:11;;;22119:2036;;;;;;:::o;401:136::-;459:7;486:43;490:1;493;486:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;479:50;;401:136;;;;:::o;1171:223::-;1291:7;1323:1;1319;:5;1326:12;1311:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:9;1366:1;1362;:5;;;;;;1350:17;;1385:1;1378:8;;;1171:223;;;;;:::o;24163:401::-;24290:4;24327:90;24363:6;24327:90;;;;;;;;;;;;;;;;;:9;:17;24337:6;24327:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;24307:9;:17;24317:6;24307:17;;;;;;;;;;;;;;;:110;;;;24451:32;24476:6;24451:9;:20;24461:9;24451:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24428:9;:20;24438:9;24428:20;;;;;;;;;;;;;;;:55;;;;24516:9;24499:35;;24508:6;24499:35;;;24527:6;24499:35;;;;;;;;;;;;;;;;;;24552:4;24545:11;;24163:401;;;;;:::o;25282:1883::-;14721:4;14702:16;;:23;;;;;;;;;;;;;;;;;;25342:20:::1;25365:9;:24;25383:4;25365:24;;;;;;;;;;;;;;;;25342:47;;25402:21;25440:1;25426:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25402:40;;25471:4;25453;25458:1;25453:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;25497:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;25487:4;25492:1;25487:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;25523:6;;;;;;;;;;;:57;;;25595:12;25622:1;25638:4;25665;25685:15;25523:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25724:17;25744:21;25724:41;;25778:19;25800:8;;25778:30;;25821:26;25850:44;25882:11;25850:27;25864:12;;25850:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;25821:73;;25907:27;25937:66;25981:11;25937:25;25951:10;;25937:9;:13;;:25;;;;:::i;:::-;:29;;:66;;;;:::i;:::-;25907:96;;26014:27;26044:72;26094:11;26044:31;26058:16;;26044:9;:13;;:31;;;;:::i;:::-;:35;;:72;;;;:::i;:::-;26014:102;;26127:26;26156:68;26202:11;26156:27;26170:12;;26156:9;:13;;:27;;;;:::i;:::-;:31;;:68;;;;:::i;:::-;26127:97;;26235:24;26262:42;26292:11;26262:25;26276:10;;26262:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;26235:69;;26334:19;;;;;;;;;;;:27;;;26369:19;26334:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;26317:95;;;;;;26425:15;26454;;;;;;;;;;;26446:29;;26497:18;26535:5;26446:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26424:131;;;26567:16;26597:13;;;;;;;;;;;26589:27;;26638:16;26674:5;26589:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26566:128;;;26708:16;26738:21;;;;;;;;;;;26730:35;;26787:18;26825:5;26730:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26707:138;;;26860:16;26890:19;;;;;;;;;;;26882:33;;26937:19;26976:5;26882:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26859:137;;;27062:5;27049:18;;27092:5;27078:19;;27122:5;27108:19;;27152:5;27138:19;;14736:1;;;;;;;;;;;;;14767:5:::0;14748:16;;:24;;;;;;;;;;;;;;;;;;25282:1883::o;17696:90::-;17739:4;17777:1;17763:10;;:15;;17756:22;;17696:90;:::o;18010:71::-;18061:12;18048:10;:25;;;;18010:71::o;24572:489::-;24692:7;24712:21;24744:9;24736:17;;:4;;;;;;;;;;;:17;;;:74;;24802:8;;24736:74;;;24769:17;;24736:74;24712:98;;24821:17;24841:34;24871:3;24841:25;24852:13;24841:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;24821:54;;24915:39;24944:9;24915;:24;24933:4;24915:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;24888:9;:24;24906:4;24888:24;;;;;;;;;;;;;;;:66;;;;24995:4;24970:42;;24979:6;24970:42;;;25002:9;24970:42;;;;;;;;;;;;;;;;;;25032:21;25043:9;25032:6;:10;;:21;;;;:::i;:::-;25025:28;;;;24572:489;;;;;:::o

Swarm Source

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