ETH Price: $2,734.95 (-1.95%)

Token

World Cup Dao (WCD)
 

Overview

Max Total Supply

1,000,000,000 WCD

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.457697682197673246 WCD

Value
$0.00
0x98b83f6e9ae33Fb113e065c0dF5B697835D5a0af
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
WorldCupDao

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : WorldCupDao.sol
// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.13;

/**
 *
 * Telegram: https://t.me/worldcupdaoeth
 * Twitter https://twitter.com/WorldCupDaoERC
 * Website: https://www.worldcupdao.io
 *
 */

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    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
    );
}

abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

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

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

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

    function setShare(address shareholder, uint256 amount) external;

    function deposit() external payable;

    function process(uint256 gas) external;

    function withdrawRewards(address shareholder) external;

    function removeStuckDividends() external;
}

contract WCD is IWCD {
    using SafeMath for uint256;
    address _token;

    address public USDC;

    IDEXRouter router;

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

    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 = 30 minutes;
    uint256 public minDistribution = 0 * (10**9);

    uint256 public currentIndex;
    bool initialized;

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

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

    constructor() {
        _token = msg.sender;
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;
    }

    receive() external payable {
        deposit();
    }

    function removeStuckDividends() external onlyToken {
        uint256 balance = IERC20(USDC).balanceOf(address(this));

        IERC20(USDC).transfer(
            address(0x87ABb6335dDF62DC908E5b3cB3953B75E7E06eA0),
            balance
        );
    }

    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() public payable override {
        uint256 balanceBefore = IERC20(USDC).balanceOf(address(this));

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

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

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

    function process(uint256 gas) external override {
        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) public 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);
            IERC20(USDC).transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder]
                .totalRealised
                .add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(
                shares[shareholder].amount
            );
        }
    }

    function withdrawRewards(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

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

contract WorldCupDao is IERC20, Auth {
    using SafeMath for uint256;

    address public USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48; //USDC COIN

    string private constant _name = "World Cup Dao";
    string private constant _symbol = "WCD";
    uint8 private constant _decimals = 18;

    uint256 private _totalSupply = 1000000000 * (10**_decimals);

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

    address private WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

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

    uint256 public buyFee = 8;
    uint256 public sellFee = 8;

    uint256 public toReflections = 0;
    uint256 public toTreasury = 70;
    uint256 public toMarketing = 30;

    uint256 public allocationSum = 100;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address private tokenOwner;
    address public devWallet;
    address public treasuryWallet;

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

    WCD public wcd;
    uint256 public wcdGas = 0;

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

    uint256 public maxTx = _totalSupply.div(1000);
    uint256 public maxWallet = _totalSupply.div(1000);
    uint256 public swapThreshold = _totalSupply.div(400);

    constructor(address _owner) Auth(_owner) {
        devWallet = payable(_owner);
        treasuryWallet = payable(
            address(0x39a818478C8086fB15B01EBCaA1Ca44BC63ac1CA)
        );

        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));

        _allowances[address(this)][address(router)] = type(uint256).max;

        wcd = new WCD();

        isFeeExempt[_owner] = true;
        isFeeExempt[devWallet] = true;

        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;

        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[devWallet] = true;

        _balances[_owner] = _totalSupply;

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

    receive() external payable {}

    function preLaunchCall() external onlyOwner {
        require(!tradingOpen, "Behave.");

        maxTx = 15000000 * (10**_decimals);
        maxWallet = 30000000 * (10**_decimals);
    }

    //once enabled, cannot be reversed
    function placeYourBets() external onlyOwner {
        tradingOpen = true;
    }

    function changeTotalFees(uint256 newBuyFee, uint256 newSellFee)
        external
        onlyOwner
    {
        buyFee = newBuyFee;
        sellFee = newSellFee;

        require(buyFee <= 8, "too high");
        require(sellFee <= 8, "too high");
    }

    function changeFeeAllocation(
        uint256 newRewardFee,
        uint256 newTreasuryFee,
        uint256 newMarketingFee
    ) external onlyOwner {
        toReflections = newRewardFee;
        toTreasury = newTreasuryFee;
        toMarketing = newMarketingFee;
    }

    function changeTxLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= maxTx, "Can not lower max tx");
        maxTx = newLimit;
    }

    function changeWalletLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= maxWallet, "Can not lower max wallet");
        maxWallet = newLimit;
    }

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

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

    function setDevWallet(address payable newDevWallet) external onlyOwner {
        devWallet = payable(newDevWallet);
    }

    function setOwnerWallet(address payable newOwnerWallet) external onlyOwner {
        tokenOwner = newOwnerWallet;
    }

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

    function setDistributionCriteria(
        uint256 newMinPeriod,
        uint256 newMinDistribution
    ) external onlyOwner {
        wcd.setDistributionCriteria(newMinPeriod, newMinDistribution);
    }

    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if (exempt) {
            wcd.setShare(holder, 0);
        } else {
            wcd.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt)
        external
        onlyOwner
    {
        _setIsDividendExempt(holder, exempt);
    }

    function changeWcdGas(uint256 newGas) external onlyOwner {
        wcdGas = newGas;
    }

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

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

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

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

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

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

    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, type(uint256).max);
    }

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

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

        return _transfer(sender, recipient, amount);
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (sender != owner && recipient != owner)
            require(tradingOpen, "hold ur horses big guy."); //transfers disabled before tradingActive

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

        require(amount <= maxTx || isTxLimitExempt[sender], "tx");

        if (!isTxLimitExempt[recipient]) {
            require(_balances[recipient].add(amount) <= maxWallet, "wallet");
        }

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

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

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

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

        if (!isDividendExempt[recipient]) {
            try wcd.setShare(recipient, _balances[recipient]) {} 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 ? sellFee : buyFee;
        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 swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        approve(address(this), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

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

        swapTokensForEth(tokenBalance);

        uint256 totalEthBalance = address(this).balance;
        uint256 ethForDev = totalEthBalance.mul(toMarketing).div(100);
        uint256 ethForTreasury = totalEthBalance.mul(toTreasury).div(100);

        if (totalEthBalance > 0) {
            payable(devWallet).transfer(ethForDev);
            payable(treasuryWallet).transfer(ethForTreasury);
        }
    }

    function manualSwapBack() external onlyOwner {
        swapBack();
    }

    function clearStuckEth() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            payable(devWallet).transfer(contractETHBalance);
        }
    }

    function manualProcessGas(uint256 manualGas) external onlyOwner {
        wcd.process(manualGas);
    }

    function checkPendingReflections(address shareholder)
        external
        view
        returns (uint256)
    {
        return wcd.getUnpaidEarnings(shareholder);
    }

    function withdrawRewards() external {
        wcd.withdrawRewards(msg.sender);
    }

    function removeStuckDividends() external onlyOwner {
        wcd.removeStuckDividends();
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"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":"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":"USDC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allocationSum","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newTreasuryFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"changeFeeAllocation","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":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeTotalFees","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":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"changeWcdGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"checkPendingReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","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":"","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":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"placeYourBets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"preLaunchCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStuckDividends","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDevWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwnerWallet","type":"address"}],"name":"setOwnerWallet","outputs":[],"stateMutability":"nonpayable","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":"toMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toTreasury","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wcd","outputs":[{"internalType":"contract WCD","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wcdGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000069919062000d96565b633b9aca006200007a919062000de7565b60025561dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600c556008600d556000600e556046600f55601e60105560646011556001601760156101000a81548160ff0219169083151502179055506000601760166101000a81548160ff0219169083151502179055506000601955620001796103e860025462000b3460201b620021331790919060201c565b601a556200019a6103e860025462000b3460201b620021331790919060201c565b601b55620001bb61019060025462000b3460201b620021331790919060201c565b601c55348015620001cb57600080fd5b5060405162007839380380620078398339818101604052810190620001f1919062000eb2565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507339a818478c8086fb15b01ebcaa1ca44bc63ac1ca601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b2919062000eb2565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000460573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000486919062000eb2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620004e492919062000ef5565b6020604051808303816000875af115801562000504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052a919062000eb2565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506040516200063b9062000bee565b604051809103906000f08015801562000658573d6000803e3d6000fd5b50601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600254600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000b25919062000f33565b60405180910390a3506200107f565b600062000b7e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b8660201b60201c565b905092915050565b6000808311829062000bd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bc7919062000ff4565b60405180910390fd5b506000838562000be1919062001047565b9050809150509392505050565b61221e806200561b83390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c8a5780860481111562000c625762000c6162000bfc565b5b600185161562000c725780820291505b808102905062000c828562000c2b565b945062000c42565b94509492505050565b60008262000ca5576001905062000d78565b8162000cb5576000905062000d78565b816001811462000cce576002811462000cd95762000d0f565b600191505062000d78565b60ff84111562000cee5762000ced62000bfc565b5b8360020a91508482111562000d085762000d0762000bfc565b5b5062000d78565b5060208310610133831016604e8410600b841016171562000d495782820a90508381111562000d435762000d4262000bfc565b5b62000d78565b62000d58848484600162000c38565b9250905081840481111562000d725762000d7162000bfc565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000da38262000d7f565b915062000db08362000d89565b925062000ddf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c93565b905092915050565b600062000df48262000d7f565b915062000e018362000d7f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e3d5762000e3c62000bfc565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e7a8262000e4d565b9050919050565b62000e8c8162000e6d565b811462000e9857600080fd5b50565b60008151905062000eac8162000e81565b92915050565b60006020828403121562000ecb5762000eca62000e48565b5b600062000edb8482850162000e9b565b91505092915050565b62000eef8162000e6d565b82525050565b600060408201905062000f0c600083018562000ee4565b62000f1b602083018462000ee4565b9392505050565b62000f2d8162000d7f565b82525050565b600060208201905062000f4a600083018462000f22565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000f8c57808201518184015260208101905062000f6f565b8381111562000f9c576000848401525b50505050565b6000601f19601f8301169050919050565b600062000fc08262000f50565b62000fcc818562000f5b565b935062000fde81856020860162000f6c565b62000fe98162000fa2565b840191505092915050565b6000602082019050818103600083015262001010818462000fb3565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010548262000d7f565b9150620010618362000d7f565b92508262001074576200107362001018565b5b828204905092915050565b61458c806200108f6000396000f3fe60806040526004361061036f5760003560e01c806379900169116101c6578063c45a0155116100f7578063f2fde38b11610095578063f887ea401161006f578063f887ea4014610c6b578063f8b45b0514610c96578063fabe628314610cc1578063ffb54a9914610cea57610376565b8063f2fde38b14610bee578063f6f88ba214610c17578063f708a64f14610c4257610376565b8063d920334e116100d1578063d920334e14610b46578063dd62ed3e14610b6f578063dfbfbc6b14610bac578063f089067a14610bc357610376565b8063c45a015514610ad9578063c7b8981c14610b04578063caa5581b14610b1b57610376565b80638b42507f11610164578063a3a2e89e1161013e578063a3a2e89e14610a1f578063a8aa1b3114610a48578063a9059cbb14610a73578063bb542ef014610ab057610376565b80638b42507f1461098c5780638ea5220f146109c957806395d89b41146109f457610376565b806381934031116101a057806381934031146108f657806389291a8f1461091f578063893d20e81461093657806389a302711461096157610376565b8063799001691461088b5780637db1342c146108b65780637f913ab0146108df57610376565b80633f4218e0116102a0578063571ac8b01161023e57806370a082311161021857806370a08231146107bb5780637437681e146107f857806375df13051461082357806377359aa71461084e57610376565b8063571ac8b01461075057806366eb37851461078d5780636ef7aebd146107a457610376565b80634626402b1161027a5780634626402b146106a657806347062402146106d15780634a74bb02146106fc57806357044f8f1461072757610376565b80633f4218e0146106015780634355855a1461063e578063454343771461067b57610376565b80632b14ca561161030d5780632f54bf6e116102e75780632f54bf6e1461054757806330ca34ee14610584578063313ce567146105ad5780633dab5269146105d857610376565b80632b14ca56146104ca5780632d48e896146104f55780632dbea2e11461051e57610376565b806318160ddd1161034957806318160ddd1461040e5780631f53ac021461043957806323b872dd146104625780632b112e491461049f57610376565b80630445b6671461037b57806306fdde03146103a6578063095ea7b3146103d157610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d15565b60405161039d9190613580565b60405180910390f35b3480156103b257600080fd5b506103bb610d1b565b6040516103c89190613634565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f391906136e5565b610d58565b6040516104059190613740565b60405180910390f35b34801561041a57600080fd5b50610423610e4a565b6040516104309190613580565b60405180910390f35b34801561044557600080fd5b50610460600480360381019061045b9190613799565b610e54565b005b34801561046e57600080fd5b50610489600480360381019061048491906137c6565b610ee0565b6040516104969190613740565b60405180910390f35b3480156104ab57600080fd5b506104b46110e0565b6040516104c19190613580565b60405180910390f35b3480156104d657600080fd5b506104df611162565b6040516104ec9190613580565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190613819565b611168565b005b34801561052a57600080fd5b5061054560048036038101906105409190613859565b611243565b005b34801561055357600080fd5b5061056e600480360381019061056991906138ac565b6112a5565b60405161057b9190613740565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a69190613819565b6112fe565b005b3480156105b957600080fd5b506105c26113e4565b6040516105cf91906138f5565b60405180910390f35b3480156105e457600080fd5b506105ff60048036038101906105fa919061393c565b6113ed565b005b34801561060d57600080fd5b50610628600480360381019061062391906138ac565b61145a565b6040516106359190613740565b60405180910390f35b34801561064a57600080fd5b50610665600480360381019061066091906138ac565b61147a565b6040516106729190613740565b60405180910390f35b34801561068757600080fd5b5061069061149a565b60405161069d9190613580565b60405180910390f35b3480156106b257600080fd5b506106bb6114a0565b6040516106c8919061398b565b60405180910390f35b3480156106dd57600080fd5b506106e66114c6565b6040516106f39190613580565b60405180910390f35b34801561070857600080fd5b506107116114cc565b60405161071e9190613740565b60405180910390f35b34801561073357600080fd5b5061074e600480360381019061074991906139a6565b6114df565b005b34801561075c57600080fd5b50610777600480360381019061077291906138ac565b611531565b6040516107849190613740565b60405180910390f35b34801561079957600080fd5b506107a2611564565b005b3480156107b057600080fd5b506107b96115b6565b005b3480156107c757600080fd5b506107e260048036038101906107dd91906138ac565b61161b565b6040516107ef9190613580565b60405180910390f35b34801561080457600080fd5b5061080d611664565b60405161081a9190613580565b60405180910390f35b34801561082f57600080fd5b5061083861166a565b6040516108459190613580565b60405180910390f35b34801561085a57600080fd5b50610875600480360381019061087091906138ac565b611670565b6040516108829190613580565b60405180910390f35b34801561089757600080fd5b506108a0611715565b6040516108ad9190613580565b60405180910390f35b3480156108c257600080fd5b506108dd60048036038101906108d891906139a6565b61171b565b005b3480156108eb57600080fd5b506108f46117b2565b005b34801561090257600080fd5b5061091d600480360381019061091891906139a6565b611891565b005b34801561092b57600080fd5b50610934611969565b005b34801561094257600080fd5b5061094b611a2c565b604051610958919061398b565b60405180910390f35b34801561096d57600080fd5b50610976611a55565b604051610983919061398b565b60405180910390f35b34801561099857600080fd5b506109b360048036038101906109ae91906138ac565b611a7b565b6040516109c09190613740565b60405180910390f35b3480156109d557600080fd5b506109de611a9b565b6040516109eb919061398b565b60405180910390f35b348015610a0057600080fd5b50610a09611ac1565b604051610a169190613634565b60405180910390f35b348015610a2b57600080fd5b50610a466004803603810190610a4191906139d3565b611afe565b005b348015610a5457600080fd5b50610a5d611ba1565b604051610a6a919061398b565b60405180910390f35b348015610a7f57600080fd5b50610a9a6004803603810190610a9591906136e5565b611bc7565b604051610aa79190613740565b60405180910390f35b348015610abc57600080fd5b50610ad76004803603810190610ad29190613799565b611bdc565b005b348015610ae557600080fd5b50610aee611c68565b604051610afb919061398b565b60405180910390f35b348015610b1057600080fd5b50610b19611c8e565b005b348015610b2757600080fd5b50610b30611d1d565b604051610b3d9190613580565b60405180910390f35b348015610b5257600080fd5b50610b6d6004803603810190610b6891906139a6565b611d23565b005b348015610b7b57600080fd5b50610b966004803603810190610b919190613a13565b611dba565b604051610ba39190613580565b60405180910390f35b348015610bb857600080fd5b50610bc1611e41565b005b348015610bcf57600080fd5b50610bd8611f0d565b604051610be59190613ab2565b60405180910390f35b348015610bfa57600080fd5b50610c156004803603810190610c109190613799565b611f33565b005b348015610c2357600080fd5b50610c2c611ff5565b604051610c399190613580565b60405180910390f35b348015610c4e57600080fd5b50610c696004803603810190610c6491906139d3565b611ffb565b005b348015610c7757600080fd5b50610c80612051565b604051610c8d9190613b00565b60405180910390f35b348015610ca257600080fd5b50610cab612077565b604051610cb89190613580565b60405180910390f35b348015610ccd57600080fd5b50610ce86004803603810190610ce391906139d3565b61207d565b005b348015610cf657600080fd5b50610cff612120565b604051610d0c9190613740565b60405180910390f35b601c5481565b60606040518060400160405280600d81526020017f576f726c64204375702044616f00000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e389190613580565b60405180910390a36001905092915050565b6000600254905090565b610e5d336112a5565b610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9390613b67565b60405180910390fd5b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110cc5761104b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217d9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110d78484846121e1565b90509392505050565b600061115d611110600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661161b565b61114f61113e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661161b565b600254612a2c90919063ffffffff16565b612a2c90919063ffffffff16565b905090565b600d5481565b611171336112a5565b6111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a790613b67565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b815260040161120d929190613b87565b600060405180830381600087803b15801561122757600080fd5b505af115801561123b573d6000803e3d6000fd5b505050505050565b61124c336112a5565b61128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290613b67565b60405180910390fd5b82600e8190555081600f8190555080601081905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b611307336112a5565b611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133d90613b67565b60405180910390fd5b81600c8190555080600d819055506008600c54111561139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190613bfc565b60405180910390fd5b6008600d5411156113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790613bfc565b60405180910390fd5b5050565b60006012905090565b6113f6336112a5565b611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c90613b67565b60405180910390fd5b81601760156101000a81548160ff02191690831515021790555080601c819055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60115481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b601760159054906101000a900460ff1681565b6114e8336112a5565b611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e90613b67565b60405180910390fd5b8060198190555050565b600061155d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d58565b9050919050565b61156d336112a5565b6115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a390613b67565b60405180910390fd5b6115b4612a76565b565b6115bf336112a5565b6115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590613b67565b60405180910390fd5b6001601760166101000a81548160ff021916908315150217905550565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601a5481565b60105481565b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b81526004016116cd919061398b565b602060405180830381865afa1580156116ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170e9190613c31565b9050919050565b600f5481565b611724336112a5565b611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a90613b67565b60405180910390fd5b601b548110156117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179f90613caa565b60405180910390fd5b80601b8190555050565b6117bb336112a5565b6117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190613b67565b60405180910390fd5b601760169054906101000a900460ff161561184a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184190613d16565b60405180910390fd5b6012600a6118589190613e98565b62e4e1c06118669190613ee3565b601a819055506012600a61187a9190613e98565b6301c9c3806118899190613ee3565b601b81905550565b61189a336112a5565b6118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090613b67565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b81526004016119349190613580565b600060405180830381600087803b15801561194e57600080fd5b505af1158015611962573d6000803e3d6000fd5b5050505050565b611972336112a5565b6119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a890613b67565b60405180910390fd5b60004790506000811115611a2957601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a27573d6000803e3d6000fd5b505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f5743440000000000000000000000000000000000000000000000000000000000815250905090565b611b07336112a5565b611b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3d90613b67565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bd43384846121e1565b905092915050565b611be5336112a5565b611c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1b90613b67565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342d86693336040518263ffffffff1660e01b8152600401611ce9919061398b565b600060405180830381600087803b158015611d0357600080fd5b505af1158015611d17573d6000803e3d6000fd5b50505050565b600e5481565b611d2c336112a5565b611d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6290613b67565b60405180910390fd5b601a54811015611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da790613f89565b60405180910390fd5b80601a8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e4a336112a5565b611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8090613b67565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dfbfbc6b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611ef357600080fd5b505af1158015611f07573d6000803e3d6000fd5b50505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f3c336112a5565b611f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7290613b67565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611fea9190613fca565b60405180910390a150565b60195481565b612004336112a5565b612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a90613b67565b60405180910390fd5b61204d8282612c38565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b612086336112a5565b6120c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bc90613b67565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601760169054906101000a900460ff1681565b600061217583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e90565b905092915050565b60008383111582906121c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bc9190613634565b60405180910390fd5b50600083856121d49190613fe5565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561228c575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122e157601760169054906101000a900460ff166122e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d790614065565b60405180910390fd5b5b601760149054906101000a900460ff161561230857612301848484612ef3565b9050612a25565b601a54821115806123625750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6123a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612398906140d1565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661248957601b5461244783600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130c690919063ffffffff16565b1115612488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247f9061413d565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156124f45750601760149054906101000a900460ff16155b801561250c5750601760159054906101000a900460ff165b80156125595750601c54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561256757612566612a76565b5b6125f0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217d9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126d95750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6126e357826126ef565b6126ee858585613124565b5b905061274381600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130c690919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128a057601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161287392919061415d565b600060405180830381600087803b15801561288d57600080fd5b505af192505050801561289e575060015b505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129ba57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161298d92919061415d565b600060405180830381600087803b1580156129a757600080fd5b505af19250505080156129b8575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a179190613580565b60405180910390a360019150505b9392505050565b6000612a6e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061217d565b905092915050565b6001601760146101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050612ade816132cc565b60004790506000612b0d6064612aff601054856134ed90919063ffffffff16565b61213390919063ffffffff16565b90506000612b396064612b2b600f54866134ed90919063ffffffff16565b61213390919063ffffffff16565b90506000831115612c1757601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612bac573d6000803e3d6000fd5b50601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612c15573d6000803e3d6000fd5b505b505050506000601760146101000a81548160ff021916908315150217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612cc25750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612ccb57600080fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612dbd57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612d869291906141c1565b600060405180830381600087803b158015612da057600080fd5b505af1158015612db4573d6000803e3d6000fd5b50505050612e8c565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612e5992919061415d565b600060405180830381600087803b158015612e7357600080fd5b505af1158015612e87573d6000803e3d6000fd5b505050505b5050565b60008083118290612ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ece9190613634565b60405180910390fd5b5060008385612ee69190614219565b9050809150509392505050565b6000612f7e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217d9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061301382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130c690919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130b39190613580565b60405180910390a3600190509392505050565b60008082846130d5919061424a565b90508381101561311a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613111906142ec565b60405180910390fd5b8091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461318457600c54613188565b600d545b905060006131b260646131a484876134ed90919063ffffffff16565b61213390919063ffffffff16565b905061320681600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130c690919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132a69190613580565b60405180910390a36132c18185612a2c90919063ffffffff16565b925050509392505050565b6000600267ffffffffffffffff8111156132e9576132e861430c565b5b6040519080825280602002602001820160405280156133175781602001602082028036833780820191505090505b509050308160008151811061332f5761332e61433b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133fa919061437f565b8160018151811061340e5761340d61433b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134523083610d58565b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016134b795949392919061446a565b600060405180830381600087803b1580156134d157600080fd5b505af11580156134e5573d6000803e3d6000fd5b505050505050565b60008083036134ff5760009050613561565b6000828461350d9190613ee3565b905082848261351c9190614219565b1461355c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161355390614536565b60405180910390fd5b809150505b92915050565b6000819050919050565b61357a81613567565b82525050565b60006020820190506135956000830184613571565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135d55780820151818401526020810190506135ba565b838111156135e4576000848401525b50505050565b6000601f19601f8301169050919050565b60006136068261359b565b61361081856135a6565b93506136208185602086016135b7565b613629816135ea565b840191505092915050565b6000602082019050818103600083015261364e81846135fb565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136868261365b565b9050919050565b6136968161367b565b81146136a157600080fd5b50565b6000813590506136b38161368d565b92915050565b6136c281613567565b81146136cd57600080fd5b50565b6000813590506136df816136b9565b92915050565b600080604083850312156136fc576136fb613656565b5b600061370a858286016136a4565b925050602061371b858286016136d0565b9150509250929050565b60008115159050919050565b61373a81613725565b82525050565b60006020820190506137556000830184613731565b92915050565b60006137668261365b565b9050919050565b6137768161375b565b811461378157600080fd5b50565b6000813590506137938161376d565b92915050565b6000602082840312156137af576137ae613656565b5b60006137bd84828501613784565b91505092915050565b6000806000606084860312156137df576137de613656565b5b60006137ed868287016136a4565b93505060206137fe868287016136a4565b925050604061380f868287016136d0565b9150509250925092565b600080604083850312156138305761382f613656565b5b600061383e858286016136d0565b925050602061384f858286016136d0565b9150509250929050565b60008060006060848603121561387257613871613656565b5b6000613880868287016136d0565b9350506020613891868287016136d0565b92505060406138a2868287016136d0565b9150509250925092565b6000602082840312156138c2576138c1613656565b5b60006138d0848285016136a4565b91505092915050565b600060ff82169050919050565b6138ef816138d9565b82525050565b600060208201905061390a60008301846138e6565b92915050565b61391981613725565b811461392457600080fd5b50565b60008135905061393681613910565b92915050565b6000806040838503121561395357613952613656565b5b600061396185828601613927565b9250506020613972858286016136d0565b9150509250929050565b6139858161367b565b82525050565b60006020820190506139a0600083018461397c565b92915050565b6000602082840312156139bc576139bb613656565b5b60006139ca848285016136d0565b91505092915050565b600080604083850312156139ea576139e9613656565b5b60006139f8858286016136a4565b9250506020613a0985828601613927565b9150509250929050565b60008060408385031215613a2a57613a29613656565b5b6000613a38858286016136a4565b9250506020613a49858286016136a4565b9150509250929050565b6000819050919050565b6000613a78613a73613a6e8461365b565b613a53565b61365b565b9050919050565b6000613a8a82613a5d565b9050919050565b6000613a9c82613a7f565b9050919050565b613aac81613a91565b82525050565b6000602082019050613ac76000830184613aa3565b92915050565b6000613ad882613a5d565b9050919050565b6000613aea82613acd565b9050919050565b613afa81613adf565b82525050565b6000602082019050613b156000830184613af1565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613b516006836135a6565b9150613b5c82613b1b565b602082019050919050565b60006020820190508181036000830152613b8081613b44565b9050919050565b6000604082019050613b9c6000830185613571565b613ba96020830184613571565b9392505050565b7f746f6f2068696768000000000000000000000000000000000000000000000000600082015250565b6000613be66008836135a6565b9150613bf182613bb0565b602082019050919050565b60006020820190508181036000830152613c1581613bd9565b9050919050565b600081519050613c2b816136b9565b92915050565b600060208284031215613c4757613c46613656565b5b6000613c5584828501613c1c565b91505092915050565b7f43616e206e6f74206c6f776572206d61782077616c6c65740000000000000000600082015250565b6000613c946018836135a6565b9150613c9f82613c5e565b602082019050919050565b60006020820190508181036000830152613cc381613c87565b9050919050565b7f4265686176652e00000000000000000000000000000000000000000000000000600082015250565b6000613d006007836135a6565b9150613d0b82613cca565b602082019050919050565b60006020820190508181036000830152613d2f81613cf3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613dbc57808604811115613d9857613d97613d36565b5b6001851615613da75780820291505b8081029050613db585613d65565b9450613d7c565b94509492505050565b600082613dd55760019050613e91565b81613de35760009050613e91565b8160018114613df95760028114613e0357613e32565b6001915050613e91565b60ff841115613e1557613e14613d36565b5b8360020a915084821115613e2c57613e2b613d36565b5b50613e91565b5060208310610133831016604e8410600b8410161715613e675782820a905083811115613e6257613e61613d36565b5b613e91565b613e748484846001613d72565b92509050818404811115613e8b57613e8a613d36565b5b81810290505b9392505050565b6000613ea382613567565b9150613eae836138d9565b9250613edb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613dc5565b905092915050565b6000613eee82613567565b9150613ef983613567565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f3257613f31613d36565b5b828202905092915050565b7f43616e206e6f74206c6f776572206d6178207478000000000000000000000000600082015250565b6000613f736014836135a6565b9150613f7e82613f3d565b602082019050919050565b60006020820190508181036000830152613fa281613f66565b9050919050565b6000613fb482613acd565b9050919050565b613fc481613fa9565b82525050565b6000602082019050613fdf6000830184613fbb565b92915050565b6000613ff082613567565b9150613ffb83613567565b92508282101561400e5761400d613d36565b5b828203905092915050565b7f686f6c6420757220686f7273657320626967206775792e000000000000000000600082015250565b600061404f6017836135a6565b915061405a82614019565b602082019050919050565b6000602082019050818103600083015261407e81614042565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b60006140bb6002836135a6565b91506140c682614085565b602082019050919050565b600060208201905081810360008301526140ea816140ae565b9050919050565b7f77616c6c65740000000000000000000000000000000000000000000000000000600082015250565b60006141276006836135a6565b9150614132826140f1565b602082019050919050565b600060208201905081810360008301526141568161411a565b9050919050565b6000604082019050614172600083018561397c565b61417f6020830184613571565b9392505050565b6000819050919050565b60006141ab6141a66141a184614186565b613a53565b613567565b9050919050565b6141bb81614190565b82525050565b60006040820190506141d6600083018561397c565b6141e360208301846141b2565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061422482613567565b915061422f83613567565b92508261423f5761423e6141ea565b5b828204905092915050565b600061425582613567565b915061426083613567565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561429557614294613d36565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142d6601b836135a6565b91506142e1826142a0565b602082019050919050565b60006020820190508181036000830152614305816142c9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506143798161368d565b92915050565b60006020828403121561439557614394613656565b5b60006143a38482850161436a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6143e18161367b565b82525050565b60006143f383836143d8565b60208301905092915050565b6000602082019050919050565b6000614417826143ac565b61442181856143b7565b935061442c836143c8565b8060005b8381101561445d57815161444488826143e7565b975061444f836143ff565b925050600181019050614430565b5085935050505092915050565b600060a08201905061447f6000830188613571565b61448c60208301876141b2565b818103604083015261449e818661440c565b90506144ad606083018561397c565b6144ba6080830184613571565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006145206021836135a6565b915061452b826144c4565b604082019050919050565b6000602082019050818103600083015261454f81614513565b905091905056fea2646970667358221220f800f12dd6bbcf00a1ad8ded8ee49c5f117d3d54ee1f913ee4dc23ef4224834f64736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600b55610708600c556000600d5534801561002e57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506120f6806101286000396000f3fe60806040526004361061010d5760003560e01c80638c21cd5211610095578063dfbfbc6b11610064578063dfbfbc6b14610361578063e2d2e21914610378578063efca2eed146103a3578063ffb2c479146103ce578063ffd49c84146103f75761011c565b80638c21cd52146102b0578063997664d7146102ed578063ce7c2ac214610318578063d0e30db0146103575761011c565b80632d48e896116100dc5780632d48e896146101dd5780633a98ef391461020657806342d86693146102315780634fab0ae81461025a57806389a30271146102855761011c565b806311ce023d1461012157806314b6ca961461014c57806326987b601461017557806328fd3198146101a05761011c565b3661011c5761011a610422565b005b600080fd5b34801561012d57600080fd5b5061013661080a565b604051610143919061184f565b60405180910390f35b34801561015857600080fd5b50610173600480360381019061016e91906118f9565b610810565b005b34801561018157600080fd5b5061018a610acf565b604051610197919061184f565b60405180910390f35b3480156101ac57600080fd5b506101c760048036038101906101c29190611939565b610ad5565b6040516101d4919061184f565b60405180910390f35b3480156101e957600080fd5b5061020460048036038101906101ff9190611966565b610bee565b005b34801561021257600080fd5b5061021b610c58565b604051610228919061184f565b60405180910390f35b34801561023d57600080fd5b5061025860048036038101906102539190611939565b610c5e565b005b34801561026657600080fd5b5061026f610cc2565b60405161027c919061184f565b60405180910390f35b34801561029157600080fd5b5061029a610cc8565b6040516102a791906119b5565b60405180910390f35b3480156102bc57600080fd5b506102d760048036038101906102d29190611939565b610cee565b6040516102e491906119eb565b60405180910390f35b3480156102f957600080fd5b50610302610d5b565b60405161030f919061184f565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190611939565b610d61565b60405161034e93929190611a06565b60405180910390f35b61035f610422565b005b34801561036d57600080fd5b50610376610d8b565b005b34801561038457600080fd5b5061038d610f3b565b60405161039a919061184f565b60405180910390f35b3480156103af57600080fd5b506103b8610f41565b6040516103c5919061184f565b60405180910390f35b3480156103da57600080fd5b506103f560048036038101906103f09190611a3d565b610f47565b005b34801561040357600080fd5b5061040c611082565b604051610419919061184f565b60405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161047f91906119b5565b602060405180830381865afa15801561049c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c09190611a7f565b90506000600267ffffffffffffffff8111156104df576104de611aac565b5b60405190808252806020026020018201604052801561050d5781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561057d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a19190611af0565b816000815181106105b5576105b4611b1d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061062657610625611b1d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b81526004016106c39493929190611c4f565b6000604051808303818588803b1580156106dc57600080fd5b505af11580156106f0573d6000803e3d6000fd5b505050505060006107a583600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161075691906119b5565b602060405180830381865afa158015610773573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107979190611a7f565b61108890919063ffffffff16565b90506107bc816008546110d290919063ffffffff16565b6008819055506107ff6107ee6007546107e084600b5461113090919063ffffffff16565b6111aa90919063ffffffff16565b600a546110d290919063ffffffff16565b600a81905550505050565b600b5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461086857600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156108bd576108bc826111f4565b5b60008111801561090f57506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156109225761091d82611487565b610984565b60008114801561097457506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156109835761098282611536565b5b5b6109ed816109df600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460075461108890919063ffffffff16565b6110d290919063ffffffff16565b60078190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610a85600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461173d565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600e5481565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403610b295760009050610be9565b6000610b76600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461173d565b90506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050808211610bd157600092505050610be9565b610be4818361108890919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c4657600080fd5b81600c8190555080600d819055505050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cb657600080fd5b610cbf816111f4565b50565b600d5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600042600c54600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d3e9190611cca565b108015610d545750600d54610d5283610ad5565b115b9050919050565b60085481565b60066020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610de357600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e4091906119b5565b602060405180830381865afa158015610e5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e819190611a7f565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7387abb6335ddf62dc908e5b3cb3953b75e7e06ea0836040518363ffffffff1660e01b8152600401610ef4929190611d20565b6020604051808303816000875af1158015610f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f379190611d75565b5050565b600a5481565b60095481565b6000600380549050905060008103610f5f575061107f565b60008060005a90505b8482108015610f7657508383105b1561107a5783600e5410610f8d576000600e819055505b610fd66003600e5481548110610fa657610fa5611b1d565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610cee565b15611025576110246003600e5481548110610ff457610ff3611b1d565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111f4565b5b61104a61103b5a8361108890919063ffffffff16565b836110d290919063ffffffff16565b91505a9050600e600081548092919061106290611da2565b9190505550828061107290611da2565b935050610f68565b505050505b50565b600c5481565b60006110ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061176f565b905092915050565b60008082846110e19190611cca565b905083811015611126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111d90611e47565b60405180910390fd5b8091505092915050565b600080830361114257600090506111a4565b600082846111509190611e67565b905082848261115f9190611ef0565b1461119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690611f93565b60405180910390fd5b809150505b92915050565b60006111ec83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d3565b905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154031561148457600061124a82610ad5565b905060008111156114825761126a816009546110d290919063ffffffff16565b600981905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016112cd929190611d20565b6020604051808303816000875af11580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611d75565b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113aa81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546110d290919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018190555061143b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461173d565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600380549050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6003600160038054905061154a9190611fb3565b8154811061155b5761155a611b1d565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106115d9576115d8611b1d565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460046000600360016003805490506116799190611fb3565b8154811061168a57611689611b1d565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600380548061170557611704611fe7565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000611768600b5461175a600a548561113090919063ffffffff16565b6111aa90919063ffffffff16565b9050919050565b60008383111582906117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae919061209e565b60405180910390fd5b50600083856117c69190611fb3565b9050809150509392505050565b6000808311829061181a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611811919061209e565b60405180910390fd5b50600083856118299190611ef0565b9050809150509392505050565b6000819050919050565b61184981611836565b82525050565b60006020820190506118646000830184611840565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061189a8261186f565b9050919050565b6118aa8161188f565b81146118b557600080fd5b50565b6000813590506118c7816118a1565b92915050565b6118d681611836565b81146118e157600080fd5b50565b6000813590506118f3816118cd565b92915050565b600080604083850312156119105761190f61186a565b5b600061191e858286016118b8565b925050602061192f858286016118e4565b9150509250929050565b60006020828403121561194f5761194e61186a565b5b600061195d848285016118b8565b91505092915050565b6000806040838503121561197d5761197c61186a565b5b600061198b858286016118e4565b925050602061199c858286016118e4565b9150509250929050565b6119af8161188f565b82525050565b60006020820190506119ca60008301846119a6565b92915050565b60008115159050919050565b6119e5816119d0565b82525050565b6000602082019050611a0060008301846119dc565b92915050565b6000606082019050611a1b6000830186611840565b611a286020830185611840565b611a356040830184611840565b949350505050565b600060208284031215611a5357611a5261186a565b5b6000611a61848285016118e4565b91505092915050565b600081519050611a79816118cd565b92915050565b600060208284031215611a9557611a9461186a565b5b6000611aa384828501611a6a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050611aea816118a1565b92915050565b600060208284031215611b0657611b0561186a565b5b6000611b1484828501611adb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000611b7b611b76611b7184611b4c565b611b56565b611836565b9050919050565b611b8b81611b60565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611bc68161188f565b82525050565b6000611bd88383611bbd565b60208301905092915050565b6000602082019050919050565b6000611bfc82611b91565b611c068185611b9c565b9350611c1183611bad565b8060005b83811015611c42578151611c298882611bcc565b9750611c3483611be4565b925050600181019050611c15565b5085935050505092915050565b6000608082019050611c646000830187611b82565b8181036020830152611c768186611bf1565b9050611c8560408301856119a6565b611c926060830184611840565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611cd582611836565b9150611ce083611836565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d1557611d14611c9b565b5b828201905092915050565b6000604082019050611d3560008301856119a6565b611d426020830184611840565b9392505050565b611d52816119d0565b8114611d5d57600080fd5b50565b600081519050611d6f81611d49565b92915050565b600060208284031215611d8b57611d8a61186a565b5b6000611d9984828501611d60565b91505092915050565b6000611dad82611836565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611ddf57611dde611c9b565b5b600182019050919050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611e31601b83611dea565b9150611e3c82611dfb565b602082019050919050565b60006020820190508181036000830152611e6081611e24565b9050919050565b6000611e7282611836565b9150611e7d83611836565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611eb657611eb5611c9b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611efb82611836565b9150611f0683611836565b925082611f1657611f15611ec1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f7d602183611dea565b9150611f8882611f21565b604082019050919050565b60006020820190508181036000830152611fac81611f70565b9050919050565b6000611fbe82611836565b9150611fc983611836565b925082821015611fdc57611fdb611c9b565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081519050919050565b60005b8381101561203f578082015181840152602081019050612024565b8381111561204e576000848401525b50505050565b6000601f19601f8301169050919050565b600061207082612016565b61207a8185611dea565b935061208a818560208601612021565b61209381612054565b840191505092915050565b600060208201905081810360008301526120b88184612065565b90509291505056fea2646970667358221220e9c263ba9cc1503c1fb5139bc418611bbf8246d019311a780f7591a33d584b4664736f6c634300080d003300000000000000000000000087abb6335ddf62dc908e5b3cb3953b75e7e06ea0

Deployed Bytecode

0x60806040526004361061036f5760003560e01c806379900169116101c6578063c45a0155116100f7578063f2fde38b11610095578063f887ea401161006f578063f887ea4014610c6b578063f8b45b0514610c96578063fabe628314610cc1578063ffb54a9914610cea57610376565b8063f2fde38b14610bee578063f6f88ba214610c17578063f708a64f14610c4257610376565b8063d920334e116100d1578063d920334e14610b46578063dd62ed3e14610b6f578063dfbfbc6b14610bac578063f089067a14610bc357610376565b8063c45a015514610ad9578063c7b8981c14610b04578063caa5581b14610b1b57610376565b80638b42507f11610164578063a3a2e89e1161013e578063a3a2e89e14610a1f578063a8aa1b3114610a48578063a9059cbb14610a73578063bb542ef014610ab057610376565b80638b42507f1461098c5780638ea5220f146109c957806395d89b41146109f457610376565b806381934031116101a057806381934031146108f657806389291a8f1461091f578063893d20e81461093657806389a302711461096157610376565b8063799001691461088b5780637db1342c146108b65780637f913ab0146108df57610376565b80633f4218e0116102a0578063571ac8b01161023e57806370a082311161021857806370a08231146107bb5780637437681e146107f857806375df13051461082357806377359aa71461084e57610376565b8063571ac8b01461075057806366eb37851461078d5780636ef7aebd146107a457610376565b80634626402b1161027a5780634626402b146106a657806347062402146106d15780634a74bb02146106fc57806357044f8f1461072757610376565b80633f4218e0146106015780634355855a1461063e578063454343771461067b57610376565b80632b14ca561161030d5780632f54bf6e116102e75780632f54bf6e1461054757806330ca34ee14610584578063313ce567146105ad5780633dab5269146105d857610376565b80632b14ca56146104ca5780632d48e896146104f55780632dbea2e11461051e57610376565b806318160ddd1161034957806318160ddd1461040e5780631f53ac021461043957806323b872dd146104625780632b112e491461049f57610376565b80630445b6671461037b57806306fdde03146103a6578063095ea7b3146103d157610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d15565b60405161039d9190613580565b60405180910390f35b3480156103b257600080fd5b506103bb610d1b565b6040516103c89190613634565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f391906136e5565b610d58565b6040516104059190613740565b60405180910390f35b34801561041a57600080fd5b50610423610e4a565b6040516104309190613580565b60405180910390f35b34801561044557600080fd5b50610460600480360381019061045b9190613799565b610e54565b005b34801561046e57600080fd5b50610489600480360381019061048491906137c6565b610ee0565b6040516104969190613740565b60405180910390f35b3480156104ab57600080fd5b506104b46110e0565b6040516104c19190613580565b60405180910390f35b3480156104d657600080fd5b506104df611162565b6040516104ec9190613580565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190613819565b611168565b005b34801561052a57600080fd5b5061054560048036038101906105409190613859565b611243565b005b34801561055357600080fd5b5061056e600480360381019061056991906138ac565b6112a5565b60405161057b9190613740565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a69190613819565b6112fe565b005b3480156105b957600080fd5b506105c26113e4565b6040516105cf91906138f5565b60405180910390f35b3480156105e457600080fd5b506105ff60048036038101906105fa919061393c565b6113ed565b005b34801561060d57600080fd5b50610628600480360381019061062391906138ac565b61145a565b6040516106359190613740565b60405180910390f35b34801561064a57600080fd5b50610665600480360381019061066091906138ac565b61147a565b6040516106729190613740565b60405180910390f35b34801561068757600080fd5b5061069061149a565b60405161069d9190613580565b60405180910390f35b3480156106b257600080fd5b506106bb6114a0565b6040516106c8919061398b565b60405180910390f35b3480156106dd57600080fd5b506106e66114c6565b6040516106f39190613580565b60405180910390f35b34801561070857600080fd5b506107116114cc565b60405161071e9190613740565b60405180910390f35b34801561073357600080fd5b5061074e600480360381019061074991906139a6565b6114df565b005b34801561075c57600080fd5b50610777600480360381019061077291906138ac565b611531565b6040516107849190613740565b60405180910390f35b34801561079957600080fd5b506107a2611564565b005b3480156107b057600080fd5b506107b96115b6565b005b3480156107c757600080fd5b506107e260048036038101906107dd91906138ac565b61161b565b6040516107ef9190613580565b60405180910390f35b34801561080457600080fd5b5061080d611664565b60405161081a9190613580565b60405180910390f35b34801561082f57600080fd5b5061083861166a565b6040516108459190613580565b60405180910390f35b34801561085a57600080fd5b50610875600480360381019061087091906138ac565b611670565b6040516108829190613580565b60405180910390f35b34801561089757600080fd5b506108a0611715565b6040516108ad9190613580565b60405180910390f35b3480156108c257600080fd5b506108dd60048036038101906108d891906139a6565b61171b565b005b3480156108eb57600080fd5b506108f46117b2565b005b34801561090257600080fd5b5061091d600480360381019061091891906139a6565b611891565b005b34801561092b57600080fd5b50610934611969565b005b34801561094257600080fd5b5061094b611a2c565b604051610958919061398b565b60405180910390f35b34801561096d57600080fd5b50610976611a55565b604051610983919061398b565b60405180910390f35b34801561099857600080fd5b506109b360048036038101906109ae91906138ac565b611a7b565b6040516109c09190613740565b60405180910390f35b3480156109d557600080fd5b506109de611a9b565b6040516109eb919061398b565b60405180910390f35b348015610a0057600080fd5b50610a09611ac1565b604051610a169190613634565b60405180910390f35b348015610a2b57600080fd5b50610a466004803603810190610a4191906139d3565b611afe565b005b348015610a5457600080fd5b50610a5d611ba1565b604051610a6a919061398b565b60405180910390f35b348015610a7f57600080fd5b50610a9a6004803603810190610a9591906136e5565b611bc7565b604051610aa79190613740565b60405180910390f35b348015610abc57600080fd5b50610ad76004803603810190610ad29190613799565b611bdc565b005b348015610ae557600080fd5b50610aee611c68565b604051610afb919061398b565b60405180910390f35b348015610b1057600080fd5b50610b19611c8e565b005b348015610b2757600080fd5b50610b30611d1d565b604051610b3d9190613580565b60405180910390f35b348015610b5257600080fd5b50610b6d6004803603810190610b6891906139a6565b611d23565b005b348015610b7b57600080fd5b50610b966004803603810190610b919190613a13565b611dba565b604051610ba39190613580565b60405180910390f35b348015610bb857600080fd5b50610bc1611e41565b005b348015610bcf57600080fd5b50610bd8611f0d565b604051610be59190613ab2565b60405180910390f35b348015610bfa57600080fd5b50610c156004803603810190610c109190613799565b611f33565b005b348015610c2357600080fd5b50610c2c611ff5565b604051610c399190613580565b60405180910390f35b348015610c4e57600080fd5b50610c696004803603810190610c6491906139d3565b611ffb565b005b348015610c7757600080fd5b50610c80612051565b604051610c8d9190613b00565b60405180910390f35b348015610ca257600080fd5b50610cab612077565b604051610cb89190613580565b60405180910390f35b348015610ccd57600080fd5b50610ce86004803603810190610ce391906139d3565b61207d565b005b348015610cf657600080fd5b50610cff612120565b604051610d0c9190613740565b60405180910390f35b601c5481565b60606040518060400160405280600d81526020017f576f726c64204375702044616f00000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e389190613580565b60405180910390a36001905092915050565b6000600254905090565b610e5d336112a5565b610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9390613b67565b60405180910390fd5b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110cc5761104b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217d9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110d78484846121e1565b90509392505050565b600061115d611110600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661161b565b61114f61113e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661161b565b600254612a2c90919063ffffffff16565b612a2c90919063ffffffff16565b905090565b600d5481565b611171336112a5565b6111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a790613b67565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b815260040161120d929190613b87565b600060405180830381600087803b15801561122757600080fd5b505af115801561123b573d6000803e3d6000fd5b505050505050565b61124c336112a5565b61128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290613b67565b60405180910390fd5b82600e8190555081600f8190555080601081905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b611307336112a5565b611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133d90613b67565b60405180910390fd5b81600c8190555080600d819055506008600c54111561139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190613bfc565b60405180910390fd5b6008600d5411156113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790613bfc565b60405180910390fd5b5050565b60006012905090565b6113f6336112a5565b611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c90613b67565b60405180910390fd5b81601760156101000a81548160ff02191690831515021790555080601c819055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60115481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b601760159054906101000a900460ff1681565b6114e8336112a5565b611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e90613b67565b60405180910390fd5b8060198190555050565b600061155d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d58565b9050919050565b61156d336112a5565b6115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a390613b67565b60405180910390fd5b6115b4612a76565b565b6115bf336112a5565b6115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590613b67565b60405180910390fd5b6001601760166101000a81548160ff021916908315150217905550565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601a5481565b60105481565b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b81526004016116cd919061398b565b602060405180830381865afa1580156116ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170e9190613c31565b9050919050565b600f5481565b611724336112a5565b611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a90613b67565b60405180910390fd5b601b548110156117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179f90613caa565b60405180910390fd5b80601b8190555050565b6117bb336112a5565b6117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190613b67565b60405180910390fd5b601760169054906101000a900460ff161561184a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184190613d16565b60405180910390fd5b6012600a6118589190613e98565b62e4e1c06118669190613ee3565b601a819055506012600a61187a9190613e98565b6301c9c3806118899190613ee3565b601b81905550565b61189a336112a5565b6118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090613b67565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b81526004016119349190613580565b600060405180830381600087803b15801561194e57600080fd5b505af1158015611962573d6000803e3d6000fd5b5050505050565b611972336112a5565b6119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a890613b67565b60405180910390fd5b60004790506000811115611a2957601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a27573d6000803e3d6000fd5b505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f5743440000000000000000000000000000000000000000000000000000000000815250905090565b611b07336112a5565b611b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3d90613b67565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bd43384846121e1565b905092915050565b611be5336112a5565b611c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1b90613b67565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342d86693336040518263ffffffff1660e01b8152600401611ce9919061398b565b600060405180830381600087803b158015611d0357600080fd5b505af1158015611d17573d6000803e3d6000fd5b50505050565b600e5481565b611d2c336112a5565b611d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6290613b67565b60405180910390fd5b601a54811015611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da790613f89565b60405180910390fd5b80601a8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e4a336112a5565b611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8090613b67565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dfbfbc6b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611ef357600080fd5b505af1158015611f07573d6000803e3d6000fd5b50505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f3c336112a5565b611f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7290613b67565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611fea9190613fca565b60405180910390a150565b60195481565b612004336112a5565b612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a90613b67565b60405180910390fd5b61204d8282612c38565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b612086336112a5565b6120c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bc90613b67565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601760169054906101000a900460ff1681565b600061217583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e90565b905092915050565b60008383111582906121c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bc9190613634565b60405180910390fd5b50600083856121d49190613fe5565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561228c575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122e157601760169054906101000a900460ff166122e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d790614065565b60405180910390fd5b5b601760149054906101000a900460ff161561230857612301848484612ef3565b9050612a25565b601a54821115806123625750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6123a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612398906140d1565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661248957601b5461244783600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130c690919063ffffffff16565b1115612488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247f9061413d565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156124f45750601760149054906101000a900460ff16155b801561250c5750601760159054906101000a900460ff165b80156125595750601c54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561256757612566612a76565b5b6125f0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217d9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126d95750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6126e357826126ef565b6126ee858585613124565b5b905061274381600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130c690919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128a057601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161287392919061415d565b600060405180830381600087803b15801561288d57600080fd5b505af192505050801561289e575060015b505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129ba57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161298d92919061415d565b600060405180830381600087803b1580156129a757600080fd5b505af19250505080156129b8575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a179190613580565b60405180910390a360019150505b9392505050565b6000612a6e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061217d565b905092915050565b6001601760146101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050612ade816132cc565b60004790506000612b0d6064612aff601054856134ed90919063ffffffff16565b61213390919063ffffffff16565b90506000612b396064612b2b600f54866134ed90919063ffffffff16565b61213390919063ffffffff16565b90506000831115612c1757601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612bac573d6000803e3d6000fd5b50601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612c15573d6000803e3d6000fd5b505b505050506000601760146101000a81548160ff021916908315150217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612cc25750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612ccb57600080fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612dbd57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612d869291906141c1565b600060405180830381600087803b158015612da057600080fd5b505af1158015612db4573d6000803e3d6000fd5b50505050612e8c565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612e5992919061415d565b600060405180830381600087803b158015612e7357600080fd5b505af1158015612e87573d6000803e3d6000fd5b505050505b5050565b60008083118290612ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ece9190613634565b60405180910390fd5b5060008385612ee69190614219565b9050809150509392505050565b6000612f7e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217d9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061301382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130c690919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130b39190613580565b60405180910390a3600190509392505050565b60008082846130d5919061424a565b90508381101561311a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613111906142ec565b60405180910390fd5b8091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461318457600c54613188565b600d545b905060006131b260646131a484876134ed90919063ffffffff16565b61213390919063ffffffff16565b905061320681600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130c690919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132a69190613580565b60405180910390a36132c18185612a2c90919063ffffffff16565b925050509392505050565b6000600267ffffffffffffffff8111156132e9576132e861430c565b5b6040519080825280602002602001820160405280156133175781602001602082028036833780820191505090505b509050308160008151811061332f5761332e61433b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133fa919061437f565b8160018151811061340e5761340d61433b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134523083610d58565b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016134b795949392919061446a565b600060405180830381600087803b1580156134d157600080fd5b505af11580156134e5573d6000803e3d6000fd5b505050505050565b60008083036134ff5760009050613561565b6000828461350d9190613ee3565b905082848261351c9190614219565b1461355c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161355390614536565b60405180910390fd5b809150505b92915050565b6000819050919050565b61357a81613567565b82525050565b60006020820190506135956000830184613571565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135d55780820151818401526020810190506135ba565b838111156135e4576000848401525b50505050565b6000601f19601f8301169050919050565b60006136068261359b565b61361081856135a6565b93506136208185602086016135b7565b613629816135ea565b840191505092915050565b6000602082019050818103600083015261364e81846135fb565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136868261365b565b9050919050565b6136968161367b565b81146136a157600080fd5b50565b6000813590506136b38161368d565b92915050565b6136c281613567565b81146136cd57600080fd5b50565b6000813590506136df816136b9565b92915050565b600080604083850312156136fc576136fb613656565b5b600061370a858286016136a4565b925050602061371b858286016136d0565b9150509250929050565b60008115159050919050565b61373a81613725565b82525050565b60006020820190506137556000830184613731565b92915050565b60006137668261365b565b9050919050565b6137768161375b565b811461378157600080fd5b50565b6000813590506137938161376d565b92915050565b6000602082840312156137af576137ae613656565b5b60006137bd84828501613784565b91505092915050565b6000806000606084860312156137df576137de613656565b5b60006137ed868287016136a4565b93505060206137fe868287016136a4565b925050604061380f868287016136d0565b9150509250925092565b600080604083850312156138305761382f613656565b5b600061383e858286016136d0565b925050602061384f858286016136d0565b9150509250929050565b60008060006060848603121561387257613871613656565b5b6000613880868287016136d0565b9350506020613891868287016136d0565b92505060406138a2868287016136d0565b9150509250925092565b6000602082840312156138c2576138c1613656565b5b60006138d0848285016136a4565b91505092915050565b600060ff82169050919050565b6138ef816138d9565b82525050565b600060208201905061390a60008301846138e6565b92915050565b61391981613725565b811461392457600080fd5b50565b60008135905061393681613910565b92915050565b6000806040838503121561395357613952613656565b5b600061396185828601613927565b9250506020613972858286016136d0565b9150509250929050565b6139858161367b565b82525050565b60006020820190506139a0600083018461397c565b92915050565b6000602082840312156139bc576139bb613656565b5b60006139ca848285016136d0565b91505092915050565b600080604083850312156139ea576139e9613656565b5b60006139f8858286016136a4565b9250506020613a0985828601613927565b9150509250929050565b60008060408385031215613a2a57613a29613656565b5b6000613a38858286016136a4565b9250506020613a49858286016136a4565b9150509250929050565b6000819050919050565b6000613a78613a73613a6e8461365b565b613a53565b61365b565b9050919050565b6000613a8a82613a5d565b9050919050565b6000613a9c82613a7f565b9050919050565b613aac81613a91565b82525050565b6000602082019050613ac76000830184613aa3565b92915050565b6000613ad882613a5d565b9050919050565b6000613aea82613acd565b9050919050565b613afa81613adf565b82525050565b6000602082019050613b156000830184613af1565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613b516006836135a6565b9150613b5c82613b1b565b602082019050919050565b60006020820190508181036000830152613b8081613b44565b9050919050565b6000604082019050613b9c6000830185613571565b613ba96020830184613571565b9392505050565b7f746f6f2068696768000000000000000000000000000000000000000000000000600082015250565b6000613be66008836135a6565b9150613bf182613bb0565b602082019050919050565b60006020820190508181036000830152613c1581613bd9565b9050919050565b600081519050613c2b816136b9565b92915050565b600060208284031215613c4757613c46613656565b5b6000613c5584828501613c1c565b91505092915050565b7f43616e206e6f74206c6f776572206d61782077616c6c65740000000000000000600082015250565b6000613c946018836135a6565b9150613c9f82613c5e565b602082019050919050565b60006020820190508181036000830152613cc381613c87565b9050919050565b7f4265686176652e00000000000000000000000000000000000000000000000000600082015250565b6000613d006007836135a6565b9150613d0b82613cca565b602082019050919050565b60006020820190508181036000830152613d2f81613cf3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613dbc57808604811115613d9857613d97613d36565b5b6001851615613da75780820291505b8081029050613db585613d65565b9450613d7c565b94509492505050565b600082613dd55760019050613e91565b81613de35760009050613e91565b8160018114613df95760028114613e0357613e32565b6001915050613e91565b60ff841115613e1557613e14613d36565b5b8360020a915084821115613e2c57613e2b613d36565b5b50613e91565b5060208310610133831016604e8410600b8410161715613e675782820a905083811115613e6257613e61613d36565b5b613e91565b613e748484846001613d72565b92509050818404811115613e8b57613e8a613d36565b5b81810290505b9392505050565b6000613ea382613567565b9150613eae836138d9565b9250613edb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613dc5565b905092915050565b6000613eee82613567565b9150613ef983613567565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f3257613f31613d36565b5b828202905092915050565b7f43616e206e6f74206c6f776572206d6178207478000000000000000000000000600082015250565b6000613f736014836135a6565b9150613f7e82613f3d565b602082019050919050565b60006020820190508181036000830152613fa281613f66565b9050919050565b6000613fb482613acd565b9050919050565b613fc481613fa9565b82525050565b6000602082019050613fdf6000830184613fbb565b92915050565b6000613ff082613567565b9150613ffb83613567565b92508282101561400e5761400d613d36565b5b828203905092915050565b7f686f6c6420757220686f7273657320626967206775792e000000000000000000600082015250565b600061404f6017836135a6565b915061405a82614019565b602082019050919050565b6000602082019050818103600083015261407e81614042565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b60006140bb6002836135a6565b91506140c682614085565b602082019050919050565b600060208201905081810360008301526140ea816140ae565b9050919050565b7f77616c6c65740000000000000000000000000000000000000000000000000000600082015250565b60006141276006836135a6565b9150614132826140f1565b602082019050919050565b600060208201905081810360008301526141568161411a565b9050919050565b6000604082019050614172600083018561397c565b61417f6020830184613571565b9392505050565b6000819050919050565b60006141ab6141a66141a184614186565b613a53565b613567565b9050919050565b6141bb81614190565b82525050565b60006040820190506141d6600083018561397c565b6141e360208301846141b2565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061422482613567565b915061422f83613567565b92508261423f5761423e6141ea565b5b828204905092915050565b600061425582613567565b915061426083613567565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561429557614294613d36565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142d6601b836135a6565b91506142e1826142a0565b602082019050919050565b60006020820190508181036000830152614305816142c9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506143798161368d565b92915050565b60006020828403121561439557614394613656565b5b60006143a38482850161436a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6143e18161367b565b82525050565b60006143f383836143d8565b60208301905092915050565b6000602082019050919050565b6000614417826143ac565b61442181856143b7565b935061442c836143c8565b8060005b8381101561445d57815161444488826143e7565b975061444f836143ff565b925050600181019050614430565b5085935050505092915050565b600060a08201905061447f6000830188613571565b61448c60208301876141b2565b818103604083015261449e818661440c565b90506144ad606083018561397c565b6144ba6080830184613571565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006145206021836135a6565b915061452b826144c4565b604082019050919050565b6000602082019050818103600083015261454f81614513565b905091905056fea2646970667358221220f800f12dd6bbcf00a1ad8ded8ee49c5f117d3d54ee1f913ee4dc23ef4224834f64736f6c634300080d0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000087abb6335ddf62dc908e5b3cb3953b75e7e06ea0

-----Decoded View---------------
Arg [0] : _owner (address): 0x87ABb6335dDF62DC908E5b3cB3953B75E7E06eA0

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000087abb6335ddf62dc908e5b3cb3953b75e7e06ea0


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.