false
true
0

Contract Address Details

0xeAb7c22B8F5111559A2c2B1A3402d3FC713CAc27

Token
Bullseye Bot Token (BLSEYE🎯)
Creator
0x28bd5a–95a82b at 0x37354c–d19cad
Balance
76,101,201.607894184161284272 PLS ( )
Tokens
Fetching tokens...
Transactions
3,350 Transactions
Transfers
0 Transfers
Gas Used
0
Last Balance Update
25869693
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
Bullseye




Optimization enabled
false
Compiler version
v0.7.6+commit.7338295f




EVM Version
default




Verified at
2024-10-31T21:37:18.149378Z

Constructor Arguments

0x000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000174876e800000000000000000000000000000000000000000000000000000000000000001242756c6c7365796520426f7420546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a424c53455945f09f8eaf00000000000000000000000000000000000000000000

Arg [0] (string) : Bullseye Bot Token
Arg [1] (string) : BLSEYE🎯
Arg [2] (uint8) : 10
Arg [3] (uint256) : 100000000000

              

Contract source code

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

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

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

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

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

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

// PRC20 standard interface.
interface IPRC20 {
    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);
}

// Standard PRC20 Ownable/Authorizations Contract
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

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

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

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

    event OwnershipTransferred(address owner);
}

// PRC20 standard Factory Interface.
interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

// PRC20 standard Router Interface.
interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

// Dividend Distributor Interface
interface IDividendDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
}

// Dividend Distributor Contract as Interface
contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address _token;

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

    address WPLS = 0xA1077a294dDE1B09bB078844df40758a5D0f9a27;
    IDEXRouter router;

    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 = 0;
    uint256 public minDistribution = 0;

    uint256 currentIndex;

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

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

    constructor (address _router) {
        router = _router != address(0)
            ? IDEXRouter(_router)
            : IDEXRouter(0x165C3410fC91EF562C50559f7d2289fEbed552d9); // Pulse X V2 Router
        _token = msg.sender;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken {
        minPeriod = _minPeriod;
        minDistribution = _minDistribution;
    }

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

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

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

    function deposit() external payable override onlyToken {
        uint256 amount = address(this).balance - msg.value;

        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

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

        if(shareholderCount == 0) { return; }

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

        uint256 iterations = 0;

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

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

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) internal view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

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

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            payable(shareholder).transfer(amount); // Transfer Native Gas Token PLS
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function claimDividend() external {
        distributeDividend(msg.sender);
    }

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

// PRC20 Token Contract
contract Bullseye is IPRC20, Auth {
    using SafeMath for uint256;

    address WPLS = 0xA1077a294dDE1B09bB078844df40758a5D0f9a27; // Wrapped Native Gas Token
    address DEAD = 0x0000000000000000000000000000000000000369; // Pulsechain Dead Address
    address ZERO = 0x0000000000000000000000000000000000000000; // Ethereum Dead Address

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _totalSupply;

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

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

    bool public isfirst = true;
    bool public notliftoff = true;

    uint256 public liquidityFee    = 0; // 30% Auto Liquidity Providing (Dynamic Backing) (Only for start, see endantijeet() function)
    uint256 public reflectionFee   = 0; // 0% PLS Rewards (Only for start, see endantijeet() function)
    uint256 public marketingFee    = 0;
    uint256 public devFee          = 0;
    uint256 public totalFee        = marketingFee + reflectionFee + liquidityFee + devFee;
    uint256 public feeDenominator  = 100;

    uint256 public sellMultiplier  = 100; // Mutliplier Applied on Sell

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public devFeeReceiver;

    uint256 targetLiquidity = 100; // Target Liquidity Backing %
    uint256 targetLiquidityDenominator = 100; // Target Liquidity Backing Denominator

    IDEXRouter public router;
    address public pair;

    bool public tradingOpen = false;

    DividendDistributor public distributor;
    uint256 distributorGas = 700000; // Gas used for distributing Rewards

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 25 / 10000; // Setting Swap Threshold (Required % of Tokens held by contract before performing swap for PLS to then use for fee model)
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (
        string memory tokenName, 
        string memory tokenSymbol, 
        uint8 tokenDecimals, 
        uint256 tokenTotalSupply
    ) Auth(msg.sender) {
        _name = tokenName;
        _symbol = tokenSymbol;
        _decimals = tokenDecimals; 
        _totalSupply = tokenTotalSupply.mul(10**uint256(tokenDecimals));
        swapThreshold = _totalSupply * 25 / 10000;
        router = IDEXRouter(0x165C3410fC91EF562C50559f7d2289fEbed552d9); // Pulse X V2 Router
        pair = IDEXFactory(router.factory()).createPair(WPLS, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        distributor = new DividendDistributor(address(router));

        isFeeExempt[msg.sender] = true;

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

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;
        devFeeReceiver = msg.sender;

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

    receive() external payable { } // Allow Contract to recieve PLS

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external view override returns (uint8) { return _decimals; }
    function symbol() external view override returns (string memory) { return _symbol; }
    function name() external view 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, uint256(-1));
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }


    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

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

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

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount,(recipient == pair)) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

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

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

        emit Transfer(sender, recipient, amountReceived);
        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 shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        if (isFeeExempt[recipient]){
            return false;
        }
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {
        
        uint256 multiplier = isSell ? sellMultiplier : 100;
        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        uint256 remainingAmount = feeAmount;

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

        return amount.sub(feeAmount);
    }

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

    function clearStuckBalance(uint256 amountPercentage) external authorized {
        uint256 amountPLS = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountPLS * amountPercentage / 100);
    }

    function clearStuckBalance_sender(uint256 amountPercentage) external authorized {
        uint256 amountPLS = address(this).balance;
        payable(msg.sender).transfer(amountPLS * amountPercentage / 100);
    }

    function set_sell_multiplier(uint256 Multiplier) external onlyOwner{
        require(Multiplier < 300);
        sellMultiplier = Multiplier;   
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WPLS;

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalPLSFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountPLSLiquidity = amountPLS.mul(dynamicLiquidityFee).div(totalPLSFee).div(2);
        uint256 amountPLSReflection = amountPLS.mul(reflectionFee).div(totalPLSFee);
        uint256 amountPLSMarketing = amountPLS.mul(marketingFee).div(totalPLSFee);
        uint256 amountPLSDev = amountPLS.mul(devFee).div(totalPLSFee);

        try distributor.deposit{value: amountPLSReflection}() {} catch {}

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountPLSMarketing, gas: 30000}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountPLSDev, gas: 30000}("");
        
        // Supress warning msg
        tmpSuccess = false;

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

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

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

    function setFees(uint256 _liquidityFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _devFee) external authorized {
        liquidityFee = _liquidityFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        totalFee = _liquidityFee.add(_reflectionFee).add(_marketingFee).add(_devFee);
        feeDenominator = 100;
        require(totalFee < 5, "Fees cannot be more than 5%");
    }

    function endantijeet() external authorized {
        require(isfirst, "Anti-jeet already activated");
        // Set Fees
        liquidityFee = 1; //Set 2% Liquidity Fee
        reflectionFee = 2; //Set Reflection Fee
        marketingFee = 0;
        devFee = 0;
        totalFee = liquidityFee.add(reflectionFee).add(marketingFee).add(devFee);
        feeDenominator = 100;
        sellMultiplier = 100;

        // Set Swap Threshold
        swapThreshold = _totalSupply * 10 / 10000;

        isfirst = false;
    }

    function liftoff() public onlyOwner {
        require(notliftoff, "Moon mission already a go");
        tradingOpen = true;

        // Set Fees
        liquidityFee = 20; //Set 2% Liquidity Fee
        reflectionFee = 0; //Set Reflection Fee
        marketingFee = 0;
        devFee = 0;
        totalFee = liquidityFee.add(reflectionFee).add(marketingFee).add(devFee);
        feeDenominator = 100;
        sellMultiplier = 150;

        notliftoff = false;
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver ) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }

    function setDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

event AutoLiquify(uint256 amountPLS, uint256 amountBOG);

}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"string","name":"tokenName","internalType":"string"},{"type":"string","name":"tokenSymbol","internalType":"string"},{"type":"uint8","name":"tokenDecimals","internalType":"uint8"},{"type":"uint256","name":"tokenTotalSupply","internalType":"uint256"}]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"AutoLiquify","inputs":[{"type":"uint256","name":"amountPLS","internalType":"uint256","indexed":false},{"type":"uint256","name":"amountBOG","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"holder","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approveMax","inputs":[{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"autoLiquidityReceiver","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"clearStuckBalance","inputs":[{"type":"uint256","name":"amountPercentage","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"clearStuckBalance_sender","inputs":[{"type":"uint256","name":"amountPercentage","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"devFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"devFeeReceiver","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract DividendDistributor"}],"name":"distributor","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"endantijeet","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"feeDenominator","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getCirculatingSupply","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getLiquidityBacking","inputs":[{"type":"uint256","name":"accuracy","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"getOwner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isAuthorized","inputs":[{"type":"address","name":"adr","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isOverLiquified","inputs":[{"type":"uint256","name":"target","internalType":"uint256"},{"type":"uint256","name":"accuracy","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isOwner","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isfirst","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"liftoff","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"liquidityFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"marketingFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"marketingFeeReceiver","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"notliftoff","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"pair","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"reflectionFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IDEXRouter"}],"name":"router","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"sellMultiplier","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setDistributionCriteria","inputs":[{"type":"uint256","name":"_minPeriod","internalType":"uint256"},{"type":"uint256","name":"_minDistribution","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setDistributorSettings","inputs":[{"type":"uint256","name":"gas","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setFeeReceivers","inputs":[{"type":"address","name":"_autoLiquidityReceiver","internalType":"address"},{"type":"address","name":"_marketingFeeReceiver","internalType":"address"},{"type":"address","name":"_devFeeReceiver","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setFees","inputs":[{"type":"uint256","name":"_liquidityFee","internalType":"uint256"},{"type":"uint256","name":"_reflectionFee","internalType":"uint256"},{"type":"uint256","name":"_marketingFee","internalType":"uint256"},{"type":"uint256","name":"_devFee","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setIsDividendExempt","inputs":[{"type":"address","name":"holder","internalType":"address"},{"type":"bool","name":"exempt","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setIsFeeExempt","inputs":[{"type":"address","name":"holder","internalType":"address"},{"type":"bool","name":"exempt","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setSwapBackSettings","inputs":[{"type":"bool","name":"_enabled","internalType":"bool"},{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setTargetLiquidity","inputs":[{"type":"uint256","name":"_target","internalType":"uint256"},{"type":"uint256","name":"_denominator","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"set_sell_multiplier","inputs":[{"type":"uint256","name":"Multiplier","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"swapEnabled","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"swapThreshold","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"tradingOpen","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"sender","internalType":"address"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"adr","internalType":"address payable"}]},{"type":"receive","stateMutability":"payable"}]
              

Contract Creation Code

Verify & Publish
0x608060405273a1077a294dde1b09bb078844df40758a5d0f9a27600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610369600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60006101000a81548160ff0219169083151502179055506001600d60016101000a81548160ff0219169083151502179055506000600e556000600f5560006010556000601155601154600e54600f5460105401010160125560646013556064601455606460185560646019556000601b60146101000a81548160ff021916908315150217905550620aae60601d556001601e60006101000a81548160ff021916908315150217905550612710601960085402816200019c57fe5b04601f55348015620001ad57600080fd5b50604051620061493803806200614983398181016040526080811015620001d357600080fd5b8101908080516040519392919084640100000000821115620001f457600080fd5b838201915060208201858111156200020b57600080fd5b82518660018202830111640100000000821117156200022957600080fd5b8083526020830192505050908051906020019080838360005b838110156200025f57808201518184015260208101905062000242565b50505050905090810190601f1680156200028d5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084640100000000821115620002b157600080fd5b83820191506020820185811115620002c857600080fd5b8251866001820283011164010000000082111715620002e657600080fd5b8083526020830192505050908051906020019080838360005b838110156200031c578082015181840152602081019050620002ff565b50505050905090810190601f1680156200034a5780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291908051906020019092919050505033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505083600590805190602001906200041992919062000bc9565b5082600690805190602001906200043292919062000bc9565b5081600760006101000a81548160ff021916908360ff1602179055506200046e8260ff16600a0a8262000b3e60201b6200294e1790919060201c565b600881905550612710601960085402816200048557fe5b04601f8190555073165c3410fc91ef562c50559f7d2289febed552d9601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200054a57600080fd5b505afa1580156200055f573d6000803e3d6000fd5b505050506040513d60208110156200057657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200063057600080fd5b505af115801562000645573d6000803e3d6000fd5b505050506040513d60208110156200065c57600080fd5b8101908080519060200190929190505050601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620007a19062000c60565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015620007de573d6000803e3d6000fd5b50601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040518082815260200191505060405180910390a35050505062000c8d565b60008083141562000b53576000905062000bc3565b600082840290508284828162000b6557fe5b041462000bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620061286021913960400191505060405180910390fd5b809150505b92915050565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000c01576000855562000c4d565b82601f1062000c1c57805160ff191683800117855562000c4d565b8280016001018555821562000c4d579182015b8281111562000c4c57825182559160200191906001019062000c2f565b5b50905062000c5c919062000c6e565b5090565b6115318062004bf783390190565b5b8082111562000c8957600081600090555060010162000c6f565b5090565b613f5a8062000c9d6000396000f3fe6080604052600436106102975760003560e01c8063893d20e81161015a578063dd62ed3e116100c1578063f708a64f1161007a578063f708a64f14610eac578063f887ea4014610f09578063fe634ad014610f4a578063fe9fbb8014610f77578063fed0d2a114610fde578063ffb54a99146110095761029e565b8063dd62ed3e14610ce6578063df20fd4914610d6b578063e96fada214610db2578063ec72d65f14610df3578063f064299b14610e2e578063f2fde38b14610e5b5761029e565b8063bfe1092811610113578063bfe1092814610b2c578063c191c92614610b6d578063ca33e64c14610b84578063d51ed1c814610bc5578063d7c0103214610c14578063dab84ee714610ca55761029e565b8063893d20e81461094357806395d89b411461098457806398118cb414610a145780639d1944f514610a3f578063a8aa1b3114610a7a578063a9059cbb14610abb5761029e565b80632f54bf6e116101fe5780636827e764116101b75780636827e764146107d75780636b67c4df146108025780636ddd17131461082d5780636fcba3771461085a57806370a08231146108b357806383ad7994146109185761029e565b80632f54bf6e1461062c578063313ce567146106935780633c1b6e8d146106c157806344a33fd2146106d8578063571ac8b014610713578063658d4b7f1461077a5761029e565b80631da1db5e116102505780631da1db5e146104805780631df4ccfc146104bb578063201e7991146104e657806323b872dd1461052b5780632b112e49146105bc5780632d48e896146105e75761029e565b80630445b667146102a357806306fdde03146102ce578063095ea7b31461035e5780631161ae39146103cf578063180b0d7e1461042a57806318160ddd146104555761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8611036565b6040518082815260200191505060405180910390f35b3480156102da57600080fd5b506102e361103c565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610323578082015181840152602081019050610308565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036a57600080fd5b506103b76004803603604081101561038157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110de565b60405180821515815260200191505060405180910390f35b3480156103db57600080fd5b50610412600480360360408110156103f257600080fd5b8101908080359060200190929190803590602001909291905050506111d0565b60405180821515815260200191505060405180910390f35b34801561043657600080fd5b5061043f6111e5565b6040518082815260200191505060405180910390f35b34801561046157600080fd5b5061046a6111eb565b6040518082815260200191505060405180910390f35b34801561048c57600080fd5b506104b9600480360360208110156104a357600080fd5b81019080803590602001909291905050506111f5565b005b3480156104c757600080fd5b506104d06112ee565b6040518082815260200191505060405180910390f35b3480156104f257600080fd5b506105296004803603604081101561050957600080fd5b8101908080359060200190929190803590602001909291905050506112f4565b005b34801561053757600080fd5b506105a46004803603606081101561054e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611381565b60405180821515815260200191505060405180910390f35b3480156105c857600080fd5b506105d1611581565b6040518082815260200191505060405180910390f35b3480156105f357600080fd5b5061062a6004803603604081101561060a57600080fd5b810190808035906020019092919080359060200190929190505050611603565b005b34801561063857600080fd5b5061067b6004803603602081101561064f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611717565b60405180821515815260200191505060405180910390f35b34801561069f57600080fd5b506106a8611770565b604051808260ff16815260200191505060405180910390f35b3480156106cd57600080fd5b506106d6611787565b005b3480156106e457600080fd5b50610711600480360360208110156106fb57600080fd5b810190808035906020019092919050505061192d565b005b34801561071f57600080fd5b506107626004803603602081101561073657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a04565b60405180821515815260200191505060405180910390f35b34801561078657600080fd5b506107d56004803603604081101561079d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611a37565b005b3480156107e357600080fd5b506107ec611b0d565b6040518082815260200191505060405180910390f35b34801561080e57600080fd5b50610817611b13565b6040518082815260200191505060405180910390f35b34801561083957600080fd5b50610842611b19565b60405180821515815260200191505060405180910390f35b34801561086657600080fd5b506108b16004803603608081101561087d57600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611b2c565b005b3480156108bf57600080fd5b50610902600480360360208110156108d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c86565b6040518082815260200191505060405180910390f35b34801561092457600080fd5b5061092d611ccf565b6040518082815260200191505060405180910390f35b34801561094f57600080fd5b50610958611cd5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561099057600080fd5b50610999611cfe565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109d95780820151818401526020810190506109be565b50505050905090810190601f168015610a065780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a2057600080fd5b50610a29611da0565b6040518082815260200191505060405180910390f35b348015610a4b57600080fd5b50610a7860048036036020811015610a6257600080fd5b8101908080359060200190929190505050611da6565b005b348015610a8657600080fd5b50610a8f611e3a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ac757600080fd5b50610b1460048036036040811015610ade57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e60565b60405180821515815260200191505060405180910390f35b348015610b3857600080fd5b50610b41611e75565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7957600080fd5b50610b82611e9b565b005b348015610b9057600080fd5b50610b99612045565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bd157600080fd5b50610bfe60048036036020811015610be857600080fd5b810190808035906020019092919050505061206b565b6040518082815260200191505060405180910390f35b348015610c2057600080fd5b50610ca360048036036060811015610c3757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120dd565b005b348015610cb157600080fd5b50610cba612220565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610cf257600080fd5b50610d5560048036036040811015610d0957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612246565b6040518082815260200191505060405180910390f35b348015610d7757600080fd5b50610db060048036036040811015610d8e57600080fd5b81019080803515159060200190929190803590602001909291905050506122cd565b005b348015610dbe57600080fd5b50610dc761236d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610dff57600080fd5b50610e2c60048036036020811015610e1657600080fd5b8101908080359060200190929190505050612393565b005b348015610e3a57600080fd5b50610e43612426565b60405180821515815260200191505060405180910390f35b348015610e6757600080fd5b50610eaa60048036036020811015610e7e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612439565b005b348015610eb857600080fd5b50610f0760048036036040811015610ecf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061259b565b005b348015610f1557600080fd5b50610f1e6128a6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f5657600080fd5b50610f5f6128cc565b60405180821515815260200191505060405180910390f35b348015610f8357600080fd5b50610fc660048036036020811015610f9a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128df565b60405180821515815260200191505060405180910390f35b348015610fea57600080fd5b50610ff3612935565b6040518082815260200191505060405180910390f35b34801561101557600080fd5b5061101e61293b565b60405180821515815260200191505060405180910390f35b601f5481565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110d45780601f106110a9576101008083540402835291602001916110d4565b820191906000526020600020905b8154815290600101906020018083116110b757829003601f168201915b5050505050905090565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000826111dc8361206b565b11905092915050565b60135481565b6000600854905090565b6111fe336128df565b611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000479050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848402816112bd57fe5b049081150290604051600060405180830381858888f193505050501580156112e9573d6000803e3d6000fd5b505050565b60125481565b6112fd336128df565b61136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601881905550806019819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461156d576114ec826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d49092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611578848484612a94565b90509392505050565b60006115fe6115b1600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611c86565b6115f06115df600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611c86565b60085461315690919063ffffffff16565b61315690919063ffffffff16565b905090565b61160c336128df565b61167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156116fb57600080fd5b505af115801561170f573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600760009054906101000a900460ff16905090565b611790336128df565b611802576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600d60009054906101000a900460ff16611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f416e74692d6a65657420616c726561647920616374697661746564000000000081525060200191505060405180910390fd5b6001600e819055506002600f81905550600060108190555060006011819055506118e36011546118d56010546118c7600f54600e546131a090919063ffffffff16565b6131a090919063ffffffff16565b6131a090919063ffffffff16565b60128190555060646013819055506064601481905550612710600a600854028161190957fe5b04601f819055506000600d60006101000a81548160ff021916908315150217905550565b611936336128df565b6119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc6064848402816119d357fe5b049081150290604051600060405180830381858888f193505050501580156119ff573d6000803e3d6000fd5b505050565b6000611a30827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6110de565b9050919050565b611a40336128df565b611ab2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b60105481565b601e60009054906101000a900460ff1681565b611b35336128df565b611ba7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83600e8190555082600f819055508160108190555080601181905550611bfa81611bec84611bde87896131a090919063ffffffff16565b6131a090919063ffffffff16565b6131a090919063ffffffff16565b6012819055506064601381905550600560125410611c80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f466565732063616e6e6f74206265206d6f7265207468616e203525000000000081525060200191505060405180910390fd5b50505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d965780601f10611d6b57610100808354040283529160200191611d96565b820191906000526020600020905b815481529060010190602001808311611d7957829003601f168201915b5050505050905090565b600e5481565b611daf336128df565b611e21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611e3057600080fd5b80601d8190555050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611e6d338484612a94565b905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ea433611717565b611f16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600d60019054906101000a900460ff16611f98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d6f6f6e206d697373696f6e20616c7265616479206120676f0000000000000081525060200191505060405180910390fd5b6001601b60146101000a81548160ff0219169083151502179055506014600e819055506000600f8190555060006010819055506000601181905550612012601154612004601054611ff6600f54600e546131a090919063ffffffff16565b6131a090919063ffffffff16565b6131a090919063ffffffff16565b601281905550606460138190555060966014819055506000600d60016101000a81548160ff021916908315150217905550565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006120d6612078611581565b6120c86120b960026120ab601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611c86565b61294e90919063ffffffff16565b8561294e90919063ffffffff16565b61322890919063ffffffff16565b9050919050565b6120e6336128df565b612158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6122d6336128df565b612348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601e60006101000a81548160ff02191690831515021790555080601f819055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61239c33611717565b61240e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61012c811061241c57600080fd5b8060148190555050565b600d60009054906101000a900460ff1681565b61244233611717565b6124b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6125a4336128df565b612616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156126a05750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6126a957600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156127b757601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561279a57600080fd5b505af11580156127ae573d6000803e3d6000fd5b505050506128a2565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561288957600080fd5b505af115801561289d573d6000803e3d6000fd5b505050505b5050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60019054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60145481565b601b60149054906101000a900460ff1681565b60008083141561296157600090506129ce565b600082840290508284828161297257fe5b04146129c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613f046021913960400191505060405180910390fd5b809150505b92915050565b6000838311158290612a81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a46578082015181840152602081019050612a2b565b50505050905090810190601f168015612a735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602060009054906101000a900460ff1615612abd57612ab6848484613272565b905061314f565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b615750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612be957601b60149054906101000a900460ff16612be8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b612bf1613445565b15612bff57612bfe61351c565b5b612c88826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d49092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612cd78585613c14565b612ce15782612d3d565b612d3c8584601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614613cc8565b5b9050612d9181600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131a090919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612f1357601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612ef757600080fd5b505af1925050508015612f08575060015b612f1157612f12565b5b5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661305257601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561303657600080fd5b505af1925050508015613047575060015b61305057613051565b5b5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479601d546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156130c957600080fd5b505af19250505080156130da575060015b6130e3576130e4565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061319883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506129d4565b905092915050565b60008082840190508381101561321e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061326a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613e3d565b905092915050565b60006132fd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d49092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061339282600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131a090919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156134b25750602060009054906101000a900460ff16155b80156134ca5750601e60009054906101000a900460ff165b80156135175750601f54600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602060006101000a81548160ff02191690831515021790555060006135476018546019546111d0565b61355357600e54613556565b60005b90506000613596600261358860125461357a86601f5461294e90919063ffffffff16565b61322890919063ffffffff16565b61322890919063ffffffff16565b905060006135af82601f5461315690919063ffffffff16565b90506000600267ffffffffffffffff811180156135cb57600080fd5b506040519080825280602002602001820160405280156135fa5781602001602082028036833780820191505090505b509050308160008151811061360b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061367557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561377857808201518184015260208101905061375d565b505050509050019650505050505050600060405180830381600087803b1580156137a157600080fd5b505af11580156137b5573d6000803e3d6000fd5b5050505060006137ce824761315690919063ffffffff16565b905060006137fa6137e960028961322890919063ffffffff16565b60125461315690919063ffffffff16565b9050600061383660026138288461381a8c8861294e90919063ffffffff16565b61322890919063ffffffff16565b61322890919063ffffffff16565b9050600061386183613853600f548761294e90919063ffffffff16565b61322890919063ffffffff16565b9050600061388c8461387e6010548861294e90919063ffffffff16565b61322890919063ffffffff16565b905060006138b7856138a96011548961294e90919063ffffffff16565b61322890919063ffffffff16565b9050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561392357600080fd5b505af193505050508015613935575060015b61393e5761393f565b5b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146139c6576040519150601f19603f3d011682016040523d82523d6000602084013e6139cb565b606091505b50509050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d8060008114613a54576040519150601f19603f3d011682016040523d82523d6000602084013e613a59565b606091505b5050809150506000905060008b1115613beb57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015613b5857600080fd5b505af1158015613b6c573d6000803e3d6000fd5b50505050506040513d6060811015613b8357600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051808381526020018281526020019250505060405180910390a15b5050505050505050505050506000602060006101000a81548160ff021916908315150217905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613c715760009050613cc2565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161590505b92915050565b60008082613cd7576064613cdb565b6014545b90506000613d1d606460135402613d0f84613d016012548a61294e90919063ffffffff16565b61294e90919063ffffffff16565b61322890919063ffffffff16565b90506000819050613d7681600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131a090919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3613e31828761315690919063ffffffff16565b93505050509392505050565b60008083118290613ee9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613eae578082015181840152602081019050613e93565b50505050905090810190601f168015613edb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613ef557fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212209c8c368c293dc153ba317ad308fb5b37732f523cdaf71a4e3c6ae6816a52a49f64736f6c63430007060033608060405273a1077a294dde1b09bb078844df40758a5d0f9a27600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600b556000600c556000600d5534801561008257600080fd5b50604051611531380380611531833981810160405260208110156100a557600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156101055773165c3410fc91ef562c50559f7d2289febed552d9610107565b805b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061139a806101976000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed1461033b578063f0fc6bca14610366578063ffb2c4791461037d578063ffd49c84146103b8576100dd565b8063ce7c2ac214610293578063d0e30db014610306578063e2d2e21914610310576100dd565b80632d48e896116100bb5780632d48e896146101cd5780633a98ef39146102125780634fab0ae81461023d578063997664d714610268576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd319814610168575b600080fd5b3480156100ee57600080fd5b506100f76103e3565b6040518082815260200191505060405180910390f35b34801561011957600080fd5b506101666004803603604081101561013057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103e9565b005b34801561017457600080fd5b506101b76004803603602081101561018b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a8565b6040518082815260200191505060405180910390f35b3480156101d957600080fd5b50610210600480360360408110156101f057600080fd5b8101908080359060200190929190803590602001909291905050506107c2565b005b34801561021e57600080fd5b5061022761082c565b6040518082815260200191505060405180910390f35b34801561024957600080fd5b50610252610832565b6040518082815260200191505060405180910390f35b34801561027457600080fd5b5061027d610838565b6040518082815260200191505060405180910390f35b34801561029f57600080fd5b506102e2600480360360208110156102b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083e565b60405180848152602001838152602001828152602001935050505060405180910390f35b61030e610868565b005b34801561031c57600080fd5b50610325610928565b6040518082815260200191505060405180910390f35b34801561034757600080fd5b5061035061092e565b6040518082815260200191505060405180910390f35b34801561037257600080fd5b5061037b610934565b005b34801561038957600080fd5b506103b6600480360360208110156103a057600080fd5b810190808035906020019092919050505061093f565b005b3480156103c457600080fd5b506103cd610ab9565b6040518082815260200191505060405180910390f35b600b5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461044157600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156104965761049582610abf565b5b6000811180156104e857506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104fb576104f682610cfd565b61055d565b60008114801561054d57506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b1561055c5761055b82610dac565b5b5b6105c6816105b8600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754610f8590919063ffffffff16565b610fcf90919063ffffffff16565b60078190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061065e600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611057565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106fd57600090506107bd565b600061074a600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611057565b90506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116107a5576000925050506107bd565b6107b88183610f8590919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081a57600080fd5b81600c8190555080600d819055505050565b60075481565b600d5481565b60085481565b60066020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108c057600080fd5b600034470390506108dc81600854610fcf90919063ffffffff16565b60088190555061091f61090e60075461090084600b5461108990919063ffffffff16565b61110f90919063ffffffff16565b600a54610fcf90919063ffffffff16565b600a8190555050565b600a5481565b60095481565b61093d33610abf565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099757600080fd5b6000600380549050905060008114156109b05750610ab6565b6000805a905060005b84831080156109c757508381105b15610ab15783600e54106109de576000600e819055505b610a206003600e54815481106109f057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611159565b15610a6857610a676003600e5481548110610a3757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610abf565b5b610a8d610a7e5a84610f8590919063ffffffff16565b84610fcf90919063ffffffff16565b92505a9150600e6000815480929190600101919050555080806001019150506109b9565b505050505b50565b600c5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610b0f57610cfa565b6000610b1a826106a8565b90506000811115610cf857610b3a81600954610fcf90919063ffffffff16565b6009819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b86573d6000803e3d6000fd5b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c2081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610fcf90919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610cb1600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611057565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600380549050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360016003805490500381548110610dc157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110610e3857fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460046000600360016003805490500381548110610ed957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003805480610f4d57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000610fc783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111bd565b905092915050565b60008082840190508381101561104d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000611082600b54611074600a548561108990919063ffffffff16565b61110f90919063ffffffff16565b9050919050565b60008083141561109c5760009050611109565b60008284029050828482816110ad57fe5b0414611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806113446021913960400191505060405180910390fd5b809150505b92915050565b600061115183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061127d565b905092915050565b600042600c54600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011080156111b65750600d546111b4836106a8565b115b9050919050565b600083831115829061126a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561122f578082015181840152602081019050611214565b50505050905090810190601f16801561125c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611329576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112ee5780820151818401526020810190506112d3565b50505050905090810190601f16801561131b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161133557fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220b1d5b907b58059a90294fa537d8c4c554da15955de09b15cae62364c118afe1f64736f6c63430007060033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000174876e800000000000000000000000000000000000000000000000000000000000000001242756c6c7365796520426f7420546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a424c53455945f09f8eaf00000000000000000000000000000000000000000000

Deployed ByteCode

0x6080604052600436106102975760003560e01c8063893d20e81161015a578063dd62ed3e116100c1578063f708a64f1161007a578063f708a64f14610eac578063f887ea4014610f09578063fe634ad014610f4a578063fe9fbb8014610f77578063fed0d2a114610fde578063ffb54a99146110095761029e565b8063dd62ed3e14610ce6578063df20fd4914610d6b578063e96fada214610db2578063ec72d65f14610df3578063f064299b14610e2e578063f2fde38b14610e5b5761029e565b8063bfe1092811610113578063bfe1092814610b2c578063c191c92614610b6d578063ca33e64c14610b84578063d51ed1c814610bc5578063d7c0103214610c14578063dab84ee714610ca55761029e565b8063893d20e81461094357806395d89b411461098457806398118cb414610a145780639d1944f514610a3f578063a8aa1b3114610a7a578063a9059cbb14610abb5761029e565b80632f54bf6e116101fe5780636827e764116101b75780636827e764146107d75780636b67c4df146108025780636ddd17131461082d5780636fcba3771461085a57806370a08231146108b357806383ad7994146109185761029e565b80632f54bf6e1461062c578063313ce567146106935780633c1b6e8d146106c157806344a33fd2146106d8578063571ac8b014610713578063658d4b7f1461077a5761029e565b80631da1db5e116102505780631da1db5e146104805780631df4ccfc146104bb578063201e7991146104e657806323b872dd1461052b5780632b112e49146105bc5780632d48e896146105e75761029e565b80630445b667146102a357806306fdde03146102ce578063095ea7b31461035e5780631161ae39146103cf578063180b0d7e1461042a57806318160ddd146104555761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8611036565b6040518082815260200191505060405180910390f35b3480156102da57600080fd5b506102e361103c565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610323578082015181840152602081019050610308565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036a57600080fd5b506103b76004803603604081101561038157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110de565b60405180821515815260200191505060405180910390f35b3480156103db57600080fd5b50610412600480360360408110156103f257600080fd5b8101908080359060200190929190803590602001909291905050506111d0565b60405180821515815260200191505060405180910390f35b34801561043657600080fd5b5061043f6111e5565b6040518082815260200191505060405180910390f35b34801561046157600080fd5b5061046a6111eb565b6040518082815260200191505060405180910390f35b34801561048c57600080fd5b506104b9600480360360208110156104a357600080fd5b81019080803590602001909291905050506111f5565b005b3480156104c757600080fd5b506104d06112ee565b6040518082815260200191505060405180910390f35b3480156104f257600080fd5b506105296004803603604081101561050957600080fd5b8101908080359060200190929190803590602001909291905050506112f4565b005b34801561053757600080fd5b506105a46004803603606081101561054e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611381565b60405180821515815260200191505060405180910390f35b3480156105c857600080fd5b506105d1611581565b6040518082815260200191505060405180910390f35b3480156105f357600080fd5b5061062a6004803603604081101561060a57600080fd5b810190808035906020019092919080359060200190929190505050611603565b005b34801561063857600080fd5b5061067b6004803603602081101561064f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611717565b60405180821515815260200191505060405180910390f35b34801561069f57600080fd5b506106a8611770565b604051808260ff16815260200191505060405180910390f35b3480156106cd57600080fd5b506106d6611787565b005b3480156106e457600080fd5b50610711600480360360208110156106fb57600080fd5b810190808035906020019092919050505061192d565b005b34801561071f57600080fd5b506107626004803603602081101561073657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a04565b60405180821515815260200191505060405180910390f35b34801561078657600080fd5b506107d56004803603604081101561079d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611a37565b005b3480156107e357600080fd5b506107ec611b0d565b6040518082815260200191505060405180910390f35b34801561080e57600080fd5b50610817611b13565b6040518082815260200191505060405180910390f35b34801561083957600080fd5b50610842611b19565b60405180821515815260200191505060405180910390f35b34801561086657600080fd5b506108b16004803603608081101561087d57600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611b2c565b005b3480156108bf57600080fd5b50610902600480360360208110156108d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c86565b6040518082815260200191505060405180910390f35b34801561092457600080fd5b5061092d611ccf565b6040518082815260200191505060405180910390f35b34801561094f57600080fd5b50610958611cd5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561099057600080fd5b50610999611cfe565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109d95780820151818401526020810190506109be565b50505050905090810190601f168015610a065780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a2057600080fd5b50610a29611da0565b6040518082815260200191505060405180910390f35b348015610a4b57600080fd5b50610a7860048036036020811015610a6257600080fd5b8101908080359060200190929190505050611da6565b005b348015610a8657600080fd5b50610a8f611e3a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ac757600080fd5b50610b1460048036036040811015610ade57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e60565b60405180821515815260200191505060405180910390f35b348015610b3857600080fd5b50610b41611e75565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7957600080fd5b50610b82611e9b565b005b348015610b9057600080fd5b50610b99612045565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bd157600080fd5b50610bfe60048036036020811015610be857600080fd5b810190808035906020019092919050505061206b565b6040518082815260200191505060405180910390f35b348015610c2057600080fd5b50610ca360048036036060811015610c3757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120dd565b005b348015610cb157600080fd5b50610cba612220565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610cf257600080fd5b50610d5560048036036040811015610d0957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612246565b6040518082815260200191505060405180910390f35b348015610d7757600080fd5b50610db060048036036040811015610d8e57600080fd5b81019080803515159060200190929190803590602001909291905050506122cd565b005b348015610dbe57600080fd5b50610dc761236d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610dff57600080fd5b50610e2c60048036036020811015610e1657600080fd5b8101908080359060200190929190505050612393565b005b348015610e3a57600080fd5b50610e43612426565b60405180821515815260200191505060405180910390f35b348015610e6757600080fd5b50610eaa60048036036020811015610e7e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612439565b005b348015610eb857600080fd5b50610f0760048036036040811015610ecf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061259b565b005b348015610f1557600080fd5b50610f1e6128a6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f5657600080fd5b50610f5f6128cc565b60405180821515815260200191505060405180910390f35b348015610f8357600080fd5b50610fc660048036036020811015610f9a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128df565b60405180821515815260200191505060405180910390f35b348015610fea57600080fd5b50610ff3612935565b6040518082815260200191505060405180910390f35b34801561101557600080fd5b5061101e61293b565b60405180821515815260200191505060405180910390f35b601f5481565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110d45780601f106110a9576101008083540402835291602001916110d4565b820191906000526020600020905b8154815290600101906020018083116110b757829003601f168201915b5050505050905090565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000826111dc8361206b565b11905092915050565b60135481565b6000600854905090565b6111fe336128df565b611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000479050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848402816112bd57fe5b049081150290604051600060405180830381858888f193505050501580156112e9573d6000803e3d6000fd5b505050565b60125481565b6112fd336128df565b61136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601881905550806019819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461156d576114ec826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d49092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611578848484612a94565b90509392505050565b60006115fe6115b1600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611c86565b6115f06115df600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611c86565b60085461315690919063ffffffff16565b61315690919063ffffffff16565b905090565b61160c336128df565b61167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156116fb57600080fd5b505af115801561170f573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600760009054906101000a900460ff16905090565b611790336128df565b611802576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600d60009054906101000a900460ff16611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f416e74692d6a65657420616c726561647920616374697661746564000000000081525060200191505060405180910390fd5b6001600e819055506002600f81905550600060108190555060006011819055506118e36011546118d56010546118c7600f54600e546131a090919063ffffffff16565b6131a090919063ffffffff16565b6131a090919063ffffffff16565b60128190555060646013819055506064601481905550612710600a600854028161190957fe5b04601f819055506000600d60006101000a81548160ff021916908315150217905550565b611936336128df565b6119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc6064848402816119d357fe5b049081150290604051600060405180830381858888f193505050501580156119ff573d6000803e3d6000fd5b505050565b6000611a30827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6110de565b9050919050565b611a40336128df565b611ab2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b60105481565b601e60009054906101000a900460ff1681565b611b35336128df565b611ba7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83600e8190555082600f819055508160108190555080601181905550611bfa81611bec84611bde87896131a090919063ffffffff16565b6131a090919063ffffffff16565b6131a090919063ffffffff16565b6012819055506064601381905550600560125410611c80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f466565732063616e6e6f74206265206d6f7265207468616e203525000000000081525060200191505060405180910390fd5b50505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d965780601f10611d6b57610100808354040283529160200191611d96565b820191906000526020600020905b815481529060010190602001808311611d7957829003601f168201915b5050505050905090565b600e5481565b611daf336128df565b611e21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611e3057600080fd5b80601d8190555050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611e6d338484612a94565b905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ea433611717565b611f16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600d60019054906101000a900460ff16611f98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d6f6f6e206d697373696f6e20616c7265616479206120676f0000000000000081525060200191505060405180910390fd5b6001601b60146101000a81548160ff0219169083151502179055506014600e819055506000600f8190555060006010819055506000601181905550612012601154612004601054611ff6600f54600e546131a090919063ffffffff16565b6131a090919063ffffffff16565b6131a090919063ffffffff16565b601281905550606460138190555060966014819055506000600d60016101000a81548160ff021916908315150217905550565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006120d6612078611581565b6120c86120b960026120ab601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611c86565b61294e90919063ffffffff16565b8561294e90919063ffffffff16565b61322890919063ffffffff16565b9050919050565b6120e6336128df565b612158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6122d6336128df565b612348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601e60006101000a81548160ff02191690831515021790555080601f819055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61239c33611717565b61240e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61012c811061241c57600080fd5b8060148190555050565b600d60009054906101000a900460ff1681565b61244233611717565b6124b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6125a4336128df565b612616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156126a05750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6126a957600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156127b757601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561279a57600080fd5b505af11580156127ae573d6000803e3d6000fd5b505050506128a2565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561288957600080fd5b505af115801561289d573d6000803e3d6000fd5b505050505b5050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60019054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60145481565b601b60149054906101000a900460ff1681565b60008083141561296157600090506129ce565b600082840290508284828161297257fe5b04146129c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613f046021913960400191505060405180910390fd5b809150505b92915050565b6000838311158290612a81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a46578082015181840152602081019050612a2b565b50505050905090810190601f168015612a735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602060009054906101000a900460ff1615612abd57612ab6848484613272565b905061314f565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b615750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612be957601b60149054906101000a900460ff16612be8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b612bf1613445565b15612bff57612bfe61351c565b5b612c88826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d49092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612cd78585613c14565b612ce15782612d3d565b612d3c8584601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614613cc8565b5b9050612d9181600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131a090919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612f1357601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612ef757600080fd5b505af1925050508015612f08575060015b612f1157612f12565b5b5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661305257601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561303657600080fd5b505af1925050508015613047575060015b61305057613051565b5b5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479601d546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156130c957600080fd5b505af19250505080156130da575060015b6130e3576130e4565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061319883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506129d4565b905092915050565b60008082840190508381101561321e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061326a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613e3d565b905092915050565b60006132fd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d49092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061339282600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131a090919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156134b25750602060009054906101000a900460ff16155b80156134ca5750601e60009054906101000a900460ff165b80156135175750601f54600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602060006101000a81548160ff02191690831515021790555060006135476018546019546111d0565b61355357600e54613556565b60005b90506000613596600261358860125461357a86601f5461294e90919063ffffffff16565b61322890919063ffffffff16565b61322890919063ffffffff16565b905060006135af82601f5461315690919063ffffffff16565b90506000600267ffffffffffffffff811180156135cb57600080fd5b506040519080825280602002602001820160405280156135fa5781602001602082028036833780820191505090505b509050308160008151811061360b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061367557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561377857808201518184015260208101905061375d565b505050509050019650505050505050600060405180830381600087803b1580156137a157600080fd5b505af11580156137b5573d6000803e3d6000fd5b5050505060006137ce824761315690919063ffffffff16565b905060006137fa6137e960028961322890919063ffffffff16565b60125461315690919063ffffffff16565b9050600061383660026138288461381a8c8861294e90919063ffffffff16565b61322890919063ffffffff16565b61322890919063ffffffff16565b9050600061386183613853600f548761294e90919063ffffffff16565b61322890919063ffffffff16565b9050600061388c8461387e6010548861294e90919063ffffffff16565b61322890919063ffffffff16565b905060006138b7856138a96011548961294e90919063ffffffff16565b61322890919063ffffffff16565b9050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561392357600080fd5b505af193505050508015613935575060015b61393e5761393f565b5b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146139c6576040519150601f19603f3d011682016040523d82523d6000602084013e6139cb565b606091505b50509050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d8060008114613a54576040519150601f19603f3d011682016040523d82523d6000602084013e613a59565b606091505b5050809150506000905060008b1115613beb57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015613b5857600080fd5b505af1158015613b6c573d6000803e3d6000fd5b50505050506040513d6060811015613b8357600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051808381526020018281526020019250505060405180910390a15b5050505050505050505050506000602060006101000a81548160ff021916908315150217905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613c715760009050613cc2565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161590505b92915050565b60008082613cd7576064613cdb565b6014545b90506000613d1d606460135402613d0f84613d016012548a61294e90919063ffffffff16565b61294e90919063ffffffff16565b61322890919063ffffffff16565b90506000819050613d7681600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131a090919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3613e31828761315690919063ffffffff16565b93505050509392505050565b60008083118290613ee9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613eae578082015181840152602081019050613e93565b50505050905090810190601f168015613edb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613ef557fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212209c8c368c293dc153ba317ad308fb5b37732f523cdaf71a4e3c6ae6816a52a49f64736f6c63430007060033