ETH Price: $3,877.49 (+1.84%)

Token

ARB FURBO (FARB)

Overview

Max Total Supply

1,000,000,000 FARB

Holders

6,783 (0.00%)

Market

Price

$0.0001 @ 0.000000 ETH

Onchain Market Cap

$88,030.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Null: 0x000…000
Balance
29,310.913675207889614289 FARB

Value
$2.58 ( ~0.000665378285262824 ETH) [0.0029%]
0x0000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The $FARB Token is tradable on the Arbitrum Network.

Contract Source Code Verified (Exact Match)

Contract Name:
ArbFurbo

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2023-04-18
*/

//SPDX-License-Identifier: MIT

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

pragma solidity ^0.7.4;

library SafeMath {

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

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

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

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

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

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

interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        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;
}

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

contract DividendDistributor is IDividendDistributor {

    using SafeMath for uint256;
    address _token;

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

    IDEXRouter router;
    address routerAddress = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506;
    IBEP20 RewardToken = IBEP20(0x912CE59144191C1204E64559FE8253a0e49E6548); //ARB

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

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

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

    uint256 currentIndex;

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

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

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

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

    function setShare(address shareholder, uint256 amount) external override onlyToken {

        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

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

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

    function deposit() external payable override onlyToken {

        uint256 balanceBefore = RewardToken.balanceOf(address(this));

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

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

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

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

        if(shareholderCount == 0) { return; }

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

        while(gasUsed < gas && iterations < shareholderCount) {

            if(currentIndex >= shareholderCount){ currentIndex = 0; }

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

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

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

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

    }
    
    function claimDividend(address shareholder) external onlyToken{
        distributeDividend(shareholder);
    }
    
    function rescueDividends(address to) external onlyToken {
        RewardToken.transfer(to, RewardToken.balanceOf(address(this)));
    }
    
    function setRewardToken(address _rewardToken) external onlyToken{
        RewardToken = IBEP20(_rewardToken);
    }

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

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

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

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

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

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

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

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

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

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

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

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

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

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

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

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

    event OwnershipTransferred(address owner);
}

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

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

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

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

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

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

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

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

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

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false;

    DividendDistributor public dividendDistributor;
    uint256 distributorGas = 750000;

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

    uint256 public swapThreshold = _totalSupply * 5 / 2000;
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

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

        dividendDistributor = new DividendDistributor(address(router));

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

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

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

        // NICE!
        autoLiquidityReceiver = msg.sender;
        marketingWallet = 0xa6eAa3F9e3c873E35A7c95367D3d698D4d111fC0;  // marketingwallet
        TeamdevWallet = 0x8c215Bd794dbA90DbEb3cDCD6a88eC57cE364aF5;  // Teamdev
        
        totalFee = (liquidityFee.add(marketingFee).add(rewardsFee).add(TeamdevFee));
        totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10);

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

    receive() external payable { }

    function name() external pure override returns (string memory) { return _name; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function getOwner() external view override returns (address) { return owner; }

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

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

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }
    
    function claimDividend() external {
        dividendDistributor.claimDividend(msg.sender);
    }

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

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

    function launch() internal {
        launchedAt = block.number;
    }
    
    function changeTxLimit(uint256 newLimit) external authorized {
        _maxTxAmount = newLimit;
    }
    
    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }
    
    function enable_blacklist(bool _status) public onlyOwner {
    blacklistMode = _status;
    }

    function changeWalletLimit(uint256 newLimit) external authorized {
        _walletMax  = newLimit;
    }
    
    function manage_blacklist(address[] calldata addresses, bool status)
    public
    onlyOwner
    {
    for (uint256 i; i < addresses.length; ++i) {
      isBlacklisted[addresses[i]] = status;
        }
    }

    function changeRestrictWhales(bool newValue) external authorized {
       restrictWhales = newValue;
    }
    
    function changeIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

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

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

    function changeFees(uint256 newLiqFee, uint256 newRewardFee, uint256 newMarketingFee, uint256 newTeamdevFee) external authorized {
        liquidityFee = newLiqFee;
        rewardsFee = newRewardFee;
        marketingFee = newMarketingFee;
        TeamdevFee = newTeamdevFee;
        
        totalFee = liquidityFee.add(marketingFee).add(rewardsFee).add(TeamdevFee);
        require(totalFee <= 10);
        totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10);
    }

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

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

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

    function changeDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }
    
    function setRewardToken(address _rewardToken) external authorized {
        dividendDistributor.setRewardToken(_rewardToken);
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

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

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

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

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

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

        if(!launched() && recipient == pair) {
            require(_balances[sender] > 0);
            launch();
        }
        
        // Blacklist
        if (blacklistMode) {
            require(
            !isBlacklisted[sender] && !isBlacklisted[recipient],
            "Blacklisted");
        }

        if(recipient == pair && !authorizations[sender]) {
            require(tx.gasprice <= gasPriceLimitB);
            require(tradingOpen, "Trading not open yet");
        }

        if(recipient != pair && !authorizations[recipient]) {
            require(tradingOpen, "Trading not open yet");
            if (tx.gasprice >= gasPriceLimitB) {
                isBlacklisted[recipient] = true;
            }
        }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        
        if(!isTxLimitExempt[recipient] && restrictWhales)
        {
            require(_balances[recipient].add(amount) <= _walletMax);
        }

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

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

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

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

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

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

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

        return amount.sub(feeAmount);
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        tradingOpen = newStatus;
    }

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

    function swapBack() internal lockTheSwap {
        
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

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

        uint256 amountBNB = address(this).balance;

        uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2));
        
        uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBReflection = amountBNB.mul(rewardsFee).div(totalBNBFee);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);
        uint256 amountBNBTeamdev = amountBNB.mul(TeamdevFee).div(totalBNBFee);

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

        (bool tmpSuccess,) = payable(marketingWallet).call{value: amountBNBMarketing, gas: 30000}("");
        (bool tmpSuccess1,) = payable(TeamdevWallet).call{value: amountBNBTeamdev, gas: 30000}("");
        
        // only to supress warning msg
        tmpSuccess = false;
        tmpSuccess1 = false;

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

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TeamdevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TeamdevWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"changeDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"changeDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newTeamdevWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newTeamdevFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMulti","type":"uint256"}],"name":"changeSellFeeX10","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly","type":"bool"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dividendDistributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Gas","type":"uint256"}],"name":"setGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardToken","type":"address"}],"name":"setRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731b02da8cb0d097eb8d57a175b88c7d8b47997506600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073912ce59144191c1204e64559fe8253a0e49e6548600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a633b9aca00026006556064600260065402816200015457fe5b046007556064601460065402816200016857fe5b046008556001600960006101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff02191690831515021790555060006011556001601255600260135560036014556008601555633b9aca0060155402601655600f601755600060185560006019556000602060006101000a81548160ff021916908315150217905550620b71b06021556001602260016101000a81548160ff0219169083151502179055506000602260026101000a81548160ff0219169083151502179055506107d0600560065402816200023f57fe5b046023553480156200025057600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b657600080fd5b505afa158015620003cb573d6000803e3d6000fd5b505050506040513d6020811015620003e257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200047757600080fd5b505afa1580156200048c573d6000803e3d6000fd5b505050506040513d6020811015620004a357600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200051f57600080fd5b505af115801562000534573d6000803e3d6000fd5b505050506040513d60208110156200054b57600080fd5b8101908080519060200190929190505050601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620006909062000f16565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015620006cd573d6000803e3d6000fd5b50602060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a6eaa3f9e3c873e35a7c95367d3d698d4d111fc0601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738c215bd794dba90dbeb3cdcd6a88ec57ce364af5601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000bed60145462000bd960135462000bc560125460115462000ce560201b6200314c1790919060201c565b62000ce560201b6200314c1790919060201c565b62000ce560201b6200314c1790919060201c565b60188190555062000c2b600a62000c1760175460185462000d6e60201b620031d41790919060201c565b62000df960201b6200325a1790919060201c565b601981905550600654600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a362000f24565b60008082840190508381101562000d64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141562000d83576000905062000df3565b600082840290508284828162000d9557fe5b041462000dee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062007b8e6021913960400191505060405180910390fd5b809150505b92915050565b600062000e4383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000e4b60201b60201c565b905092915050565b6000808311829062000efb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000ebf57808201518184015260208101905062000ea2565b50505050905090810190601f16801562000eed5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858162000f0857fe5b049050809150509392505050565b611e2e8062005d6083390190565b614e2c8062000f346000396000f3fe6080604052600436106103a65760003560e01c8063893d20e8116101e7578063ca33e64c1161010d578063f0fc6bca116100a0578063fe575a871161006f578063fe575a8714611443578063fe9fbb80146114aa578063fed0d2a114611511578063ffb54a991461153c576103ad565b8063f0fc6bca1461133d578063f2fde38b14611354578063f887ea40146113a5578063fabe6283146113e6576103ad565b8063dd51faa2116100dc578063dd51faa2146111ef578063dd62ed3e1461122a578063e66b1d1e146112af578063f0b37c04146112ec576103ad565b8063ca33e64c1461111b578063ca987b0e1461115c578063d920334e14611187578063da00097d146111c2576103ad565b8063a3a2e89e11610185578063b6a5d7de11610154578063b6a5d7de14611023578063bad3ea6a14611074578063bbb19940146110b5578063bf56b371146110f0576103ad565b8063a3a2e89e14610ecf578063a8aa1b3114610f2c578063a9059cbb14610f6d578063a9f7864b14610fde576103ad565b80638b42507f116101c15780638b42507f14610d1b5780638e2eee8414610d8257806395d89b4114610e1457806398118cb414610ea4576103ad565b8063893d20e814610c5c578063896648c114610c9d5780638aee812714610cca576103ad565b80633f4218e0116102cc578063650c42261161026a578063773fcb5c11610239578063773fcb5c14610b6e5780637d1db4a514610bcb5780637db1342c14610bf6578063807c2d9c14610c31576103ad565b8063650c422614610a445780636b67c4df14610a9d57806370a0823114610ac857806375f0a87414610b2d576103ad565b8063479f66d8116102a6578063479f66d8146109385780634a74bb0214610973578063571ac8b0146109a05780635e562f3b14610a07576103ad565b80633f4218e01461083d5780634355855a146108a457806344de2e4c1461090b576103ad565b806323b872dd11610344578063313ce56711610313578063313ce567146106ea578063315dca2914610718578063326066f7146107a957806334c70889146107ea576103ad565b806323b872dd1461059c5780632b112e491461062d5780632bb14e1d146106585780632f54bf6e14610683576103ad565b8063095ea7b311610380578063095ea7b3146104985780630d2959801461050957806318160ddd146105465780631df4ccfc14610571576103ad565b80630445b667146103b2578063054bee62146103dd57806306fdde0314610408576103ad565b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7611569565b6040518082815260200191505060405180910390f35b3480156103e957600080fd5b506103f261156f565b6040518082815260200191505060405180910390f35b34801561041457600080fd5b5061041d611575565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045d578082015181840152602081019050610442565b50505050905090810190601f16801561048a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104a457600080fd5b506104f1600480360360408110156104bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115b2565b60405180821515815260200191505060405180910390f35b34801561051557600080fd5b506105446004803603602081101561052c57600080fd5b810190808035151590602001909291905050506116a4565b005b34801561055257600080fd5b5061055b61173c565b6040518082815260200191505060405180910390f35b34801561057d57600080fd5b50610586611746565b6040518082815260200191505060405180910390f35b3480156105a857600080fd5b50610615600480360360608110156105bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061174c565b60405180821515815260200191505060405180910390f35b34801561063957600080fd5b5061064261194c565b6040518082815260200191505060405180910390f35b34801561066457600080fd5b5061066d6119ce565b6040518082815260200191505060405180910390f35b34801561068f57600080fd5b506106d2600480360360208110156106a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119d4565b60405180821515815260200191505060405180910390f35b3480156106f657600080fd5b506106ff611a2d565b604051808260ff16815260200191505060405180910390f35b34801561072457600080fd5b506107a76004803603606081101561073b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a36565b005b3480156107b557600080fd5b506107be611b79565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b5061083b6004803603606081101561080d57600080fd5b8101908080351515906020019092919080359060200190929190803515159060200190929190505050611b9f565b005b34801561084957600080fd5b5061088c6004803603602081101561086057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5a565b60405180821515815260200191505060405180910390f35b3480156108b057600080fd5b506108f3600480360360208110156108c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c7a565b60405180821515815260200191505060405180910390f35b34801561091757600080fd5b50610920611c9a565b60405180821515815260200191505060405180910390f35b34801561094457600080fd5b506109716004803603602081101561095b57600080fd5b8101908080359060200190929190505050611cad565b005b34801561097f57600080fd5b50610988611d41565b60405180821515815260200191505060405180910390f35b3480156109ac57600080fd5b506109ef600480360360208110156109c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d54565b60405180821515815260200191505060405180910390f35b348015610a1357600080fd5b50610a4260048036036020811015610a2a57600080fd5b81019080803515159060200190929190505050611d87565b005b348015610a5057600080fd5b50610a9b60048036036080811015610a6757600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611e1f565b005b348015610aa957600080fd5b50610ab2611f41565b6040518082815260200191505060405180910390f35b348015610ad457600080fd5b50610b1760048036036020811015610aeb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f47565b6040518082815260200191505060405180910390f35b348015610b3957600080fd5b50610b42611f90565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7a57600080fd5b50610bc960048036036040811015610b9157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611fb6565b005b348015610bd757600080fd5b50610be06122c1565b6040518082815260200191505060405180910390f35b348015610c0257600080fd5b50610c2f60048036036020811015610c1957600080fd5b81019080803590602001909291905050506122c7565b005b348015610c3d57600080fd5b50610c4661234c565b6040518082815260200191505060405180910390f35b348015610c6857600080fd5b50610c71612352565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ca957600080fd5b50610cb261237b565b60405180821515815260200191505060405180910390f35b348015610cd657600080fd5b50610d1960048036036020811015610ced57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061238e565b005b348015610d2757600080fd5b50610d6a60048036036020811015610d3e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124af565b60405180821515815260200191505060405180910390f35b348015610d8e57600080fd5b50610e1260048036036040811015610da557600080fd5b8101908080359060200190640100000000811115610dc257600080fd5b820183602082011115610dd457600080fd5b80359060200191846020830284011164010000000083111715610df657600080fd5b90919293919293908035151590602001909291905050506124cf565b005b348015610e2057600080fd5b50610e296125e8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610eb057600080fd5b50610eb9612625565b6040518082815260200191505060405180910390f35b348015610edb57600080fd5b50610f2a60048036036040811015610ef257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061262b565b005b348015610f3857600080fd5b50610f41612701565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f7957600080fd5b50610fc660048036036040811015610f9057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612727565b60405180821515815260200191505060405180910390f35b348015610fea57600080fd5b506110216004803603604081101561100157600080fd5b81019080803590602001909291908035906020019092919050505061273c565b005b34801561102f57600080fd5b506110726004803603602081101561104657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612850565b005b34801561108057600080fd5b50611089612925565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110c157600080fd5b506110ee600480360360208110156110d857600080fd5b810190808035906020019092919050505061294b565b005b3480156110fc57600080fd5b50611105612a0e565b6040518082815260200191505060405180910390f35b34801561112757600080fd5b50611130612a14565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561116857600080fd5b50611171612a3a565b6040518082815260200191505060405180910390f35b34801561119357600080fd5b506111c0600480360360208110156111aa57600080fd5b8101908080359060200190929190505050612a40565b005b3480156111ce57600080fd5b506111d7612ac5565b60405180821515815260200191505060405180910390f35b3480156111fb57600080fd5b506112286004803603602081101561121257600080fd5b8101908080359060200190929190505050612ad8565b005b34801561123657600080fd5b506112996004803603604081101561124d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bc5565b6040518082815260200191505060405180910390f35b3480156112bb57600080fd5b506112ea600480360360208110156112d257600080fd5b81019080803515159060200190929190505050612c4c565b005b3480156112f857600080fd5b5061133b6004803603602081101561130f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ce4565b005b34801561134957600080fd5b50611352612dba565b005b34801561136057600080fd5b506113a36004803603602081101561137757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e5f565b005b3480156113b157600080fd5b506113ba612fc1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156113f257600080fd5b506114416004803603604081101561140957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612fe7565b005b34801561144f57600080fd5b506114926004803603602081101561146657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130bd565b60405180821515815260200191505060405180910390f35b3480156114b657600080fd5b506114f9600480360360208110156114cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130dd565b60405180821515815260200191505060405180910390f35b34801561151d57600080fd5b50611526613133565b6040518082815260200191505060405180910390f35b34801561154857600080fd5b50611551613139565b60405180821515815260200191505060405180910390f35b60235481565b60145481565b60606040518060400160405280600981526020017f41524220465552424f0000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6116ad336119d4565b61171f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80602060006101000a81548160ff02191690831515021790555050565b6000600654905090565b60185481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611938576118b7826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132a49092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611943848484613364565b90509392505050565b60006119c961197c600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611f47565b6119bb6119aa600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611f47565b60065461418890919063ffffffff16565b61418890919063ffffffff16565b905090565b60135481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b611a3f336130dd565b611ab1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ba8336130dd565b611c1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82602260016101000a81548160ff0219169083151502179055508160238190555080602260026101000a81548160ff021916908315150217905550505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b611cb6336130dd565b611d28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611d3757600080fd5b8060218190555050565b602260019054906101000a900460ff1681565b6000611d80827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6115b2565b9050919050565b611d90336119d4565b611e02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b611e28336130dd565b611e9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83601181905550826013819055508160128190555080601481905550611ef5601454611ee7601354611ed960125460115461314c90919063ffffffff16565b61314c90919063ffffffff16565b61314c90919063ffffffff16565b601881905550600a6018541115611f0b57600080fd5b611f35600a611f276017546018546131d490919063ffffffff16565b61325a90919063ffffffff16565b60198190555050505050565b60125481565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fbf336130dd565b612031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156120bb5750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6120c457600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156121d257602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156121b557600080fd5b505af11580156121c9573d6000803e3d6000fd5b505050506122bd565b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156122a457600080fd5b505af11580156122b8573d6000803e3d6000fd5b505050505b5050565b60075481565b6122d0336130dd565b612342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f60009054906101000a900460ff1681565b612397336130dd565b612409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638aee8127826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561249457600080fd5b505af11580156124a8573d6000803e3d6000fd5b5050505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b6124d8336119d4565b61254a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005b838390508110156125e257816010600086868581811061256957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600101905061254d565b50505050565b60606040518060400160405280600481526020017f4641524200000000000000000000000000000000000000000000000000000000815250905090565b60115481565b612634336130dd565b6126a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612734338484613364565b905092915050565b612745336130dd565b6127b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561283457600080fd5b505af1158015612848573d6000803e3d6000fd5b505050505050565b612859336119d4565b6128cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612954336130dd565b6129c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601e8111156129d457600080fd5b80601781905550612a05600a6129f76017546018546131d490919063ffffffff16565b61325a90919063ffffffff16565b60198190555050565b601f5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b612a49336130dd565b612abb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b602260029054906101000a900460ff1681565b612ae1336119d4565b612b53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60078111612bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614db46022913960400191505060405180910390fd5b80601581905550633b9aca006015540260168190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612c55336130dd565b612cc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b612ced336119d4565b612d5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612e4557600080fd5b505af1158015612e59573d6000803e3d6000fd5b50505050565b612e68336119d4565b612eda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612ff0336130dd565b613062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60175481565b602060009054906101000a900460ff1681565b6000808284019050838110156131ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156131e75760009050613254565b60008284029050828482816131f857fe5b041461324f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614dd66021913960400191505060405180910390fd5b809150505b92915050565b600061329c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506141d2565b905092915050565b6000838311158290613351576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156133165780820151818401526020810190506132fb565b50505050905090810190601f1680156133435780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602260009054906101000a900460ff161561338d57613386848484614298565b9050614181565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134315750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156134b957602060009054906101000a900460ff166134b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b600754821115806135135750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156135f05750602260009054906101000a900460ff16155b80156136085750602260019054906101000a900460ff165b80156136555750602354600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156136635761366261446b565b5b61366b614bf5565b1580156136c55750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561371f576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161371657600080fd5b61371e614c02565b5b600f60009054906101000a900460ff161561384b57601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137d85750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61384a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f426c61636b6c697374656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156138f25750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613989576016543a111561390657600080fd5b602060009054906101000a900460ff16613988576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613a315750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613b1b57602060009054906101000a900460ff16613ab8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b6016543a10613b1a576001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b613ba4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132a49092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613c4d5750600960009054906101000a900460ff165b15613cb357600854613ca783600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b1115613cb257600080fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613d595750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b613d635782613d6f565b613d6e858585614c0b565b5b9050613dc381600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613f4557602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613f2957600080fd5b505af1925050508015613f3a575060015b613f4357613f44565b5b5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661408457602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561406857600080fd5b505af1925050508015614079575060015b61408257614083565b5b5b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796021546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156140fb57600080fd5b505af192505050801561410c575060015b61411557614116565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b60006141ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132a4565b905092915050565b6000808311829061427e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614243578082015181840152602081019050614228565b50505050905090810190601f1680156142705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161428a57fe5b049050809150509392505050565b6000614323826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132a49092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506143b882600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001602260006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061450860026144fa6018546144ec601154876131d490919063ffffffff16565b61325a90919063ffffffff16565b61325a90919063ffffffff16565b9050600061451f828461418890919063ffffffff16565b90506060600267ffffffffffffffff8111801561453b57600080fd5b5060405190808252806020026020018201604052801561456a5781602001602082028036833780820191505090505b509050308160008151811061457b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561461d57600080fd5b505afa158015614631573d6000803e3d6000fd5b505050506040513d602081101561464757600080fd5b81019080805190602001909291905050508160018151811061466557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015614763578082015181840152602081019050614748565b505050509050019650505050505050600060405180830381600087803b15801561478c57600080fd5b505af11580156147a0573d6000803e3d6000fd5b50505050600047905060006147d56147c4600260115461325a90919063ffffffff16565b60185461418890919063ffffffff16565b905060006148136002614805846147f7601154886131d490919063ffffffff16565b61325a90919063ffffffff16565b61325a90919063ffffffff16565b9050600061483e83614830601354876131d490919063ffffffff16565b61325a90919063ffffffff16565b905060006148698461485b601254886131d490919063ffffffff16565b61325a90919063ffffffff16565b9050600061489485614886601454896131d490919063ffffffff16565b61325a90919063ffffffff16565b9050602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561490057600080fd5b505af193505050508015614912575060015b61491b5761491c565b5b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146149a3576040519150601f19603f3d011682016040523d82523d6000602084013e6149a8565b606091505b505090506000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614a33576040519150601f19603f3d011682016040523d82523d6000602084013e614a38565b606091505b50509050600091506000905060008b1115614bcc57601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71987308e600080601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015614b3957600080fd5b505af1158015614b4d573d6000803e3d6000fd5b50505050506040513d6060811015614b6457600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506868c604051808381526020018281526020019250505060405180910390a15b5050505050505050505050506000602260006101000a81548160ff021916908315150217905550565b600080601f541415905090565b43601f81905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614c6b57601854614c6f565b6019545b90506000614c996064614c8b84876131d490919063ffffffff16565b61325a90919063ffffffff16565b9050614ced81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3614da8818561418890919063ffffffff16565b92505050939250505056fe4d617820676173206d75737420626520686967686572207468616e20372067776569536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212204ba74324fc2a11ff8378d56cb713cafdac881e01e73960ac3a2b52fd34210eec64736f6c634300070400336080604052731b02da8cb0d097eb8d57a175b88c7d8b47997506600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073912ce59144191c1204e64559fe8253a0e49e6548600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55620f4240600e553480156100da57600080fd5b50604051611e2e380380611e2e833981810160405260208110156100fd57600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561016b57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661016d565b805b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611c31806101fd6000396000f3fe6080604052600436106100f35760003560e01c80638aee81271161008a578063e2d2e21911610059578063e2d2e21914610419578063efca2eed14610444578063ffb2c4791461046f578063ffd49c84146104aa576100f3565b80638aee812714610320578063997664d714610371578063ce7c2ac21461039c578063d0e30db01461040f576100f3565b80632d48e896116100c65780632d48e896146102345780633a98ef39146102795780634339a815146102a45780634fab0ae8146102f5576100f3565b806311ce023d146100f857806314b6ca961461012357806315f7e05e1461017e57806328fd3198146101cf575b600080fd5b34801561010457600080fd5b5061010d6104d5565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061017c6004803603604081101561014657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104db565b005b34801561018a57600080fd5b506101cd600480360360208110156101a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061079a565b005b3480156101db57600080fd5b5061021e600480360360208110156101f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107fe565b6040518082815260200191505060405180910390f35b34801561024057600080fd5b506102776004803603604081101561025757600080fd5b810190808035906020019092919080359060200190929190505050610918565b005b34801561028557600080fd5b5061028e610982565b6040518082815260200191505060405180910390f35b3480156102b057600080fd5b506102f3600480360360208110156102c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610988565b005b34801561030157600080fd5b5061030a610b75565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b5061036f6004803603602081101561034357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b7b565b005b34801561037d57600080fd5b50610386610c17565b6040518082815260200191505060405180910390f35b3480156103a857600080fd5b506103eb600480360360208110156103bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c1d565b60405180848152602001838152602001828152602001935050505060405180910390f35b610417610c47565b005b34801561042557600080fd5b5061042e611142565b6040518082815260200191505060405180910390f35b34801561045057600080fd5b50610459611148565b6040518082815260200191505060405180910390f35b34801561047b57600080fd5b506104a86004803603602081101561049257600080fd5b810190808035906020019092919050505061114e565b005b3480156104b657600080fd5b506104bf6112c8565b6040518082815260200191505060405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461053357600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561058857610587826112ce565b5b6000811180156105da57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156105ed576105e882611594565b61064f565b60008114801561063f57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b1561064e5761064d82611643565b5b5b6106b8816106aa600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460085461181c90919063ffffffff16565b61186690919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107f257600080fd5b6107fb816112ce565b50565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156108535760009050610913565b60006108a0600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116108fb57600092505050610913565b61090e818361181c90919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461097057600080fd5b81600d8190555080600e819055505050565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109e057600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610aa857600080fd5b505afa158015610abc573d6000803e3d6000fd5b505050506040513d6020811015610ad257600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b3657600080fd5b505af1158015610b4a573d6000803e3d6000fd5b505050506040513d6020811015610b6057600080fd5b81019080805190602001909291905050505050565b600e5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bd357600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c9f57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d2a57600080fd5b505afa158015610d3e573d6000803e3d6000fd5b505050506040513d6020811015610d5457600080fd5b810190808051906020019092919050505090506060600267ffffffffffffffff81118015610d8157600080fd5b50604051908082528060200260200182016040528015610db05781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e1b57600080fd5b505afa158015610e2f573d6000803e3d6000fd5b505050506040513d6020811015610e4557600080fd5b810190808051906020019092919050505081600081518110610e6357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610ecd57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610fc5578082015181840152602081019050610faa565b50505050905001955050505050506000604051808303818588803b158015610fec57600080fd5b505af1158015611000573d6000803e3d6000fd5b505050505060006110dd83600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561109457600080fd5b505afa1580156110a8573d6000803e3d6000fd5b505050506040513d60208110156110be57600080fd5b810190808051906020019092919050505061181c90919063ffffffff16565b90506110f48160095461186690919063ffffffff16565b60098190555061113761112660085461111884600c5461192090919063ffffffff16565b6119a690919063ffffffff16565b600b5461186690919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111a657600080fd5b6000600480549050905060008114156111bf57506112c5565b60008060005a90505b84821080156111d657508383105b156112c05783600f54106111ed576000600f819055505b61122f6004600f54815481106111ff57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119f0565b15611277576112766004600f548154811061124657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112ce565b5b61129c61128d5a8361181c90919063ffffffff16565b8361186690919063ffffffff16565b91505a9050600f6000815480929190600101919050555082806001019350506111c8565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561131e57611591565b6000611329826107fe565b9050600081111561158f5761134981600a5461186690919063ffffffff16565b600a81905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156113e257600080fd5b505af11580156113f6573d6000803e3d6000fd5b505050506040513d602081101561140c57600080fd5b81019080805190602001909291905050505042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114b781600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461186690919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611548600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046001600480549050038154811061165857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106116cf57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546005600060046001600480549050038154811061177057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060048054806117e457fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061185e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a54565b905092915050565b6000808284019050838110156118e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000611919600c5461190b600b548561192090919063ffffffff16565b6119a690919063ffffffff16565b9050919050565b60008083141561193357600090506119a0565b600082840290508284828161194457fe5b041461199b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611bdb6021913960400191505060405180910390fd5b809150505b92915050565b60006119e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b14565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401108015611a4d5750600e54611a4b836107fe565b115b9050919050565b6000838311158290611b01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ac6578082015181840152602081019050611aab565b50505050905090810190601f168015611af35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611bc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b85578082015181840152602081019050611b6a565b50505050905090810190601f168015611bb25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611bcc57fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212206fd4f64da033e9f009b9716a1bb8a430601dd7c5698a04576f9214a76e025d2b64736f6c63430007040033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77

Deployed Bytecode

0x6080604052600436106103a65760003560e01c8063893d20e8116101e7578063ca33e64c1161010d578063f0fc6bca116100a0578063fe575a871161006f578063fe575a8714611443578063fe9fbb80146114aa578063fed0d2a114611511578063ffb54a991461153c576103ad565b8063f0fc6bca1461133d578063f2fde38b14611354578063f887ea40146113a5578063fabe6283146113e6576103ad565b8063dd51faa2116100dc578063dd51faa2146111ef578063dd62ed3e1461122a578063e66b1d1e146112af578063f0b37c04146112ec576103ad565b8063ca33e64c1461111b578063ca987b0e1461115c578063d920334e14611187578063da00097d146111c2576103ad565b8063a3a2e89e11610185578063b6a5d7de11610154578063b6a5d7de14611023578063bad3ea6a14611074578063bbb19940146110b5578063bf56b371146110f0576103ad565b8063a3a2e89e14610ecf578063a8aa1b3114610f2c578063a9059cbb14610f6d578063a9f7864b14610fde576103ad565b80638b42507f116101c15780638b42507f14610d1b5780638e2eee8414610d8257806395d89b4114610e1457806398118cb414610ea4576103ad565b8063893d20e814610c5c578063896648c114610c9d5780638aee812714610cca576103ad565b80633f4218e0116102cc578063650c42261161026a578063773fcb5c11610239578063773fcb5c14610b6e5780637d1db4a514610bcb5780637db1342c14610bf6578063807c2d9c14610c31576103ad565b8063650c422614610a445780636b67c4df14610a9d57806370a0823114610ac857806375f0a87414610b2d576103ad565b8063479f66d8116102a6578063479f66d8146109385780634a74bb0214610973578063571ac8b0146109a05780635e562f3b14610a07576103ad565b80633f4218e01461083d5780634355855a146108a457806344de2e4c1461090b576103ad565b806323b872dd11610344578063313ce56711610313578063313ce567146106ea578063315dca2914610718578063326066f7146107a957806334c70889146107ea576103ad565b806323b872dd1461059c5780632b112e491461062d5780632bb14e1d146106585780632f54bf6e14610683576103ad565b8063095ea7b311610380578063095ea7b3146104985780630d2959801461050957806318160ddd146105465780631df4ccfc14610571576103ad565b80630445b667146103b2578063054bee62146103dd57806306fdde0314610408576103ad565b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7611569565b6040518082815260200191505060405180910390f35b3480156103e957600080fd5b506103f261156f565b6040518082815260200191505060405180910390f35b34801561041457600080fd5b5061041d611575565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045d578082015181840152602081019050610442565b50505050905090810190601f16801561048a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104a457600080fd5b506104f1600480360360408110156104bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115b2565b60405180821515815260200191505060405180910390f35b34801561051557600080fd5b506105446004803603602081101561052c57600080fd5b810190808035151590602001909291905050506116a4565b005b34801561055257600080fd5b5061055b61173c565b6040518082815260200191505060405180910390f35b34801561057d57600080fd5b50610586611746565b6040518082815260200191505060405180910390f35b3480156105a857600080fd5b50610615600480360360608110156105bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061174c565b60405180821515815260200191505060405180910390f35b34801561063957600080fd5b5061064261194c565b6040518082815260200191505060405180910390f35b34801561066457600080fd5b5061066d6119ce565b6040518082815260200191505060405180910390f35b34801561068f57600080fd5b506106d2600480360360208110156106a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119d4565b60405180821515815260200191505060405180910390f35b3480156106f657600080fd5b506106ff611a2d565b604051808260ff16815260200191505060405180910390f35b34801561072457600080fd5b506107a76004803603606081101561073b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a36565b005b3480156107b557600080fd5b506107be611b79565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b5061083b6004803603606081101561080d57600080fd5b8101908080351515906020019092919080359060200190929190803515159060200190929190505050611b9f565b005b34801561084957600080fd5b5061088c6004803603602081101561086057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5a565b60405180821515815260200191505060405180910390f35b3480156108b057600080fd5b506108f3600480360360208110156108c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c7a565b60405180821515815260200191505060405180910390f35b34801561091757600080fd5b50610920611c9a565b60405180821515815260200191505060405180910390f35b34801561094457600080fd5b506109716004803603602081101561095b57600080fd5b8101908080359060200190929190505050611cad565b005b34801561097f57600080fd5b50610988611d41565b60405180821515815260200191505060405180910390f35b3480156109ac57600080fd5b506109ef600480360360208110156109c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d54565b60405180821515815260200191505060405180910390f35b348015610a1357600080fd5b50610a4260048036036020811015610a2a57600080fd5b81019080803515159060200190929190505050611d87565b005b348015610a5057600080fd5b50610a9b60048036036080811015610a6757600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611e1f565b005b348015610aa957600080fd5b50610ab2611f41565b6040518082815260200191505060405180910390f35b348015610ad457600080fd5b50610b1760048036036020811015610aeb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f47565b6040518082815260200191505060405180910390f35b348015610b3957600080fd5b50610b42611f90565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7a57600080fd5b50610bc960048036036040811015610b9157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611fb6565b005b348015610bd757600080fd5b50610be06122c1565b6040518082815260200191505060405180910390f35b348015610c0257600080fd5b50610c2f60048036036020811015610c1957600080fd5b81019080803590602001909291905050506122c7565b005b348015610c3d57600080fd5b50610c4661234c565b6040518082815260200191505060405180910390f35b348015610c6857600080fd5b50610c71612352565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ca957600080fd5b50610cb261237b565b60405180821515815260200191505060405180910390f35b348015610cd657600080fd5b50610d1960048036036020811015610ced57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061238e565b005b348015610d2757600080fd5b50610d6a60048036036020811015610d3e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124af565b60405180821515815260200191505060405180910390f35b348015610d8e57600080fd5b50610e1260048036036040811015610da557600080fd5b8101908080359060200190640100000000811115610dc257600080fd5b820183602082011115610dd457600080fd5b80359060200191846020830284011164010000000083111715610df657600080fd5b90919293919293908035151590602001909291905050506124cf565b005b348015610e2057600080fd5b50610e296125e8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610eb057600080fd5b50610eb9612625565b6040518082815260200191505060405180910390f35b348015610edb57600080fd5b50610f2a60048036036040811015610ef257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061262b565b005b348015610f3857600080fd5b50610f41612701565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f7957600080fd5b50610fc660048036036040811015610f9057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612727565b60405180821515815260200191505060405180910390f35b348015610fea57600080fd5b506110216004803603604081101561100157600080fd5b81019080803590602001909291908035906020019092919050505061273c565b005b34801561102f57600080fd5b506110726004803603602081101561104657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612850565b005b34801561108057600080fd5b50611089612925565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110c157600080fd5b506110ee600480360360208110156110d857600080fd5b810190808035906020019092919050505061294b565b005b3480156110fc57600080fd5b50611105612a0e565b6040518082815260200191505060405180910390f35b34801561112757600080fd5b50611130612a14565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561116857600080fd5b50611171612a3a565b6040518082815260200191505060405180910390f35b34801561119357600080fd5b506111c0600480360360208110156111aa57600080fd5b8101908080359060200190929190505050612a40565b005b3480156111ce57600080fd5b506111d7612ac5565b60405180821515815260200191505060405180910390f35b3480156111fb57600080fd5b506112286004803603602081101561121257600080fd5b8101908080359060200190929190505050612ad8565b005b34801561123657600080fd5b506112996004803603604081101561124d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bc5565b6040518082815260200191505060405180910390f35b3480156112bb57600080fd5b506112ea600480360360208110156112d257600080fd5b81019080803515159060200190929190505050612c4c565b005b3480156112f857600080fd5b5061133b6004803603602081101561130f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ce4565b005b34801561134957600080fd5b50611352612dba565b005b34801561136057600080fd5b506113a36004803603602081101561137757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e5f565b005b3480156113b157600080fd5b506113ba612fc1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156113f257600080fd5b506114416004803603604081101561140957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612fe7565b005b34801561144f57600080fd5b506114926004803603602081101561146657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130bd565b60405180821515815260200191505060405180910390f35b3480156114b657600080fd5b506114f9600480360360208110156114cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130dd565b60405180821515815260200191505060405180910390f35b34801561151d57600080fd5b50611526613133565b6040518082815260200191505060405180910390f35b34801561154857600080fd5b50611551613139565b60405180821515815260200191505060405180910390f35b60235481565b60145481565b60606040518060400160405280600981526020017f41524220465552424f0000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6116ad336119d4565b61171f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80602060006101000a81548160ff02191690831515021790555050565b6000600654905090565b60185481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611938576118b7826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132a49092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611943848484613364565b90509392505050565b60006119c961197c600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611f47565b6119bb6119aa600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611f47565b60065461418890919063ffffffff16565b61418890919063ffffffff16565b905090565b60135481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b611a3f336130dd565b611ab1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ba8336130dd565b611c1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82602260016101000a81548160ff0219169083151502179055508160238190555080602260026101000a81548160ff021916908315150217905550505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b611cb6336130dd565b611d28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611d3757600080fd5b8060218190555050565b602260019054906101000a900460ff1681565b6000611d80827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6115b2565b9050919050565b611d90336119d4565b611e02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b611e28336130dd565b611e9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83601181905550826013819055508160128190555080601481905550611ef5601454611ee7601354611ed960125460115461314c90919063ffffffff16565b61314c90919063ffffffff16565b61314c90919063ffffffff16565b601881905550600a6018541115611f0b57600080fd5b611f35600a611f276017546018546131d490919063ffffffff16565b61325a90919063ffffffff16565b60198190555050505050565b60125481565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fbf336130dd565b612031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156120bb5750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6120c457600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156121d257602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156121b557600080fd5b505af11580156121c9573d6000803e3d6000fd5b505050506122bd565b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156122a457600080fd5b505af11580156122b8573d6000803e3d6000fd5b505050505b5050565b60075481565b6122d0336130dd565b612342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f60009054906101000a900460ff1681565b612397336130dd565b612409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638aee8127826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561249457600080fd5b505af11580156124a8573d6000803e3d6000fd5b5050505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b6124d8336119d4565b61254a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005b838390508110156125e257816010600086868581811061256957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600101905061254d565b50505050565b60606040518060400160405280600481526020017f4641524200000000000000000000000000000000000000000000000000000000815250905090565b60115481565b612634336130dd565b6126a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612734338484613364565b905092915050565b612745336130dd565b6127b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561283457600080fd5b505af1158015612848573d6000803e3d6000fd5b505050505050565b612859336119d4565b6128cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612954336130dd565b6129c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601e8111156129d457600080fd5b80601781905550612a05600a6129f76017546018546131d490919063ffffffff16565b61325a90919063ffffffff16565b60198190555050565b601f5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b612a49336130dd565b612abb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b602260029054906101000a900460ff1681565b612ae1336119d4565b612b53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60078111612bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614db46022913960400191505060405180910390fd5b80601581905550633b9aca006015540260168190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612c55336130dd565b612cc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b612ced336119d4565b612d5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612e4557600080fd5b505af1158015612e59573d6000803e3d6000fd5b50505050565b612e68336119d4565b612eda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612ff0336130dd565b613062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60175481565b602060009054906101000a900460ff1681565b6000808284019050838110156131ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156131e75760009050613254565b60008284029050828482816131f857fe5b041461324f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614dd66021913960400191505060405180910390fd5b809150505b92915050565b600061329c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506141d2565b905092915050565b6000838311158290613351576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156133165780820151818401526020810190506132fb565b50505050905090810190601f1680156133435780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602260009054906101000a900460ff161561338d57613386848484614298565b9050614181565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134315750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156134b957602060009054906101000a900460ff166134b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b600754821115806135135750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156135f05750602260009054906101000a900460ff16155b80156136085750602260019054906101000a900460ff165b80156136555750602354600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156136635761366261446b565b5b61366b614bf5565b1580156136c55750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561371f576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161371657600080fd5b61371e614c02565b5b600f60009054906101000a900460ff161561384b57601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137d85750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61384a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f426c61636b6c697374656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156138f25750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613989576016543a111561390657600080fd5b602060009054906101000a900460ff16613988576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613a315750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613b1b57602060009054906101000a900460ff16613ab8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b6016543a10613b1a576001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b613ba4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132a49092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613c4d5750600960009054906101000a900460ff165b15613cb357600854613ca783600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b1115613cb257600080fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613d595750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b613d635782613d6f565b613d6e858585614c0b565b5b9050613dc381600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613f4557602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613f2957600080fd5b505af1925050508015613f3a575060015b613f4357613f44565b5b5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661408457602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561406857600080fd5b505af1925050508015614079575060015b61408257614083565b5b5b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796021546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156140fb57600080fd5b505af192505050801561410c575060015b61411557614116565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b60006141ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132a4565b905092915050565b6000808311829061427e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614243578082015181840152602081019050614228565b50505050905090810190601f1680156142705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161428a57fe5b049050809150509392505050565b6000614323826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132a49092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506143b882600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001602260006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061450860026144fa6018546144ec601154876131d490919063ffffffff16565b61325a90919063ffffffff16565b61325a90919063ffffffff16565b9050600061451f828461418890919063ffffffff16565b90506060600267ffffffffffffffff8111801561453b57600080fd5b5060405190808252806020026020018201604052801561456a5781602001602082028036833780820191505090505b509050308160008151811061457b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561461d57600080fd5b505afa158015614631573d6000803e3d6000fd5b505050506040513d602081101561464757600080fd5b81019080805190602001909291905050508160018151811061466557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015614763578082015181840152602081019050614748565b505050509050019650505050505050600060405180830381600087803b15801561478c57600080fd5b505af11580156147a0573d6000803e3d6000fd5b50505050600047905060006147d56147c4600260115461325a90919063ffffffff16565b60185461418890919063ffffffff16565b905060006148136002614805846147f7601154886131d490919063ffffffff16565b61325a90919063ffffffff16565b61325a90919063ffffffff16565b9050600061483e83614830601354876131d490919063ffffffff16565b61325a90919063ffffffff16565b905060006148698461485b601254886131d490919063ffffffff16565b61325a90919063ffffffff16565b9050600061489485614886601454896131d490919063ffffffff16565b61325a90919063ffffffff16565b9050602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561490057600080fd5b505af193505050508015614912575060015b61491b5761491c565b5b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146149a3576040519150601f19603f3d011682016040523d82523d6000602084013e6149a8565b606091505b505090506000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614a33576040519150601f19603f3d011682016040523d82523d6000602084013e614a38565b606091505b50509050600091506000905060008b1115614bcc57601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71987308e600080601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015614b3957600080fd5b505af1158015614b4d573d6000803e3d6000fd5b50505050506040513d6060811015614b6457600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506868c604051808381526020018281526020019250505060405180910390a15b5050505050505050505050506000602260006101000a81548160ff021916908315150217905550565b600080601f541415905090565b43601f81905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614c6b57601854614c6f565b6019545b90506000614c996064614c8b84876131d490919063ffffffff16565b61325a90919063ffffffff16565b9050614ced81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3614da8818561418890919063ffffffff16565b92505050939250505056fe4d617820676173206d75737420626520686967686572207468616e20372067776569536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212204ba74324fc2a11ff8378d56cb713cafdac881e01e73960ac3a2b52fd34210eec64736f6c63430007040033

Deployed Bytecode Sourcemap

11546:14025:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13461:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12728:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14919:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15763:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23334:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15181:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12912:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19863:372;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15361:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12692:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10944:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15095:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18618:285;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13071:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18911:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12361:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12467:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12204:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19403:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13360:40;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15987:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16911:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18129:481;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12654:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15511:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13034:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17745:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12081:52;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17014:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12140:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15275:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12523:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19554:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12412:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17132:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15005:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12616:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17475:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13139:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19699:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19195:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10617:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13239:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16319:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13167:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12991:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12946;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16618:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13407:45;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23440:206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15622:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17355:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10787:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16115:98;;;;;;;;;;;;;:::i;:::-;;11316:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13108:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17606:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12562:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11118:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12869:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13199:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13461:54;;;;:::o;12728:29::-;;;;:::o;14919:80::-;14967:13;14991:5;;;;;;;;;;;;;;;;;14984:12;;14919:80;:::o;15763:216::-;15838:4;15890:6;15855:11;:23;15867:10;15855:23;;;;;;;;;;;;;;;:32;15879:7;15855:32;;;;;;;;;;;;;;;:41;;;;15933:7;15912:37;;15921:10;15912:37;;;15942:6;15912:37;;;;;;;;;;;;;;;;;;15967:4;15960:11;;15763:216;;;;:::o;23334:98::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23415:9:::1;23401:11;;:23;;;;;;;;;;;;;;;;;;23334:98:::0;:::o;15181:88::-;15236:7;15254:12;;15247:19;;15181:88;:::o;12912:27::-;;;;:::o;19863:372::-;19963:4;20036:2;19993:11;:19;20005:6;19993:19;;;;;;;;;;;;;;;:31;20013:10;19993:31;;;;;;;;;;;;;;;;:46;19990:180;;20089:69;20125:6;20089:69;;;;;;;;;;;;;;;;;:11;:19;20101:6;20089:19;;;;;;;;;;;;;;;:31;20109:10;20089:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;20055:11;:19;20067:6;20055:19;;;;;;;;;;;;;;;:31;20075:10;20055:31;;;;;;;;;;;;;;;:103;;;;19990:180;20187:40;20201:6;20209:9;20220:6;20187:13;:40::i;:::-;20180:47;;19863:372;;;;;:::o;15361:142::-;15414:7;15441:54;15479:15;15489:4;;;;;;;;;;;15479:9;:15::i;:::-;15441:33;15458:15;15468:4;;;;;;;;;;;15458:9;:15::i;:::-;15441:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;15434:61;;15361:142;:::o;12692:29::-;;;;:::o;10944:103::-;10999:4;11034:5;;;;;;;;;;;11023:16;;:7;:16;;;11016:23;;10944:103;;;:::o;15095:80::-;15147:5;11736:2;15156:16;;15095:80;:::o;18618:285::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18785:20:::1;18761:21;;:44;;;;;;;;;;;;;;;;;;18834:18;18816:15;;:36;;;;;;;;;;;;;;;;;;18879:16;18863:13;;:32;;;;;;;;;;;;;;;;;;18618:285:::0;;;:::o;13071:28::-;;;;;;;;;;;;;:::o;18911:276::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19068:14:::1;19043:21;;:39;;;;;;;;;;;;;;;;;;19109:16;19093:13;:32;;;;19164:15;19136:25;;:43;;;;;;;;;;;;;;;;;;18911:276:::0;;;:::o;12361:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;12467:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;12204:33::-;;;;;;;;;;;;;:::o;19403:139::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19496:6:::1;19490:3;:12;19482:21;;;::::0;::::1;;19531:3;19514:14;:20;;;;19403:139:::0;:::o;13360:40::-;;;;;;;;;;;;;:::o;15987:116::-;16042:4;16066:29;16074:7;16091:2;16066:7;:29::i;:::-;16059:36;;15987:116;;;:::o;16911:95::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16991:7:::1;16975:13;;:23;;;;;;;;;;;;;;;;;;16911:95:::0;:::o;18129:481::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18284:9:::1;18269:12;:24;;;;18317:12;18304:10;:25;;;;18355:15;18340:12;:30;;;;18394:13;18381:10;:26;;;;18439:62;18490:10;;18439:46;18474:10;;18439:30;18456:12;;18439;;:16;;:30;;;;:::i;:::-;:34;;:46;;;;:::i;:::-;:50;;:62;;;;:::i;:::-;18428:8;:73;;;;18532:2;18520:8;;:14;;18512:23;;;::::0;::::1;;18566:36;18599:2;18566:28;18579:14;;18566:8;;:12;;:28;;;;:::i;:::-;:32;;:36;;;;:::i;:::-;18546:17;:56;;;;18129:481:::0;;;;:::o;12654:31::-;;;;:::o;15511:105::-;15577:7;15595:9;:18;15605:7;15595:18;;;;;;;;;;;;;;;;15588:25;;15511:105;;;:::o;13034:30::-;;;;;;;;;;;;;:::o;17745:376::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17863:4:::1;17845:23;;:6;:23;;;;:41;;;;;17882:4;;;;;;;;;;;17872:14;;:6;:14;;;;17845:41;17837:50;;;::::0;::::1;;17925:6;17898:16;:24;17915:6;17898:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;17955:6;17952:162;;;17977:19;;;;;;;;;;;:28;;;18006:6;18014:1;17977:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17952:162;;;18047:19;;;;;;;;;;;:28;;;18076:6;18084:9;:17;18094:6;18084:17;;;;;;;;;;;;;;;;18047:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17952:162;17745:376:::0;;:::o;12081:52::-;;;;:::o;17014:106::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17104:8:::1;17090:10;:22;;;;17014:106:::0;:::o;12140:51::-;;;;:::o;15275:78::-;15327:7;15345:5;;;;;;;;;;;15338:12;;15275:78;:::o;12523:32::-;;;;;;;;;;;;;:::o;19554:133::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19631:19:::1;;;;;;;;;;;:34;;;19666:12;19631:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19554:133:::0;:::o;12412:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;17132:215::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17245:9:::1;17240:100;17260:9;;:16;;17256:1;:20;17240:100;;;17322:6;17292:13;:27;17306:9;;17316:1;17306:12;;;;;;;;;;;;;;;17292:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17278:3;;;;;17240:100;;;;17132:215:::0;;;:::o;15005:84::-;15055:13;15079:7;;;;;;;;;;;;;;;;;15072:14;;15005:84;:::o;12616:31::-;;;;:::o;17475:123::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17584:6:::1;17562:11;:19;17574:6;17562:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17475:123:::0;;:::o;13139:19::-;;;;;;;;;;;;;:::o;19699:156::-;19779:4;19803:44;19817:10;19829:9;19840:6;19803:13;:44::i;:::-;19796:51;;19699:156;;;;:::o;19195:200::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19311:19:::1;;;;;;;;;;;:43;;;19355:11;19368:18;19311:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19195:200:::0;;:::o;10617:94::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10699:4:::1;10677:14:::0;:19:::1;10692:3;10677:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;10617:94:::0;:::o;13239:46::-;;;;;;;;;;;;;:::o;16319:208::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16413:2:::1;16401:8;:14;;16393:23;;;::::0;::::1;;16444:8;16427:14;:25;;;;16483:36;16516:2;16483:28;16496:14;;16483:8;;:12;;:28;;;;:::i;:::-;:32;;:36;;;;:::i;:::-;16463:17;:56;;;;16319:208:::0;:::o;13167:25::-;;;;:::o;12991:36::-;;;;;;;;;;;;;:::o;12946:::-;;;;:::o;16618:103::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16705:8:::1;16690:12;:23;;;;16618:103:::0;:::o;13407:45::-;;;;;;;;;;;;;:::o;23440:206::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23515:1:::1;23509:3;:7;23501:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23582:3;23566:15;:19;;;;23631:6;23613:15;;:24;23596:14;:41;;;;23440:206:::0;:::o;15622:133::-;15706:7;15724:11;:19;15736:6;15724:19;;;;;;;;;;;;;;;:28;15744:7;15724:28;;;;;;;;;;;;;;;;15717:35;;15622:133;;;;:::o;17355:108::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17447:8:::1;17430:14;;:25;;;;;;;;;;;;;;;;;;17355:108:::0;:::o;10787:97::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10871:5:::1;10849:14;:19;10864:3;10849:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;10787:97:::0;:::o;16115:98::-;16160:19;;;;;;;;;;;:33;;;16194:10;16160:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16115:98::o;11316:173::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11400:3:::1;11392:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;11436:4;11414:14:::0;:19:::1;11429:3;11414:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11456:25;11477:3;11456:25;;;;;;;;;;;;;;;;;;;;11316:173:::0;:::o;13108:24::-;;;;;;;;;;;;;:::o;17606:131::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17723:6:::1;17697:15;:23;17713:6;17697:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17606:131:::0;;:::o;12562:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;11118:107::-;11174:4;11198:14;:19;11213:3;11198:19;;;;;;;;;;;;;;;;;;;;;;;;;11191:26;;11118:107;;;:::o;12869:34::-;;;;:::o;13199:31::-;;;;;;;;;;;;;:::o;169:179::-;227:7;247:9;263:1;259;:5;247:17;;288:1;283;:6;;275:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:1;332:8;;;169:179;;;;:::o;698:224::-;756:7;785:1;780;:6;776:25;;;797:1;790:8;;;;776:25;811:9;827:1;823;:5;811:17;;856:1;851;847;:5;;;;;;:10;839:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:1;906:8;;;698:224;;;;;:::o;930:132::-;988:7;1015:39;1019:1;1022;1015:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1008:46;;930:132;;;;:::o;500:190::-;586:7;619:1;614;:6;;622:12;606:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;646:9;662:1;658;:5;646:17;;681:1;674:8;;;500:190;;;;;:::o;20243:2294::-;20335:4;20365:16;;;;;;;;;;;20362:73;;;20391:41;20406:6;20414:9;20425:6;20391:14;:41::i;:::-;20384:48;;;;20362:73;20451:14;:22;20466:6;20451:22;;;;;;;;;;;;;;;;;;;;;;;;;20450:23;:53;;;;;20478:14;:25;20493:9;20478:25;;;;;;;;;;;;;;;;;;;;;;;;;20477:26;20450:53;20447:128;;;20527:11;;;;;;;;;;;20519:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20447:128;20605:12;;20595:6;:22;;:49;;;;20621:15;:23;20637:6;20621:23;;;;;;;;;;;;;;;;;;;;;;;;;20595:49;20587:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20696:4;;;;;;;;;;;20682:18;;:10;:18;;;;:39;;;;;20705:16;;;;;;;;;;;20704:17;20682:39;:64;;;;;20725:21;;;;;;;;;;;20682:64;:109;;;;;20778:13;;20750:9;:24;20768:4;20750:24;;;;;;;;;;;;;;;;:41;;20682:109;20679:156;;;20808:10;:8;:10::i;:::-;20679:156;20851:10;:8;:10::i;:::-;20850:11;:32;;;;;20878:4;;;;;;;;;;;20865:17;;:9;:17;;;20850:32;20847:117;;;20927:1;20907:9;:17;20917:6;20907:17;;;;;;;;;;;;;;;;:21;20899:30;;;;;;20944:8;:6;:8::i;:::-;20847:117;21010:13;;;;;;;;;;;21006:148;;;21063:13;:21;21077:6;21063:21;;;;;;;;;;;;;;;;;;;;;;;;;21062:22;:51;;;;;21089:13;:24;21103:9;21089:24;;;;;;;;;;;;;;;;;;;;;;;;;21088:25;21062:51;21040:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21006:148;21182:4;;;;;;;;;;;21169:17;;:9;:17;;;:44;;;;;21191:14;:22;21206:6;21191:22;;;;;;;;;;;;;;;;;;;;;;;;;21190:23;21169:44;21166:173;;;21253:14;;21238:11;:29;;21230:38;;;;;;21291:11;;;;;;;;;;;21283:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21166:173;21367:4;;;;;;;;;;;21354:17;;:9;:17;;;;:47;;;;;21376:14;:25;21391:9;21376:25;;;;;;;;;;;;;;;;;;;;;;;;;21375:26;21354:47;21351:238;;;21426:11;;;;;;;;;;;21418:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21496:14;;21481:11;:29;21477:101;;21558:4;21531:13;:24;21545:9;21531:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;21477:101;21351:238;21648:53;21670:6;21648:53;;;;;;;;;;;;;;;;;:9;:17;21658:6;21648:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;21628:9;:17;21638:6;21628:17;;;;;;;;;;;;;;;:73;;;;21726:15;:26;21742:9;21726:26;;;;;;;;;;;;;;;;;;;;;;;;;21725:27;:45;;;;;21756:14;;;;;;;;;;;21725:45;21722:141;;;21840:10;;21804:32;21829:6;21804:9;:20;21814:9;21804:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;21796:55;;;;;;21722:141;21875:19;21898:11;:19;21910:6;21898:19;;;;;;;;;;;;;;;;;;;;;;;;;21897:20;:47;;;;;21922:11;:22;21934:9;21922:22;;;;;;;;;;;;;;;;;;;;;;;;;21921:23;21897:47;:93;;21984:6;21897:93;;;21947:34;21955:6;21963:9;21974:6;21947:7;:34::i;:::-;21897:93;21875:115;;22024:37;22049:11;22024:9;:20;22034:9;22024:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;22001:9;:20;22011:9;22001:20;;;;;;;;;;;;;;;:60;;;;22107:16;:24;22124:6;22107:24;;;;;;;;;;;;;;;;;;;;;;;;;22103:127;;22152:19;;;;;;;;;;;:28;;;22181:6;22189:9;:17;22199:6;22189:17;;;;;;;;;;;;;;;;22152:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22148:71;;;;;;22103:127;22246:16;:27;22263:9;22246:27;;;;;;;;;;;;;;;;;;;;;;;;;22242:137;;22294:19;;;;;;;;;;;:28;;;22323:9;22334;:20;22344:9;22334:20;;;;;;;;;;;;;;;;22294:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22290:77;;;;;;22242:137;22395:19;;;;;;;;;;;:27;;;22423:14;;22395:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22391:59;;;;;;22484:9;22467:40;;22476:6;22467:40;;;22495:11;22467:40;;;;;;;;;;;;;;;;;;22525:4;22518:11;;;20243:2294;;;;;;:::o;356:136::-;414:7;441:43;445:1;448;441:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;434:50;;356:136;;;;:::o;1070:189::-;1156:7;1188:1;1184;:5;1191:12;1176:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1215:9;1231:1;1227;:5;;;;;;1215:17;;1250:1;1243:8;;;1070:189;;;;;:::o;22549:330::-;22642:4;22679:53;22701:6;22679:53;;;;;;;;;;;;;;;;;:9;:17;22689:6;22679:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;22659:9;:17;22669:6;22659:17;;;;;;;;;;;;;;;:73;;;;22766:32;22791:6;22766:9;:20;22776:9;22766:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22743:9;:20;22753:9;22743:20;;;;;;;;;;;;;;;:55;;;;22831:9;22814:35;;22823:6;22814:35;;;22842:6;22814:35;;;;;;;;;;;;;;;;;;22867:4;22860:11;;22549:330;;;;;:::o;23654:1848::-;13579:4;13560:16;;:23;;;;;;;;;;;;;;;;;;23716::::1;23742:9;:24;23760:4;23742:24;;;;;;;;;;;;;;;;23716:50;;23777:23;23803:54;23855:1;23803:47;23841:8;;23803:33;23823:12;;23803:15;:19;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;:51;;:54;;;;:::i;:::-;23777:80;;23868:20;23891:36;23911:15;23891;:19;;:36;;;;:::i;:::-;23868:59;;23940:21;23978:1;23964:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23940:40;;24009:4;23991;23996:1;23991:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;24035:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;24025:4;24030:1;24025:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;24061:6;;;;;;;;;;;:57;;;24133:12;24160:1;24176:4;24203;24223:15;24061:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24262:17;24282:21;24262:41;;24316:19;24338:33;24351:19;24368:1;24351:12;;:16;;:19;;;;:::i;:::-;24338:8;;:12;;:33;;;;:::i;:::-;24316:55;;24392:26;24421:51;24470:1;24421:44;24453:11;24421:27;24435:12;;24421:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;24392:80;;24483:27;24513:42;24543:11;24513:25;24527:10;;24513:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;24483:72;;24566:26;24595:44;24627:11;24595:27;24609:12;;24595:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;24566:73;;24650:24;24677:42;24707:11;24677:25;24691:10;;24677:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;24650:69;;24736:19;;;;;;;;;;;:27;;;24771:19;24736:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;24732:73;;;;;;24818:15;24846;;;;;;;;;;;24838:29;;24875:18;24900:5;24838:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24817:93;;;24922:16;24951:13;;;;;;;;;;;24943:27;;24978:16;25001:5;24943:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24921:90;;;25085:5;25072:18;;25115:5;25101:19;;25154:1;25136:15;:19;25133:362;;;25171:6;;;;;;;;;;;:22;;;25201:18;25247:4;25271:15;25305:1;25325::::0;25345:21:::1;;;;;;;;;;;25385:15;25171:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25435:48;25447:18;25467:15;25435:48;;;;;;;;;;;;;;;;;;;;;;;;25133:362;13594:1;;;;;;;;;;;;13625:5:::0;13606:16;;:24;;;;;;;;;;;;;;;;;;23654:1848::o;16221:90::-;16264:4;16302:1;16288:10;;:15;;16281:22;;16221:90;:::o;16535:71::-;16586:12;16573:10;:25;;;;16535:71::o;22887:439::-;22973:7;23003:21;23035:9;23027:17;;:4;;;;;;;;;;;:17;;;:48;;23067:8;;23027:48;;;23047:17;;23027:48;23003:72;;23086:17;23106:34;23136:3;23106:25;23117:13;23106:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;23086:54;;23180:39;23209:9;23180;:24;23198:4;23180:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;23153:9;:24;23171:4;23153:24;;;;;;;;;;;;;;;:66;;;;23260:4;23235:42;;23244:6;23235:42;;;23267:9;23235:42;;;;;;;;;;;;;;;;;;23297:21;23308:9;23297:6;:10;;:21;;;;:::i;:::-;23290:28;;;;22887:439;;;;;:::o

Swarm Source

ipfs://6fd4f64da033e9f009b9716a1bb8a430601dd7c5698a04576f9214a76e025d2b
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.