ETH Price: $3,079.99 (-1.17%)
Gas: 3 Gwei

Contract

0xFAcA9639Cb8CA4101CE86d480985cbB5E28d58e0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Value
Transfer190644172024-01-22 19:44:59118 days ago1705952699IN
0xFAcA9639...5E28d58e0
0 ETH0.0023009235.92947079
0x60c06040182868382023-10-05 20:58:23227 days ago1696539503IN
 Create: GOGA
0 ETH0.05905249.2209052

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GOGA

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-05
*/

// SPDX-License-Identifier: MIT
// 
//
//   _____/\\\\\\\\\\\\_______/\\\\\__________/\\\\\\\\\\\\_____/\\\\\\\\\____        
//    ___/\\\//////////______/\\\///\\\______/\\\//////////____/\\\\\\\\\\\\\__       
//     __/\\\_______________/\\\/__\///\\\___/\\\______________/\\\/////////\\\_      
//      _\/\\\____/\\\\\\\__/\\\______\//\\\_\/\\\____/\\\\\\\_\/\\\_______\/\\\_     
//       _\/\\\___\/////\\\_\/\\\_______\/\\\_\/\\\___\/////\\\_\/\\\\\\\\\\\\\\\_    
//        _\/\\\_______\/\\\_\//\\\______/\\\__\/\\\_______\/\\\_\/\\\/////////\\\_   
//         _\/\\\_______\/\\\__\///\\\__/\\\____\/\\\_______\/\\\_\/\\\_______\/\\\_  
//          _\//\\\\\\\\\\\\/_____\///\\\\\/_____\//\\\\\\\\\\\\/__\/\\\_______\/\\\_ 
//           __\////////////_________\/////________\////////////____\///________\///__
//                            
//   
// 
// 
// Website      :   https://gogatoken.com

pragma solidity 0.8.9;

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

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

interface IERC20Metadata is IERC20 {
    
    function name() external view returns(string memory);
    function symbol() external view returns(string memory);
    function decimals() external view returns(uint8);
}

abstract contract Context {
    function _msgSender() internal view virtual returns(address) {
        return msg.sender;
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;
 
    uint256 private _totalSupply;
 
    string private _name;
    string private _symbol;
    
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    
    function name() public view virtual override returns(string memory) {
        return _name;
    }
   
    function symbol() public view virtual override returns(string memory) {
        return _symbol;
    }
    
    function decimals() public view virtual override returns(uint8) {
        return 18;
    }
   
    function totalSupply() public view virtual override returns(uint256) {
        return _totalSupply;
    }
    
    function balanceOf(address account) public view virtual override returns(uint256) {
        return _balances[account];
    }
    
    function transfer(address recipient, uint256 amount) public virtual override returns(bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    
    function allowance(address owner, address spender) public view virtual override returns(uint256) {
        return _allowances[owner][spender];
    }
    
    function approve(address spender, uint256 amount) public virtual override returns(bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns(bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    
    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 cannot be below zero"));
        return true;
    }
    
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }
    
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }
   
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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

        return c;
    }

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

        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns(uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
  
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns(uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
    
}
 
contract Ownable is Context {

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns(address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
 
library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);
    
    function mul(int256 a, int256 b) internal pure returns(int256) {
        int256 c = a * b;

        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }
   
    function div(int256 a, int256 b) internal pure returns(int256) {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);

        // Solidity already throws when dividing by 0.
        return a / b;
    }

    /**
     * @dev Subtracts two int256 variables and fails on overflow.
     */
    function sub(int256 a, int256 b) internal pure returns(int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    /**
     * @dev Adds two int256 variables and fails on overflow.
     */
    function add(int256 a, int256 b) internal pure returns(int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    /**
     * @dev Converts to absolute value, and fails on overflow.
     */
    function abs(int256 a) internal pure returns(int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }

    function toUint256Safe(int256 a) internal pure returns(uint256) {
        require(a >= 0);
        return uint256(a);
    }
}
 
library SafeMathUint {
    function toInt256Safe(uint256 a) internal pure returns(int256) {
    int256 b = int256(a);
        require(b >= 0);
        return b;
    }
}

interface IUniswapV2Router02 {
    function factory() external pure returns(address);
    function WETH() external pure returns(address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
 
contract GOGA is ERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public immutable router;
    address public immutable uniswapV2Pair;

    address public  feesWallet;

    // limits 
    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;   
    uint256 public maxWalletAmount;
 
    uint256 private thresholdSwapAmount;

    // status flags
    bool private isTrading = false;
    bool public swapEnabled = false;
    bool public isSwapping;

    uint8 public buyFees;
    uint8 public sellFees;

    uint256 public tokensForFees = balanceOf(address(this));


    // Excludes from fees and max transaction amount
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;
    mapping(address => bool) public _isExcludedMaxWalletAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping(address => bool) public marketPair;
    
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived
    );

    constructor() ERC20("GOGA TOKEN", "GOGA") {
 
        router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        uniswapV2Pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());

        _isExcludedMaxTransactionAmount[address(router)] = true;
        _isExcludedMaxTransactionAmount[address(uniswapV2Pair)] = true;        
        _isExcludedMaxTransactionAmount[owner()] = true;
        _isExcludedMaxTransactionAmount[address(this)] = true;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;

        _isExcludedMaxWalletAmount[owner()] = true;
        _isExcludedMaxWalletAmount[address(this)] = true;
        _isExcludedMaxWalletAmount[address(uniswapV2Pair)] = true;

        marketPair[address(uniswapV2Pair)] = true;

        approve(address(router), type(uint256).max);
        uint256 totalSupply = 1e11 * 1e18; //Total supply is 100 Billion

        maxBuyAmount = totalSupply * 1 / 1000; // 0.1% maxbuy initially
        maxSellAmount = totalSupply * 1 / 1000; // 0.1% maxsell initially
        maxWalletAmount = totalSupply * 1 / 1000; // 0.1% maxWallet initially 
        thresholdSwapAmount = totalSupply * 1 / 10000; // 0.01% minimum to allow fees swap

        buyFees = 1;
        sellFees = 1;

        feesWallet = address(0xC1B8C5675023DBe4335BccD011FD053a57b901dA);
        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    /**
     * @dev Once enabled, trades cannot be disabled.
     */
    function enableTrading() external onlyOwner {
        isTrading = true;
        swapEnabled = true;
    }

    function updateMaxTxnAmount(uint256 newMaxBuy, uint256 newMaxSell) external onlyOwner {
        /**
        * @dev to enter 1 for 0.1%, 10 for 1% and 1000 for 100%
        */
        require(((totalSupply() * newMaxBuy) / 1000) >= (totalSupply() / 1000), "maxBuyAmount must be greater than 0.1%");
        require(((totalSupply() * newMaxSell) / 1000) >= (totalSupply() / 1000), "maxSellAmount must be greater than 0.1%");
        maxBuyAmount = (totalSupply() * newMaxBuy) / 1000;
        maxSellAmount = (totalSupply() * newMaxSell) / 1000;
    }

    function updateMaxWalletAmount(uint256 newPercentage) external onlyOwner {
        /**
        * @dev to enter 1 for 0.1%, 10 for 1% and 1000 for 100%
        */
        require(((totalSupply() * newPercentage) / 1000) >= (totalSupply() / 1000), "Must be atleast 0.1%");
        maxWalletAmount = (totalSupply() * newPercentage) / 1000;
    }
    
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }

    function excludeFromWalletLimit(address account, bool excluded) public onlyOwner {
        _isExcludedMaxWalletAmount[account] = excluded;
    }

    function setMarketPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "Must keep uniswapV2Pair");
        marketPair[pair] = value;
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        IERC20(tokenAdd).transfer(owner(), amount);
    }

    function setFeesWallet(address _feesWallet) external onlyOwner{
        feesWallet = _feesWallet;
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
        
    ) internal override {
        
        if (amount == 0) {
            super._transfer(sender, recipient, 0);
            return;
        }

        if (
            sender != owner() &&
            recipient != owner() &&
            !isSwapping
        ) {

            if (!isTrading) {
                require(_isExcludedFromFees[sender] || _isExcludedFromFees[recipient], "Trading is not active.");
            }
            if (marketPair[sender] && !_isExcludedMaxTransactionAmount[recipient]) {
                require(amount <= maxBuyAmount, "buy transfer over max amount");
            } 
            else if (marketPair[recipient] && !_isExcludedMaxTransactionAmount[sender]) {
                require(amount <= maxSellAmount, "Sell transfer over max amount");
            }

            if (!_isExcludedMaxWalletAmount[recipient]) {
                require(amount + balanceOf(recipient) <= maxWalletAmount, "Max wallet exceeded");
            }
           
        }
 
        uint256 contractTokenBalance = balanceOf(address(this));
 
        bool canSwap = contractTokenBalance >= thresholdSwapAmount;

        if (
            canSwap &&
            swapEnabled &&
            !isSwapping &&
            marketPair[recipient] &&
            !_isExcludedFromFees[sender] &&
            !_isExcludedFromFees[recipient]
        ) {
            isSwapping = true;
            swapBack();
            isSwapping = false;
        }
 
        bool takeFee = !isSwapping;

        // If any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[sender] || _isExcludedFromFees[recipient]) {
            takeFee = false;
        }
 
        // Only take fees on buys/sells, not on wallet transfers
        if (takeFee) {
            uint256 fees = 0;
            // On sell
            if (marketPair[recipient] && sellFees > 0) {
                fees = amount.mul(sellFees).div(100);
            }
            // On buy
            else if (marketPair[sender] && buyFees > 0) {
                fees = amount.mul(buyFees).div(100);
            }
            //Transfer fees tokens to contract
            if (fees > 0) {
                super._transfer(sender, address(this), fees);
            }

            amount -= fees;

        }

        super._transfer(sender, recipient, amount);
    }

    function swapTokensForEth(uint256 tAmount) private {

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

        _approve(address(this), address(router), tAmount);

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

    }

    function swapBack() private {

        uint256 contractTokenBalance = balanceOf(address(this));
        bool success;

        if (contractTokenBalance == 0) { return; }

        if (contractTokenBalance > thresholdSwapAmount * 100) {
            contractTokenBalance = thresholdSwapAmount * 100;
        }

        uint256 amountToSwapForETH = contractTokenBalance;

        swapTokensForEth(amountToSwapForETH); 

        (success,) = address(feesWallet).call{ value: (address(this).balance) } ("");

    }

}

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"}],"name":"SwapAndLiquify","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":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxWalletAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSwapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feesWallet","type":"address"}],"name":"setFeesWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"tokensForFees","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxBuy","type":"uint256"},{"internalType":"uint256","name":"newMaxSell","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526000600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff0219169083151502179055506200004b30620008e360201b60201c565b600c553480156200005b57600080fd5b506040518060400160405280600a81526020017f474f474120544f4b454e000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f474f4741000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000e092919062000c76565b508060049080519060200190620000f992919062000c76565b50505060006200010e6200092b60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023e57600080fd5b505afa15801562000253573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000279919062000d90565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002de57600080fd5b505afa158015620002f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000319919062000d90565b6040518363ffffffff1660e01b81526004016200033892919062000dd3565b602060405180830381600087803b1580156200035357600080fd5b505af115801562000368573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038e919062000d90565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506001600e600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60006200048b6200093360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60006200054a6200093360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000620006096200093360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200079a6080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200095d60201b60201c565b5060006c01431e0fae6d7217caa000000090506103e8600182620007bf919062000e39565b620007cb919062000ec9565b6007819055506103e8600182620007e3919062000e39565b620007ef919062000ec9565b6008819055506103e860018262000807919062000e39565b62000813919062000ec9565b6009819055506127106001826200082b919062000e39565b62000837919062000ec9565b600a819055506001600b60036101000a81548160ff021916908360ff1602179055506001600b60046101000a81548160ff021916908360ff16021790555073c1b8c5675023dbe4335bccd011fd053a57b901da600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620008dc33826200098b60201b60201c565b50620010e6565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600062000981620009736200092b60201b60201c565b848462000b2660201b60201c565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620009fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009f59062000f62565b60405180910390fd5b62000a1a8160025462000c1360201b62001cbf1790919060201c565b60028190555062000a78816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000c1360201b62001cbf1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b1a919062000f95565b60405180910390a35050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000c06919062000f95565b60405180910390a3505050565b600080828462000c24919062000fb2565b90508381101562000c6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c63906200105f565b60405180910390fd5b8091505092915050565b82805462000c8490620010b0565b90600052602060002090601f01602090048101928262000ca8576000855562000cf4565b82601f1062000cc357805160ff191683800117855562000cf4565b8280016001018555821562000cf4579182015b8281111562000cf357825182559160200191906001019062000cd6565b5b50905062000d03919062000d07565b5090565b5b8082111562000d2257600081600090555060010162000d08565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d588262000d2b565b9050919050565b62000d6a8162000d4b565b811462000d7657600080fd5b50565b60008151905062000d8a8162000d5f565b92915050565b60006020828403121562000da95762000da862000d26565b5b600062000db98482850162000d79565b91505092915050565b62000dcd8162000d4b565b82525050565b600060408201905062000dea600083018562000dc2565b62000df9602083018462000dc2565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000e468262000e00565b915062000e538362000e00565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e8f5762000e8e62000e0a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ed68262000e00565b915062000ee38362000e00565b92508262000ef65762000ef562000e9a565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000f4a601f8362000f01565b915062000f578262000f12565b602082019050919050565b6000602082019050818103600083015262000f7d8162000f3b565b9050919050565b62000f8f8162000e00565b82525050565b600060208201905062000fac600083018462000f84565b92915050565b600062000fbf8262000e00565b915062000fcc8362000e00565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001004576200100362000e0a565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001047601b8362000f01565b915062001054826200100f565b602082019050919050565b600060208201905081810360008301526200107a8162001038565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620010c957607f821691505b60208210811415620010e057620010df62001081565b5b50919050565b60805160a051613bc46200112860003960008181610e4801526116f7015260008181611c9d01528181612a8301528181612b730152612b9a0152613bc46000f3fe6080604052600436106102295760003560e01c80638cd4426d11610123578063c0246668116100ab578063e16830a81161006f578063e16830a81461083e578063e4748b9e14610867578063f2fde38b14610892578063f5b3c3bf146108bb578063f887ea40146108f857610230565b8063c02466681461075b578063c16dd4a414610784578063c18bc195146107ad578063dd62ed3e146107d6578063e0f3ccf51461081357610230565b80639e252f00116100f25780639e252f0014610662578063a457c2d71461068b578063a9059cbb146106c8578063aa4bde2814610705578063b88631151461073057610230565b80638cd4426d146105a65780638da5cb5b146105cf57806395d89b41146105fa57806396880b171461062557610230565b806343d4f92b116101b157806370a082311161017557806370a08231146104e5578063715018a6146105225780637e44d2cc1461053957806388e765ff146105645780638a8c523c1461058f57610230565b806343d4f92b146103fe57806349bd5a5e146104275780634fbee1931461045257806366d602ae1461048f5780636ddd1713146104ba57610230565b806318160ddd116101f857806318160ddd1461030357806323b872dd1461032e578063313ce5671461036b57806339509351146103965780633f8a6204146103d357610230565b806306fdde0314610235578063095ea7b31461026057806310d5de531461029d57806311a582c3146102da57610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610923565b6040516102579190612d2c565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612de7565b6109b5565b6040516102949190612e42565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190612e5d565b6109d3565b6040516102d19190612e42565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190612e8a565b6109f3565b005b34801561030f57600080fd5b50610318610bc6565b6040516103259190612ed9565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612ef4565b610bd0565b6040516103629190612e42565b60405180910390f35b34801561037757600080fd5b50610380610ca9565b60405161038d9190612f63565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190612de7565b610cb2565b6040516103ca9190612e42565b60405180910390f35b3480156103df57600080fd5b506103e8610d65565b6040516103f59190612ed9565b60405180910390f35b34801561040a57600080fd5b5061042560048036038101906104209190612e5d565b610d6b565b005b34801561043357600080fd5b5061043c610e46565b6040516104499190612f8d565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190612e5d565b610e6a565b6040516104869190612e42565b60405180910390f35b34801561049b57600080fd5b506104a4610ec0565b6040516104b19190612ed9565b60405180910390f35b3480156104c657600080fd5b506104cf610ec6565b6040516104dc9190612e42565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612e5d565b610ed9565b6040516105199190612ed9565b60405180910390f35b34801561052e57600080fd5b50610537610f21565b005b34801561054557600080fd5b5061054e611079565b60405161055b9190612f8d565b60405180910390f35b34801561057057600080fd5b5061057961109f565b6040516105869190612ed9565b60405180910390f35b34801561059b57600080fd5b506105a46110a5565b005b3480156105b257600080fd5b506105cd60048036038101906105c89190612de7565b611174565b005b3480156105db57600080fd5b506105e46112a4565b6040516105f19190612f8d565b60405180910390f35b34801561060657600080fd5b5061060f6112ce565b60405161061c9190612d2c565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190612e5d565b611360565b6040516106599190612e42565b60405180910390f35b34801561066e57600080fd5b5061068960048036038101906106849190612fa8565b611380565b005b34801561069757600080fd5b506106b260048036038101906106ad9190612de7565b611468565b6040516106bf9190612e42565b60405180910390f35b3480156106d457600080fd5b506106ef60048036038101906106ea9190612de7565b611535565b6040516106fc9190612e42565b60405180910390f35b34801561071157600080fd5b5061071a611553565b6040516107279190612ed9565b60405180910390f35b34801561073c57600080fd5b50610745611559565b6040516107529190612e42565b60405180910390f35b34801561076757600080fd5b50610782600480360381019061077d9190613001565b61156c565b005b34801561079057600080fd5b506107ab60048036038101906107a69190613001565b61165e565b005b3480156107b957600080fd5b506107d460048036038101906107cf9190612fa8565b6117df565b005b3480156107e257600080fd5b506107fd60048036038101906107f89190613041565b611915565b60405161080a9190612ed9565b60405180910390f35b34801561081f57600080fd5b5061082861199c565b6040516108359190612f63565b60405180910390f35b34801561084a57600080fd5b5061086560048036038101906108609190613001565b6119af565b005b34801561087357600080fd5b5061087c611aa1565b6040516108899190612f63565b60405180910390f35b34801561089e57600080fd5b506108b960048036038101906108b49190612e5d565b611ab4565b005b3480156108c757600080fd5b506108e260048036038101906108dd9190612e5d565b611c7b565b6040516108ef9190612e42565b60405180910390f35b34801561090457600080fd5b5061090d611c9b565b60405161091a91906130e0565b60405180910390f35b6060600380546109329061312a565b80601f016020809104026020016040519081016040528092919081815260200182805461095e9061312a565b80156109ab5780601f10610980576101008083540402835291602001916109ab565b820191906000526020600020905b81548152906001019060200180831161098e57829003601f168201915b5050505050905090565b60006109c96109c2611d1d565b8484611d25565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b6109fb611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a81906131a8565b60405180910390fd5b6103e8610a95610bc6565b610a9f9190613226565b6103e883610aab610bc6565b610ab59190613257565b610abf9190613226565b1015610b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af790613323565b60405180910390fd5b6103e8610b0b610bc6565b610b159190613226565b6103e882610b21610bc6565b610b2b9190613257565b610b359190613226565b1015610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d906133b5565b60405180910390fd5b6103e882610b82610bc6565b610b8c9190613257565b610b969190613226565b6007819055506103e881610ba8610bc6565b610bb29190613257565b610bbc9190613226565b6008819055505050565b6000600254905090565b6000610bdd848484611e10565b610c9e84610be9611d1d565b610c9985604051806060016040528060288152602001613b6760289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c4f611d1d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126299092919063ffffffff16565b611d25565b600190509392505050565b60006012905090565b6000610d5b610cbf611d1d565b84610d568560016000610cd0611d1d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cbf90919063ffffffff16565b611d25565b6001905092915050565b600c5481565b610d73611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df9906131a8565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60085481565b600b60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f29611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faf906131a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6110ad611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461113c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611133906131a8565b60405180910390fd5b6001600b60006101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff021916908315150217905550565b61117c611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611202906131a8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61122f6112a4565b836040518363ffffffff1660e01b815260040161124d9291906133d5565b602060405180830381600087803b15801561126757600080fd5b505af115801561127b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129f9190613413565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112dd9061312a565b80601f01602080910402602001604051908101604052809291908181526020018280546113099061312a565b80156113565780601f1061132b57610100808354040283529160200191611356565b820191906000526020600020905b81548152906001019060200180831161133957829003601f168201915b5050505050905090565b600f6020528060005260406000206000915054906101000a900460ff1681565b611388611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e906131a8565b60405180910390fd5b61141f6112a4565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611464573d6000803e3d6000fd5b5050565b600061152b611475611d1d565b8461152685604051806060016040528060258152602001613b1c602591396001600061149f611d1d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126299092919063ffffffff16565b611d25565b6001905092915050565b6000611549611542611d1d565b8484611e10565b6001905092915050565b60095481565b600b60029054906101000a900460ff1681565b611574611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fa906131a8565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611666611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec906131a8565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177b9061348c565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117e7611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186d906131a8565b60405180910390fd5b6103e8611881610bc6565b61188b9190613226565b6103e882611897610bc6565b6118a19190613257565b6118ab9190613226565b10156118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e3906134f8565b60405180910390fd5b6103e8816118f8610bc6565b6119029190613257565b61190c9190613226565b60098190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b60049054906101000a900460ff1681565b6119b7611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3d906131a8565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60039054906101000a900460ff1681565b611abc611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b42906131a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb29061358a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60106020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000808284611cce91906135aa565b905083811015611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a9061364c565b60405180910390fd5b8091505092915050565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e039190612ed9565b60405180910390a3505050565b6000811415611e2a57611e258383600061268d565b612624565b611e326112a4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ea05750611e706112a4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611eb95750600b60029054906101000a900460ff16155b1561223f57600b60009054906101000a900460ff16611fb357600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f735750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa9906136b8565b60405180910390fd5b5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120565750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120a5576007548111156120a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209790613724565b60405180910390fd5b612194565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121485750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561219357600854811115612192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218990613790565b60405180910390fd5b5b5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661223e576009546121f183610ed9565b826121fc91906135aa565b111561223d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612234906137fc565b60405180910390fd5b5b5b600061224a30610ed9565b90506000600a54821015905080801561226f5750600b60019054906101000a900460ff165b80156122885750600b60029054906101000a900460ff16155b80156122dd5750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156123335750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123895750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123cd576001600b60026101000a81548160ff0219169083151502179055506123b1612837565b6000600b60026101000a81548160ff0219169083151502179055505b6000600b60029054906101000a900460ff16159050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124835750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561248d57600090505b8015612615576000601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561250057506000600b60049054906101000a900460ff1660ff16115b156125445761253d606461252f600b60049054906101000a900460ff1660ff168861291f90919063ffffffff16565b61299a90919063ffffffff16565b90506125f0565b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125af57506000600b60039054906101000a900460ff1660ff16115b156125ef576125ec60646125de600b60039054906101000a900460ff1660ff168861291f90919063ffffffff16565b61299a90919063ffffffff16565b90505b5b60008111156126055761260487308361268d565b5b8085612611919061381c565b9450505b61262086868661268d565b5050505b505050565b6000838311158290612671576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126689190612d2c565b60405180910390fd5b5060008385612680919061381c565b9050809150509392505050565b6126f881604051806060016040528060268152602001613b41602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126299092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061278b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cbf90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161282a9190612ed9565b60405180910390a3505050565b600061284230610ed9565b905060008082141561285557505061291d565b6064600a546128649190613257565b82111561287d576064600a5461287a9190613257565b91505b600082905061288b816129e4565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516128d190613881565b60006040518083038185875af1925050503d806000811461290e576040519150601f19603f3d011682016040523d82523d6000602084013e612913565b606091505b5050809250505050505b565b6000808314156129325760009050612994565b600082846129409190613257565b905082848261294f9190613226565b1461298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298690613908565b60405180910390fd5b809150505b92915050565b60006129dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c30565b905092915050565b6000600267ffffffffffffffff811115612a0157612a00613928565b5b604051908082528060200260200182016040528015612a2f5781602001602082028036833780820191505090505b5090503081600081518110612a4757612a46613957565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612ae757600080fd5b505afa158015612afb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1f919061399b565b81600181518110612b3357612b32613957565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b98307f000000000000000000000000000000000000000000000000000000000000000084611d25565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612bfa959493929190613ac1565b600060405180830381600087803b158015612c1457600080fd5b505af1158015612c28573d6000803e3d6000fd5b505050505050565b60008083118290612c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6e9190612d2c565b60405180910390fd5b5060008385612c869190613226565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ccd578082015181840152602081019050612cb2565b83811115612cdc576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cfe82612c93565b612d088185612c9e565b9350612d18818560208601612caf565b612d2181612ce2565b840191505092915050565b60006020820190508181036000830152612d468184612cf3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d7e82612d53565b9050919050565b612d8e81612d73565b8114612d9957600080fd5b50565b600081359050612dab81612d85565b92915050565b6000819050919050565b612dc481612db1565b8114612dcf57600080fd5b50565b600081359050612de181612dbb565b92915050565b60008060408385031215612dfe57612dfd612d4e565b5b6000612e0c85828601612d9c565b9250506020612e1d85828601612dd2565b9150509250929050565b60008115159050919050565b612e3c81612e27565b82525050565b6000602082019050612e576000830184612e33565b92915050565b600060208284031215612e7357612e72612d4e565b5b6000612e8184828501612d9c565b91505092915050565b60008060408385031215612ea157612ea0612d4e565b5b6000612eaf85828601612dd2565b9250506020612ec085828601612dd2565b9150509250929050565b612ed381612db1565b82525050565b6000602082019050612eee6000830184612eca565b92915050565b600080600060608486031215612f0d57612f0c612d4e565b5b6000612f1b86828701612d9c565b9350506020612f2c86828701612d9c565b9250506040612f3d86828701612dd2565b9150509250925092565b600060ff82169050919050565b612f5d81612f47565b82525050565b6000602082019050612f786000830184612f54565b92915050565b612f8781612d73565b82525050565b6000602082019050612fa26000830184612f7e565b92915050565b600060208284031215612fbe57612fbd612d4e565b5b6000612fcc84828501612dd2565b91505092915050565b612fde81612e27565b8114612fe957600080fd5b50565b600081359050612ffb81612fd5565b92915050565b6000806040838503121561301857613017612d4e565b5b600061302685828601612d9c565b925050602061303785828601612fec565b9150509250929050565b6000806040838503121561305857613057612d4e565b5b600061306685828601612d9c565b925050602061307785828601612d9c565b9150509250929050565b6000819050919050565b60006130a66130a161309c84612d53565b613081565b612d53565b9050919050565b60006130b88261308b565b9050919050565b60006130ca826130ad565b9050919050565b6130da816130bf565b82525050565b60006020820190506130f560008301846130d1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061314257607f821691505b60208210811415613156576131556130fb565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613192602083612c9e565b915061319d8261315c565b602082019050919050565b600060208201905081810360008301526131c181613185565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061323182612db1565b915061323c83612db1565b92508261324c5761324b6131c8565b5b828204905092915050565b600061326282612db1565b915061326d83612db1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132a6576132a56131f7565b5b828202905092915050565b7f6d6178427579416d6f756e74206d75737420626520677265617465722074686160008201527f6e20302e31250000000000000000000000000000000000000000000000000000602082015250565b600061330d602683612c9e565b9150613318826132b1565b604082019050919050565b6000602082019050818103600083015261333c81613300565b9050919050565b7f6d617853656c6c416d6f756e74206d757374206265206772656174657220746860008201527f616e20302e312500000000000000000000000000000000000000000000000000602082015250565b600061339f602783612c9e565b91506133aa82613343565b604082019050919050565b600060208201905081810360008301526133ce81613392565b9050919050565b60006040820190506133ea6000830185612f7e565b6133f76020830184612eca565b9392505050565b60008151905061340d81612fd5565b92915050565b60006020828403121561342957613428612d4e565b5b6000613437848285016133fe565b91505092915050565b7f4d757374206b65657020756e6973776170563250616972000000000000000000600082015250565b6000613476601783612c9e565b915061348182613440565b602082019050919050565b600060208201905081810360008301526134a581613469565b9050919050565b7f4d7573742062652061746c6561737420302e3125000000000000000000000000600082015250565b60006134e2601483612c9e565b91506134ed826134ac565b602082019050919050565b60006020820190508181036000830152613511816134d5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613574602683612c9e565b915061357f82613518565b604082019050919050565b600060208201905081810360008301526135a381613567565b9050919050565b60006135b582612db1565b91506135c083612db1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135f5576135f46131f7565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613636601b83612c9e565b915061364182613600565b602082019050919050565b6000602082019050818103600083015261366581613629565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006136a2601683612c9e565b91506136ad8261366c565b602082019050919050565b600060208201905081810360008301526136d181613695565b9050919050565b7f627579207472616e73666572206f766572206d617820616d6f756e7400000000600082015250565b600061370e601c83612c9e565b9150613719826136d8565b602082019050919050565b6000602082019050818103600083015261373d81613701565b9050919050565b7f53656c6c207472616e73666572206f766572206d617820616d6f756e74000000600082015250565b600061377a601d83612c9e565b915061378582613744565b602082019050919050565b600060208201905081810360008301526137a98161376d565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006137e6601383612c9e565b91506137f1826137b0565b602082019050919050565b60006020820190508181036000830152613815816137d9565b9050919050565b600061382782612db1565b915061383283612db1565b925082821015613845576138446131f7565b5b828203905092915050565b600081905092915050565b50565b600061386b600083613850565b91506138768261385b565b600082019050919050565b600061388c8261385e565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006138f2602183612c9e565b91506138fd82613896565b604082019050919050565b60006020820190508181036000830152613921816138e5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061399581612d85565b92915050565b6000602082840312156139b1576139b0612d4e565b5b60006139bf84828501613986565b91505092915050565b6000819050919050565b60006139ed6139e86139e3846139c8565b613081565b612db1565b9050919050565b6139fd816139d2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a3881612d73565b82525050565b6000613a4a8383613a2f565b60208301905092915050565b6000602082019050919050565b6000613a6e82613a03565b613a788185613a0e565b9350613a8383613a1f565b8060005b83811015613ab4578151613a9b8882613a3e565b9750613aa683613a56565b925050600181019050613a87565b5085935050505092915050565b600060a082019050613ad66000830188612eca565b613ae360208301876139f4565b8181036040830152613af58186613a63565b9050613b046060830185612f7e565b613b116080830184612eca565b969550505050505056fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e156cee44ed44afe875492a013d7b22f407afc6bdd4c1eaffebb55c15ac0a58764736f6c63430008090033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80638cd4426d11610123578063c0246668116100ab578063e16830a81161006f578063e16830a81461083e578063e4748b9e14610867578063f2fde38b14610892578063f5b3c3bf146108bb578063f887ea40146108f857610230565b8063c02466681461075b578063c16dd4a414610784578063c18bc195146107ad578063dd62ed3e146107d6578063e0f3ccf51461081357610230565b80639e252f00116100f25780639e252f0014610662578063a457c2d71461068b578063a9059cbb146106c8578063aa4bde2814610705578063b88631151461073057610230565b80638cd4426d146105a65780638da5cb5b146105cf57806395d89b41146105fa57806396880b171461062557610230565b806343d4f92b116101b157806370a082311161017557806370a08231146104e5578063715018a6146105225780637e44d2cc1461053957806388e765ff146105645780638a8c523c1461058f57610230565b806343d4f92b146103fe57806349bd5a5e146104275780634fbee1931461045257806366d602ae1461048f5780636ddd1713146104ba57610230565b806318160ddd116101f857806318160ddd1461030357806323b872dd1461032e578063313ce5671461036b57806339509351146103965780633f8a6204146103d357610230565b806306fdde0314610235578063095ea7b31461026057806310d5de531461029d57806311a582c3146102da57610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610923565b6040516102579190612d2c565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612de7565b6109b5565b6040516102949190612e42565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190612e5d565b6109d3565b6040516102d19190612e42565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190612e8a565b6109f3565b005b34801561030f57600080fd5b50610318610bc6565b6040516103259190612ed9565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612ef4565b610bd0565b6040516103629190612e42565b60405180910390f35b34801561037757600080fd5b50610380610ca9565b60405161038d9190612f63565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190612de7565b610cb2565b6040516103ca9190612e42565b60405180910390f35b3480156103df57600080fd5b506103e8610d65565b6040516103f59190612ed9565b60405180910390f35b34801561040a57600080fd5b5061042560048036038101906104209190612e5d565b610d6b565b005b34801561043357600080fd5b5061043c610e46565b6040516104499190612f8d565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190612e5d565b610e6a565b6040516104869190612e42565b60405180910390f35b34801561049b57600080fd5b506104a4610ec0565b6040516104b19190612ed9565b60405180910390f35b3480156104c657600080fd5b506104cf610ec6565b6040516104dc9190612e42565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612e5d565b610ed9565b6040516105199190612ed9565b60405180910390f35b34801561052e57600080fd5b50610537610f21565b005b34801561054557600080fd5b5061054e611079565b60405161055b9190612f8d565b60405180910390f35b34801561057057600080fd5b5061057961109f565b6040516105869190612ed9565b60405180910390f35b34801561059b57600080fd5b506105a46110a5565b005b3480156105b257600080fd5b506105cd60048036038101906105c89190612de7565b611174565b005b3480156105db57600080fd5b506105e46112a4565b6040516105f19190612f8d565b60405180910390f35b34801561060657600080fd5b5061060f6112ce565b60405161061c9190612d2c565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190612e5d565b611360565b6040516106599190612e42565b60405180910390f35b34801561066e57600080fd5b5061068960048036038101906106849190612fa8565b611380565b005b34801561069757600080fd5b506106b260048036038101906106ad9190612de7565b611468565b6040516106bf9190612e42565b60405180910390f35b3480156106d457600080fd5b506106ef60048036038101906106ea9190612de7565b611535565b6040516106fc9190612e42565b60405180910390f35b34801561071157600080fd5b5061071a611553565b6040516107279190612ed9565b60405180910390f35b34801561073c57600080fd5b50610745611559565b6040516107529190612e42565b60405180910390f35b34801561076757600080fd5b50610782600480360381019061077d9190613001565b61156c565b005b34801561079057600080fd5b506107ab60048036038101906107a69190613001565b61165e565b005b3480156107b957600080fd5b506107d460048036038101906107cf9190612fa8565b6117df565b005b3480156107e257600080fd5b506107fd60048036038101906107f89190613041565b611915565b60405161080a9190612ed9565b60405180910390f35b34801561081f57600080fd5b5061082861199c565b6040516108359190612f63565b60405180910390f35b34801561084a57600080fd5b5061086560048036038101906108609190613001565b6119af565b005b34801561087357600080fd5b5061087c611aa1565b6040516108899190612f63565b60405180910390f35b34801561089e57600080fd5b506108b960048036038101906108b49190612e5d565b611ab4565b005b3480156108c757600080fd5b506108e260048036038101906108dd9190612e5d565b611c7b565b6040516108ef9190612e42565b60405180910390f35b34801561090457600080fd5b5061090d611c9b565b60405161091a91906130e0565b60405180910390f35b6060600380546109329061312a565b80601f016020809104026020016040519081016040528092919081815260200182805461095e9061312a565b80156109ab5780601f10610980576101008083540402835291602001916109ab565b820191906000526020600020905b81548152906001019060200180831161098e57829003601f168201915b5050505050905090565b60006109c96109c2611d1d565b8484611d25565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b6109fb611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a81906131a8565b60405180910390fd5b6103e8610a95610bc6565b610a9f9190613226565b6103e883610aab610bc6565b610ab59190613257565b610abf9190613226565b1015610b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af790613323565b60405180910390fd5b6103e8610b0b610bc6565b610b159190613226565b6103e882610b21610bc6565b610b2b9190613257565b610b359190613226565b1015610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d906133b5565b60405180910390fd5b6103e882610b82610bc6565b610b8c9190613257565b610b969190613226565b6007819055506103e881610ba8610bc6565b610bb29190613257565b610bbc9190613226565b6008819055505050565b6000600254905090565b6000610bdd848484611e10565b610c9e84610be9611d1d565b610c9985604051806060016040528060288152602001613b6760289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c4f611d1d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126299092919063ffffffff16565b611d25565b600190509392505050565b60006012905090565b6000610d5b610cbf611d1d565b84610d568560016000610cd0611d1d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cbf90919063ffffffff16565b611d25565b6001905092915050565b600c5481565b610d73611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df9906131a8565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000c36bbddafcf34bbc81a22141a9a8c48c39c74eae81565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60085481565b600b60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f29611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faf906131a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6110ad611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461113c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611133906131a8565b60405180910390fd5b6001600b60006101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff021916908315150217905550565b61117c611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611202906131a8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61122f6112a4565b836040518363ffffffff1660e01b815260040161124d9291906133d5565b602060405180830381600087803b15801561126757600080fd5b505af115801561127b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129f9190613413565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112dd9061312a565b80601f01602080910402602001604051908101604052809291908181526020018280546113099061312a565b80156113565780601f1061132b57610100808354040283529160200191611356565b820191906000526020600020905b81548152906001019060200180831161133957829003601f168201915b5050505050905090565b600f6020528060005260406000206000915054906101000a900460ff1681565b611388611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e906131a8565b60405180910390fd5b61141f6112a4565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611464573d6000803e3d6000fd5b5050565b600061152b611475611d1d565b8461152685604051806060016040528060258152602001613b1c602591396001600061149f611d1d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126299092919063ffffffff16565b611d25565b6001905092915050565b6000611549611542611d1d565b8484611e10565b6001905092915050565b60095481565b600b60029054906101000a900460ff1681565b611574611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fa906131a8565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611666611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec906131a8565b60405180910390fd5b7f000000000000000000000000c36bbddafcf34bbc81a22141a9a8c48c39c74eae73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177b9061348c565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117e7611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186d906131a8565b60405180910390fd5b6103e8611881610bc6565b61188b9190613226565b6103e882611897610bc6565b6118a19190613257565b6118ab9190613226565b10156118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e3906134f8565b60405180910390fd5b6103e8816118f8610bc6565b6119029190613257565b61190c9190613226565b60098190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b60049054906101000a900460ff1681565b6119b7611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3d906131a8565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60039054906101000a900460ff1681565b611abc611d1d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b42906131a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb29061358a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60106020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000808284611cce91906135aa565b905083811015611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a9061364c565b60405180910390fd5b8091505092915050565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e039190612ed9565b60405180910390a3505050565b6000811415611e2a57611e258383600061268d565b612624565b611e326112a4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ea05750611e706112a4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611eb95750600b60029054906101000a900460ff16155b1561223f57600b60009054906101000a900460ff16611fb357600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f735750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa9906136b8565b60405180910390fd5b5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120565750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120a5576007548111156120a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209790613724565b60405180910390fd5b612194565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121485750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561219357600854811115612192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218990613790565b60405180910390fd5b5b5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661223e576009546121f183610ed9565b826121fc91906135aa565b111561223d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612234906137fc565b60405180910390fd5b5b5b600061224a30610ed9565b90506000600a54821015905080801561226f5750600b60019054906101000a900460ff165b80156122885750600b60029054906101000a900460ff16155b80156122dd5750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156123335750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123895750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123cd576001600b60026101000a81548160ff0219169083151502179055506123b1612837565b6000600b60026101000a81548160ff0219169083151502179055505b6000600b60029054906101000a900460ff16159050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124835750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561248d57600090505b8015612615576000601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561250057506000600b60049054906101000a900460ff1660ff16115b156125445761253d606461252f600b60049054906101000a900460ff1660ff168861291f90919063ffffffff16565b61299a90919063ffffffff16565b90506125f0565b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125af57506000600b60039054906101000a900460ff1660ff16115b156125ef576125ec60646125de600b60039054906101000a900460ff1660ff168861291f90919063ffffffff16565b61299a90919063ffffffff16565b90505b5b60008111156126055761260487308361268d565b5b8085612611919061381c565b9450505b61262086868661268d565b5050505b505050565b6000838311158290612671576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126689190612d2c565b60405180910390fd5b5060008385612680919061381c565b9050809150509392505050565b6126f881604051806060016040528060268152602001613b41602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126299092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061278b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cbf90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161282a9190612ed9565b60405180910390a3505050565b600061284230610ed9565b905060008082141561285557505061291d565b6064600a546128649190613257565b82111561287d576064600a5461287a9190613257565b91505b600082905061288b816129e4565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516128d190613881565b60006040518083038185875af1925050503d806000811461290e576040519150601f19603f3d011682016040523d82523d6000602084013e612913565b606091505b5050809250505050505b565b6000808314156129325760009050612994565b600082846129409190613257565b905082848261294f9190613226565b1461298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298690613908565b60405180910390fd5b809150505b92915050565b60006129dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c30565b905092915050565b6000600267ffffffffffffffff811115612a0157612a00613928565b5b604051908082528060200260200182016040528015612a2f5781602001602082028036833780820191505090505b5090503081600081518110612a4757612a46613957565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612ae757600080fd5b505afa158015612afb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1f919061399b565b81600181518110612b3357612b32613957565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b98307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611d25565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612bfa959493929190613ac1565b600060405180830381600087803b158015612c1457600080fd5b505af1158015612c28573d6000803e3d6000fd5b505050505050565b60008083118290612c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6e9190612d2c565b60405180910390fd5b5060008385612c869190613226565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ccd578082015181840152602081019050612cb2565b83811115612cdc576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cfe82612c93565b612d088185612c9e565b9350612d18818560208601612caf565b612d2181612ce2565b840191505092915050565b60006020820190508181036000830152612d468184612cf3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d7e82612d53565b9050919050565b612d8e81612d73565b8114612d9957600080fd5b50565b600081359050612dab81612d85565b92915050565b6000819050919050565b612dc481612db1565b8114612dcf57600080fd5b50565b600081359050612de181612dbb565b92915050565b60008060408385031215612dfe57612dfd612d4e565b5b6000612e0c85828601612d9c565b9250506020612e1d85828601612dd2565b9150509250929050565b60008115159050919050565b612e3c81612e27565b82525050565b6000602082019050612e576000830184612e33565b92915050565b600060208284031215612e7357612e72612d4e565b5b6000612e8184828501612d9c565b91505092915050565b60008060408385031215612ea157612ea0612d4e565b5b6000612eaf85828601612dd2565b9250506020612ec085828601612dd2565b9150509250929050565b612ed381612db1565b82525050565b6000602082019050612eee6000830184612eca565b92915050565b600080600060608486031215612f0d57612f0c612d4e565b5b6000612f1b86828701612d9c565b9350506020612f2c86828701612d9c565b9250506040612f3d86828701612dd2565b9150509250925092565b600060ff82169050919050565b612f5d81612f47565b82525050565b6000602082019050612f786000830184612f54565b92915050565b612f8781612d73565b82525050565b6000602082019050612fa26000830184612f7e565b92915050565b600060208284031215612fbe57612fbd612d4e565b5b6000612fcc84828501612dd2565b91505092915050565b612fde81612e27565b8114612fe957600080fd5b50565b600081359050612ffb81612fd5565b92915050565b6000806040838503121561301857613017612d4e565b5b600061302685828601612d9c565b925050602061303785828601612fec565b9150509250929050565b6000806040838503121561305857613057612d4e565b5b600061306685828601612d9c565b925050602061307785828601612d9c565b9150509250929050565b6000819050919050565b60006130a66130a161309c84612d53565b613081565b612d53565b9050919050565b60006130b88261308b565b9050919050565b60006130ca826130ad565b9050919050565b6130da816130bf565b82525050565b60006020820190506130f560008301846130d1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061314257607f821691505b60208210811415613156576131556130fb565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613192602083612c9e565b915061319d8261315c565b602082019050919050565b600060208201905081810360008301526131c181613185565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061323182612db1565b915061323c83612db1565b92508261324c5761324b6131c8565b5b828204905092915050565b600061326282612db1565b915061326d83612db1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132a6576132a56131f7565b5b828202905092915050565b7f6d6178427579416d6f756e74206d75737420626520677265617465722074686160008201527f6e20302e31250000000000000000000000000000000000000000000000000000602082015250565b600061330d602683612c9e565b9150613318826132b1565b604082019050919050565b6000602082019050818103600083015261333c81613300565b9050919050565b7f6d617853656c6c416d6f756e74206d757374206265206772656174657220746860008201527f616e20302e312500000000000000000000000000000000000000000000000000602082015250565b600061339f602783612c9e565b91506133aa82613343565b604082019050919050565b600060208201905081810360008301526133ce81613392565b9050919050565b60006040820190506133ea6000830185612f7e565b6133f76020830184612eca565b9392505050565b60008151905061340d81612fd5565b92915050565b60006020828403121561342957613428612d4e565b5b6000613437848285016133fe565b91505092915050565b7f4d757374206b65657020756e6973776170563250616972000000000000000000600082015250565b6000613476601783612c9e565b915061348182613440565b602082019050919050565b600060208201905081810360008301526134a581613469565b9050919050565b7f4d7573742062652061746c6561737420302e3125000000000000000000000000600082015250565b60006134e2601483612c9e565b91506134ed826134ac565b602082019050919050565b60006020820190508181036000830152613511816134d5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613574602683612c9e565b915061357f82613518565b604082019050919050565b600060208201905081810360008301526135a381613567565b9050919050565b60006135b582612db1565b91506135c083612db1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135f5576135f46131f7565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613636601b83612c9e565b915061364182613600565b602082019050919050565b6000602082019050818103600083015261366581613629565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006136a2601683612c9e565b91506136ad8261366c565b602082019050919050565b600060208201905081810360008301526136d181613695565b9050919050565b7f627579207472616e73666572206f766572206d617820616d6f756e7400000000600082015250565b600061370e601c83612c9e565b9150613719826136d8565b602082019050919050565b6000602082019050818103600083015261373d81613701565b9050919050565b7f53656c6c207472616e73666572206f766572206d617820616d6f756e74000000600082015250565b600061377a601d83612c9e565b915061378582613744565b602082019050919050565b600060208201905081810360008301526137a98161376d565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006137e6601383612c9e565b91506137f1826137b0565b602082019050919050565b60006020820190508181036000830152613815816137d9565b9050919050565b600061382782612db1565b915061383283612db1565b925082821015613845576138446131f7565b5b828203905092915050565b600081905092915050565b50565b600061386b600083613850565b91506138768261385b565b600082019050919050565b600061388c8261385e565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006138f2602183612c9e565b91506138fd82613896565b604082019050919050565b60006020820190508181036000830152613921816138e5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061399581612d85565b92915050565b6000602082840312156139b1576139b0612d4e565b5b60006139bf84828501613986565b91505092915050565b6000819050919050565b60006139ed6139e86139e3846139c8565b613081565b612db1565b9050919050565b6139fd816139d2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a3881612d73565b82525050565b6000613a4a8383613a2f565b60208301905092915050565b6000602082019050919050565b6000613a6e82613a03565b613a788185613a0e565b9350613a8383613a1f565b8060005b83811015613ab4578151613a9b8882613a3e565b9750613aa683613a56565b925050600181019050613a87565b5085935050505092915050565b600060a082019050613ad66000830188612eca565b613ae360208301876139f4565b8181036040830152613af58186613a63565b9050613b046060830185612f7e565b613b116080830184612eca565b969550505050505056fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e156cee44ed44afe875492a013d7b22f407afc6bdd4c1eaffebb55c15ac0a58764736f6c63430008090033

Deployed Bytecode Sourcemap

10151:8452:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2608:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3541:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10889:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13176:556;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2936:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3721:354;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2833:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4087:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10710:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14842:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10272:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14955:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10404:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10584:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3055:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7581:148;;;;;;;;;;;;;:::i;:::-;;10319:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10370:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13060:108;;;;;;;;;;;;;:::i;:::-;;14699:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7279:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2718:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10959:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14579:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4316:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3193:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10442:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10622:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14100:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14394:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13740:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3379:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10680:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14240:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10653:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7743:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11175:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10223;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2608:99;2661:13;2694:5;2687:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2608:99;:::o;3541:168::-;3623:4;3640:39;3649:12;:10;:12::i;:::-;3663:7;3672:6;3640:8;:39::i;:::-;3697:4;3690:11;;3541:168;;;;:::o;10889:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;13176:556::-;7500:12;:10;:12::i;:::-;7490:22;;:6;;;;;;;;;;;:22;;;7482:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13428:4:::1;13412:13;:11;:13::i;:::-;:20;;;;:::i;:::-;13402:4;13389:9;13373:13;:11;:13::i;:::-;:25;;;;:::i;:::-;13372:34;;;;:::i;:::-;13371:62;;13363:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;13553:4;13537:13;:11;:13::i;:::-;:20;;;;:::i;:::-;13527:4;13513:10;13497:13;:11;:13::i;:::-;:26;;;;:::i;:::-;13496:35;;;;:::i;:::-;13495:63;;13487:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;13658:4;13645:9;13629:13;:11;:13::i;:::-;:25;;;;:::i;:::-;13628:34;;;;:::i;:::-;13613:12;:49;;;;13720:4;13706:10;13690:13;:11;:13::i;:::-;:26;;;;:::i;:::-;13689:35;;;;:::i;:::-;13673:13;:51;;;;13176:556:::0;;:::o;2936:107::-;2996:7;3023:12;;3016:19;;2936:107;:::o;3721:354::-;3860:4;3877:36;3887:6;3895:9;3906:6;3877:9;:36::i;:::-;3924:121;3933:6;3941:12;:10;:12::i;:::-;3955:89;3993:6;3955:89;;;;;;;;;;;;;;;;;:11;:19;3967:6;3955:19;;;;;;;;;;;;;;;:33;3975:12;:10;:12::i;:::-;3955:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3924:8;:121::i;:::-;4063:4;4056:11;;3721:354;;;;;:::o;2833:92::-;2890:5;2915:2;2908:9;;2833:92;:::o;4087:217::-;4174:4;4191:83;4200:12;:10;:12::i;:::-;4214:7;4223:50;4262:10;4223:11;:25;4235:12;:10;:12::i;:::-;4223:25;;;;;;;;;;;;;;;:34;4249:7;4223:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;4191:8;:83::i;:::-;4292:4;4285:11;;4087:217;;;;:::o;10710:55::-;;;;:::o;14842:105::-;7500:12;:10;:12::i;:::-;7490:22;;:6;;;;;;;;;;;:22;;;7482:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14928:11:::1;14915:10;;:24;;;;;;;;;;;;;;;;;;14842:105:::0;:::o;10272:38::-;;;:::o;14955:125::-;15020:4;15044:19;:28;15064:7;15044:28;;;;;;;;;;;;;;;;;;;;;;;;;15037:35;;14955:125;;;:::o;10404:28::-;;;;:::o;10584:31::-;;;;;;;;;;;;;:::o;3055:126::-;3128:7;3155:9;:18;3165:7;3155:18;;;;;;;;;;;;;;;;3148:25;;3055:126;;;:::o;7581:148::-;7500:12;:10;:12::i;:::-;7490:22;;:6;;;;;;;;;;;:22;;;7482:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7688:1:::1;7651:40;;7672:6;;;;;;;;;;;7651:40;;;;;;;;;;;;7719:1;7702:6;;:19;;;;;;;;;;;;;;;;;;7581:148::o:0;10319:26::-;;;;;;;;;;;;;:::o;10370:27::-;;;;:::o;13060:108::-;7500:12;:10;:12::i;:::-;7490:22;;:6;;;;;;;;;;;:22;;;7482:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13127:4:::1;13115:9;;:16;;;;;;;;;;;;;;;;;;13156:4;13142:11;;:18;;;;;;;;;;;;;;;;;;13060:108::o:0;14699:135::-;7500:12;:10;:12::i;:::-;7490:22;;:6;;;;;;;;;;;:22;;;7482:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14791:8:::1;14784:25;;;14810:7;:5;:7::i;:::-;14819:6;14784:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14699:135:::0;;:::o;7279:78::-;7316:7;7343:6;;;;;;;;;;;7336:13;;7279:78;:::o;2718:103::-;2773:13;2806:7;2799:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2718:103;:::o;10959:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;14579:112::-;7500:12;:10;:12::i;:::-;7490:22;;:6;;;;;;;;;;;:22;;;7482:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14655:7:::1;:5;:7::i;:::-;14647:25;;:36;14673:9;14647:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14579:112:::0;:::o;4316:268::-;4408:4;4425:129;4434:12;:10;:12::i;:::-;4448:7;4457:96;4496:15;4457:96;;;;;;;;;;;;;;;;;:11;:25;4469:12;:10;:12::i;:::-;4457:25;;;;;;;;;;;;;;;:34;4483:7;4457:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;4425:8;:129::i;:::-;4572:4;4565:11;;4316:268;;;;:::o;3193:174::-;3278:4;3295:42;3305:12;:10;:12::i;:::-;3319:9;3330:6;3295:9;:42::i;:::-;3355:4;3348:11;;3193:174;;;;:::o;10442:30::-;;;;:::o;10622:22::-;;;;;;;;;;;;;:::o;14100:132::-;7500:12;:10;:12::i;:::-;7490:22;;:6;;;;;;;;;;;:22;;;7482:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14216:8:::1;14185:19;:28;14205:7;14185:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14100:132:::0;;:::o;14394:177::-;7500:12;:10;:12::i;:::-;7490:22;;:6;;;;;;;;;;;:22;;;7482:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14487:13:::1;14479:21;;:4;:21;;;;14471:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;14558:5;14539:10;:16;14550:4;14539:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;14394:177:::0;;:::o;13740:348::-;7500:12;:10;:12::i;:::-;7490:22;;:6;;;;;;;;;;;:22;;;7482:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13983:4:::1;13967:13;:11;:13::i;:::-;:20;;;;:::i;:::-;13957:4;13940:13;13924;:11;:13::i;:::-;:29;;;;:::i;:::-;13923:38;;;;:::i;:::-;13922:66;;13914:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;14076:4;14059:13;14043;:11;:13::i;:::-;:29;;;;:::i;:::-;14042:38;;;;:::i;:::-;14024:15;:56;;;;13740:348:::0;:::o;3379:150::-;3467:7;3494:11;:18;3506:5;3494:18;;;;;;;;;;;;;;;:27;3513:7;3494:27;;;;;;;;;;;;;;;;3487:34;;3379:150;;;;:::o;10680:21::-;;;;;;;;;;;;;:::o;14240:146::-;7500:12;:10;:12::i;:::-;7490:22;;:6;;;;;;;;;;;:22;;;7482:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14370:8:::1;14332:26;:35;14359:7;14332:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;14240:146:::0;;:::o;10653:20::-;;;;;;;;;;;;;:::o;7743:244::-;7500:12;:10;:12::i;:::-;7490:22;;:6;;;;;;;;;;;:22;;;7482:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7852:1:::1;7832:22;;:8;:22;;;;7824:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7942:8;7913:38;;7934:6;;;;;;;;;;;7913:38;;;;;;;;;;;;7971:8;7962:6;;:17;;;;;;;;;;;;;;;;;;7743:244:::0;:::o;11175:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10223:::-;;;:::o;5552:180::-;5609:7;5629:9;5645:1;5641;:5;;;;:::i;:::-;5629:17;;5670:1;5665;:6;;5657:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5723:1;5716:8;;;5552:180;;;;:::o;2047:97::-;2099:7;2126:10;2119:17;;2047:97;:::o;5293:220::-;5451:6;5421:11;:18;5433:5;5421:18;;;;;;;;;;;;;;;:27;5440:7;5421:27;;;;;;;;;;;;;;;:36;;;;5489:7;5473:32;;5482:5;5473:32;;;5498:6;5473:32;;;;;;:::i;:::-;;;;;;;;5293:220;;;:::o;15088:2529::-;15255:1;15245:6;:11;15241:102;;;15273:37;15289:6;15297:9;15308:1;15273:15;:37::i;:::-;15325:7;;15241:102;15383:7;:5;:7::i;:::-;15373:17;;:6;:17;;;;:54;;;;;15420:7;:5;:7::i;:::-;15407:20;;:9;:20;;;;15373:54;:82;;;;;15445:10;;;;;;;;;;;15444:11;15373:82;15355:849;;;15489:9;;;;;;;;;;;15484:147;;15527:19;:27;15547:6;15527:27;;;;;;;;;;;;;;;;;;;;;;;;;:61;;;;15558:19;:30;15578:9;15558:30;;;;;;;;;;;;;;;;;;;;;;;;;15527:61;15519:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;15484:147;15649:10;:18;15660:6;15649:18;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;;15672:31;:42;15704:9;15672:42;;;;;;;;;;;;;;;;;;;;;;;;;15671:43;15649:65;15645:360;;;15753:12;;15743:6;:22;;15735:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15645:360;;;15838:10;:21;15849:9;15838:21;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;;15864:31;:39;15896:6;15864:39;;;;;;;;;;;;;;;;;;;;;;;;;15863:40;15838:65;15834:171;;;15942:13;;15932:6;:23;;15924:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15834:171;15645:360;16026:26;:37;16053:9;16026:37;;;;;;;;;;;;;;;;;;;;;;;;;16021:159;;16125:15;;16101:20;16111:9;16101;:20::i;:::-;16092:6;:29;;;;:::i;:::-;:48;;16084:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;16021:159;15355:849;16217:28;16248:24;16266:4;16248:9;:24::i;:::-;16217:55;;16286:12;16325:19;;16301:20;:43;;16286:58;;16375:7;:35;;;;;16399:11;;;;;;;;;;;16375:35;:63;;;;;16428:10;;;;;;;;;;;16427:11;16375:63;:101;;;;;16455:10;:21;16466:9;16455:21;;;;;;;;;;;;;;;;;;;;;;;;;16375:101;:146;;;;;16494:19;:27;16514:6;16494:27;;;;;;;;;;;;;;;;;;;;;;;;;16493:28;16375:146;:194;;;;;16539:19;:30;16559:9;16539:30;;;;;;;;;;;;;;;;;;;;;;;;;16538:31;16375:194;16357:326;;;16609:4;16596:10;;:17;;;;;;;;;;;;;;;;;;16628:10;:8;:10::i;:::-;16666:5;16653:10;;:18;;;;;;;;;;;;;;;;;;16357:326;16696:12;16712:10;;;;;;;;;;;16711:11;16696:26;;16824:19;:27;16844:6;16824:27;;;;;;;;;;;;;;;;;;;;;;;;;:61;;;;16855:19;:30;16875:9;16855:30;;;;;;;;;;;;;;;;;;;;;;;;;16824:61;16820:109;;;16912:5;16902:15;;16820:109;17012:7;17008:547;;;17036:12;17095:10;:21;17106:9;17095:21;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;;17131:1;17120:8;;;;;;;;;;;:12;;;17095:37;17091:265;;;17160:29;17185:3;17160:20;17171:8;;;;;;;;;;;17160:20;;:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;17153:36;;17091:265;;;17251:10;:18;17262:6;17251:18;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;;17283:1;17273:7;;;;;;;;;;;:11;;;17251:33;17247:109;;;17312:28;17336:3;17312:19;17323:7;;;;;;;;;;;17312:19;;:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17305:35;;17247:109;17091:265;17429:1;17422:4;:8;17418:93;;;17451:44;17467:6;17483:4;17490;17451:15;:44::i;:::-;17418:93;17537:4;17527:14;;;;;:::i;:::-;;;17021:534;17008:547;17567:42;17583:6;17591:9;17602:6;17567:15;:42::i;:::-;15220:2397;;;15088:2529;;;;:::o;5889:191::-;5974:7;6007:1;6002;:6;;6010:12;5994:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6034:9;6050:1;6046;:5;;;;:::i;:::-;6034:17;;6071:1;6064:8;;;5889:191;;;;;:::o;4596:358::-;4758:71;4780:6;4758:71;;;;;;;;;;;;;;;;;:9;:17;4768:6;4758:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;4738:9;:17;4748:6;4738:17;;;;;;;;;;;;;;;:91;;;;4863:32;4888:6;4863:9;:20;4873:9;4863:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;4840:9;:20;4850:9;4840:20;;;;;;;;;;;;;;;:55;;;;4928:9;4911:35;;4920:6;4911:35;;;4939:6;4911:35;;;;;;:::i;:::-;;;;;;;;4596:358;;;:::o;18073:525::-;18114:28;18145:24;18163:4;18145:9;:24::i;:::-;18114:55;;18180:12;18233:1;18209:20;:25;18205:42;;;18238:7;;;;18205:42;18308:3;18286:19;;:25;;;;:::i;:::-;18263:20;:48;18259:129;;;18373:3;18351:19;;:25;;;;:::i;:::-;18328:48;;18259:129;18400:26;18429:20;18400:49;;18462:36;18479:18;18462:16;:36::i;:::-;18533:10;;;;;;;;;;;18525:24;;18559:21;18525:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18512:76;;;;;18101:497;;;18073:525;:::o;6088:256::-;6145:7;6180:1;6175;:6;6171:47;;;6205:1;6198:8;;;;6171:47;6231:9;6247:1;6243;:5;;;;:::i;:::-;6231:17;;6276:1;6271;6267;:5;;;;:::i;:::-;:10;6259:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6335:1;6328:8;;;6088:256;;;;;:::o;6353:131::-;6410:7;6437:39;6441:1;6444;6437:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6430:46;;6353:131;;;;:::o;17625:440::-;17689:21;17727:1;17713:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17689:40;;17758:4;17740;17745:1;17740:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17784:6;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17774:4;17779:1;17774:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17810:49;17827:4;17842:6;17851:7;17810:8;:49::i;:::-;17872:6;:57;;;17944:7;17966:1;17982:4;18009;18029:15;17872:183;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17676:389;17625:440;:::o;6494:277::-;6579:7;6611:1;6607;:5;6614:12;6599:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6638:9;6654:1;6650;:5;;;;:::i;:::-;6638:17;;6762:1;6755:8;;;6494:277;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:474::-;3897:6;3905;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;4207:2;4233:53;4278:7;4269:6;4258:9;4254:22;4233:53;:::i;:::-;4223:63;;4178:118;3829:474;;;;;:::o;4309:118::-;4396:24;4414:5;4396:24;:::i;:::-;4391:3;4384:37;4309:118;;:::o;4433:222::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:71;4645:1;4634:9;4630:17;4621:6;4577:71;:::i;:::-;4433:222;;;;:::o;4661:619::-;4738:6;4746;4754;4803:2;4791:9;4782:7;4778:23;4774:32;4771:119;;;4809:79;;:::i;:::-;4771:119;4929:1;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4900:117;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;5184:2;5210:53;5255:7;5246:6;5235:9;5231:22;5210:53;:::i;:::-;5200:63;;5155:118;4661:619;;;;;:::o;5286:86::-;5321:7;5361:4;5354:5;5350:16;5339:27;;5286:86;;;:::o;5378:112::-;5461:22;5477:5;5461:22;:::i;:::-;5456:3;5449:35;5378:112;;:::o;5496:214::-;5585:4;5623:2;5612:9;5608:18;5600:26;;5636:67;5700:1;5689:9;5685:17;5676:6;5636:67;:::i;:::-;5496:214;;;;:::o;5716:118::-;5803:24;5821:5;5803:24;:::i;:::-;5798:3;5791:37;5716:118;;:::o;5840:222::-;5933:4;5971:2;5960:9;5956:18;5948:26;;5984:71;6052:1;6041:9;6037:17;6028:6;5984:71;:::i;:::-;5840:222;;;;:::o;6068:329::-;6127:6;6176:2;6164:9;6155:7;6151:23;6147:32;6144:119;;;6182:79;;:::i;:::-;6144:119;6302:1;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6273:117;6068:329;;;;:::o;6403:116::-;6473:21;6488:5;6473:21;:::i;:::-;6466:5;6463:32;6453:60;;6509:1;6506;6499:12;6453:60;6403:116;:::o;6525:133::-;6568:5;6606:6;6593:20;6584:29;;6622:30;6646:5;6622:30;:::i;:::-;6525:133;;;;:::o;6664:468::-;6729:6;6737;6786:2;6774:9;6765:7;6761:23;6757:32;6754:119;;;6792:79;;:::i;:::-;6754:119;6912:1;6937:53;6982:7;6973:6;6962:9;6958:22;6937:53;:::i;:::-;6927:63;;6883:117;7039:2;7065:50;7107:7;7098:6;7087:9;7083:22;7065:50;:::i;:::-;7055:60;;7010:115;6664:468;;;;;:::o;7138:474::-;7206:6;7214;7263:2;7251:9;7242:7;7238:23;7234:32;7231:119;;;7269:79;;:::i;:::-;7231:119;7389:1;7414:53;7459:7;7450:6;7439:9;7435:22;7414:53;:::i;:::-;7404:63;;7360:117;7516:2;7542:53;7587:7;7578:6;7567:9;7563:22;7542:53;:::i;:::-;7532:63;;7487:118;7138:474;;;;;:::o;7618:60::-;7646:3;7667:5;7660:12;;7618:60;;;:::o;7684:142::-;7734:9;7767:53;7785:34;7794:24;7812:5;7794:24;:::i;:::-;7785:34;:::i;:::-;7767:53;:::i;:::-;7754:66;;7684:142;;;:::o;7832:126::-;7882:9;7915:37;7946:5;7915:37;:::i;:::-;7902:50;;7832:126;;;:::o;7964:152::-;8040:9;8073:37;8104:5;8073:37;:::i;:::-;8060:50;;7964:152;;;:::o;8122:183::-;8235:63;8292:5;8235:63;:::i;:::-;8230:3;8223:76;8122:183;;:::o;8311:274::-;8430:4;8468:2;8457:9;8453:18;8445:26;;8481:97;8575:1;8564:9;8560:17;8551:6;8481:97;:::i;:::-;8311:274;;;;:::o;8591:180::-;8639:77;8636:1;8629:88;8736:4;8733:1;8726:15;8760:4;8757:1;8750:15;8777:320;8821:6;8858:1;8852:4;8848:12;8838:22;;8905:1;8899:4;8895:12;8926:18;8916:81;;8982:4;8974:6;8970:17;8960:27;;8916:81;9044:2;9036:6;9033:14;9013:18;9010:38;9007:84;;;9063:18;;:::i;:::-;9007:84;8828:269;8777:320;;;:::o;9103:182::-;9243:34;9239:1;9231:6;9227:14;9220:58;9103:182;:::o;9291:366::-;9433:3;9454:67;9518:2;9513:3;9454:67;:::i;:::-;9447:74;;9530:93;9619:3;9530:93;:::i;:::-;9648:2;9643:3;9639:12;9632:19;;9291:366;;;:::o;9663:419::-;9829:4;9867:2;9856:9;9852:18;9844:26;;9916:9;9910:4;9906:20;9902:1;9891:9;9887:17;9880:47;9944:131;10070:4;9944:131;:::i;:::-;9936:139;;9663:419;;;:::o;10088:180::-;10136:77;10133:1;10126:88;10233:4;10230:1;10223:15;10257:4;10254:1;10247:15;10274:180;10322:77;10319:1;10312:88;10419:4;10416:1;10409:15;10443:4;10440:1;10433:15;10460:185;10500:1;10517:20;10535:1;10517:20;:::i;:::-;10512:25;;10551:20;10569:1;10551:20;:::i;:::-;10546:25;;10590:1;10580:35;;10595:18;;:::i;:::-;10580:35;10637:1;10634;10630:9;10625:14;;10460:185;;;;:::o;10651:348::-;10691:7;10714:20;10732:1;10714:20;:::i;:::-;10709:25;;10748:20;10766:1;10748:20;:::i;:::-;10743:25;;10936:1;10868:66;10864:74;10861:1;10858:81;10853:1;10846:9;10839:17;10835:105;10832:131;;;10943:18;;:::i;:::-;10832:131;10991:1;10988;10984:9;10973:20;;10651:348;;;;:::o;11005:225::-;11145:34;11141:1;11133:6;11129:14;11122:58;11214:8;11209:2;11201:6;11197:15;11190:33;11005:225;:::o;11236:366::-;11378:3;11399:67;11463:2;11458:3;11399:67;:::i;:::-;11392:74;;11475:93;11564:3;11475:93;:::i;:::-;11593:2;11588:3;11584:12;11577:19;;11236:366;;;:::o;11608:419::-;11774:4;11812:2;11801:9;11797:18;11789:26;;11861:9;11855:4;11851:20;11847:1;11836:9;11832:17;11825:47;11889:131;12015:4;11889:131;:::i;:::-;11881:139;;11608:419;;;:::o;12033:226::-;12173:34;12169:1;12161:6;12157:14;12150:58;12242:9;12237:2;12229:6;12225:15;12218:34;12033:226;:::o;12265:366::-;12407:3;12428:67;12492:2;12487:3;12428:67;:::i;:::-;12421:74;;12504:93;12593:3;12504:93;:::i;:::-;12622:2;12617:3;12613:12;12606:19;;12265:366;;;:::o;12637:419::-;12803:4;12841:2;12830:9;12826:18;12818:26;;12890:9;12884:4;12880:20;12876:1;12865:9;12861:17;12854:47;12918:131;13044:4;12918:131;:::i;:::-;12910:139;;12637:419;;;:::o;13062:332::-;13183:4;13221:2;13210:9;13206:18;13198:26;;13234:71;13302:1;13291:9;13287:17;13278:6;13234:71;:::i;:::-;13315:72;13383:2;13372:9;13368:18;13359:6;13315:72;:::i;:::-;13062:332;;;;;:::o;13400:137::-;13454:5;13485:6;13479:13;13470:22;;13501:30;13525:5;13501:30;:::i;:::-;13400:137;;;;:::o;13543:345::-;13610:6;13659:2;13647:9;13638:7;13634:23;13630:32;13627:119;;;13665:79;;:::i;:::-;13627:119;13785:1;13810:61;13863:7;13854:6;13843:9;13839:22;13810:61;:::i;:::-;13800:71;;13756:125;13543:345;;;;:::o;13894:173::-;14034:25;14030:1;14022:6;14018:14;14011:49;13894:173;:::o;14073:366::-;14215:3;14236:67;14300:2;14295:3;14236:67;:::i;:::-;14229:74;;14312:93;14401:3;14312:93;:::i;:::-;14430:2;14425:3;14421:12;14414:19;;14073:366;;;:::o;14445:419::-;14611:4;14649:2;14638:9;14634:18;14626:26;;14698:9;14692:4;14688:20;14684:1;14673:9;14669:17;14662:47;14726:131;14852:4;14726:131;:::i;:::-;14718:139;;14445:419;;;:::o;14870:170::-;15010:22;15006:1;14998:6;14994:14;14987:46;14870:170;:::o;15046:366::-;15188:3;15209:67;15273:2;15268:3;15209:67;:::i;:::-;15202:74;;15285:93;15374:3;15285:93;:::i;:::-;15403:2;15398:3;15394:12;15387:19;;15046:366;;;:::o;15418:419::-;15584:4;15622:2;15611:9;15607:18;15599:26;;15671:9;15665:4;15661:20;15657:1;15646:9;15642:17;15635:47;15699:131;15825:4;15699:131;:::i;:::-;15691:139;;15418:419;;;:::o;15843:225::-;15983:34;15979:1;15971:6;15967:14;15960:58;16052:8;16047:2;16039:6;16035:15;16028:33;15843:225;:::o;16074:366::-;16216:3;16237:67;16301:2;16296:3;16237:67;:::i;:::-;16230:74;;16313:93;16402:3;16313:93;:::i;:::-;16431:2;16426:3;16422:12;16415:19;;16074:366;;;:::o;16446:419::-;16612:4;16650:2;16639:9;16635:18;16627:26;;16699:9;16693:4;16689:20;16685:1;16674:9;16670:17;16663:47;16727:131;16853:4;16727:131;:::i;:::-;16719:139;;16446:419;;;:::o;16871:305::-;16911:3;16930:20;16948:1;16930:20;:::i;:::-;16925:25;;16964:20;16982:1;16964:20;:::i;:::-;16959:25;;17118:1;17050:66;17046:74;17043:1;17040:81;17037:107;;;17124:18;;:::i;:::-;17037:107;17168:1;17165;17161:9;17154:16;;16871:305;;;;:::o;17182:177::-;17322:29;17318:1;17310:6;17306:14;17299:53;17182:177;:::o;17365:366::-;17507:3;17528:67;17592:2;17587:3;17528:67;:::i;:::-;17521:74;;17604:93;17693:3;17604:93;:::i;:::-;17722:2;17717:3;17713:12;17706:19;;17365:366;;;:::o;17737:419::-;17903:4;17941:2;17930:9;17926:18;17918:26;;17990:9;17984:4;17980:20;17976:1;17965:9;17961:17;17954:47;18018:131;18144:4;18018:131;:::i;:::-;18010:139;;17737:419;;;:::o;18162:172::-;18302:24;18298:1;18290:6;18286:14;18279:48;18162:172;:::o;18340:366::-;18482:3;18503:67;18567:2;18562:3;18503:67;:::i;:::-;18496:74;;18579:93;18668:3;18579:93;:::i;:::-;18697:2;18692:3;18688:12;18681:19;;18340:366;;;:::o;18712:419::-;18878:4;18916:2;18905:9;18901:18;18893:26;;18965:9;18959:4;18955:20;18951:1;18940:9;18936:17;18929:47;18993:131;19119:4;18993:131;:::i;:::-;18985:139;;18712:419;;;:::o;19137:178::-;19277:30;19273:1;19265:6;19261:14;19254:54;19137:178;:::o;19321:366::-;19463:3;19484:67;19548:2;19543:3;19484:67;:::i;:::-;19477:74;;19560:93;19649:3;19560:93;:::i;:::-;19678:2;19673:3;19669:12;19662:19;;19321:366;;;:::o;19693:419::-;19859:4;19897:2;19886:9;19882:18;19874:26;;19946:9;19940:4;19936:20;19932:1;19921:9;19917:17;19910:47;19974:131;20100:4;19974:131;:::i;:::-;19966:139;;19693:419;;;:::o;20118:179::-;20258:31;20254:1;20246:6;20242:14;20235:55;20118:179;:::o;20303:366::-;20445:3;20466:67;20530:2;20525:3;20466:67;:::i;:::-;20459:74;;20542:93;20631:3;20542:93;:::i;:::-;20660:2;20655:3;20651:12;20644:19;;20303:366;;;:::o;20675:419::-;20841:4;20879:2;20868:9;20864:18;20856:26;;20928:9;20922:4;20918:20;20914:1;20903:9;20899:17;20892:47;20956:131;21082:4;20956:131;:::i;:::-;20948:139;;20675:419;;;:::o;21100:169::-;21240:21;21236:1;21228:6;21224:14;21217:45;21100:169;:::o;21275:366::-;21417:3;21438:67;21502:2;21497:3;21438:67;:::i;:::-;21431:74;;21514:93;21603:3;21514:93;:::i;:::-;21632:2;21627:3;21623:12;21616:19;;21275:366;;;:::o;21647:419::-;21813:4;21851:2;21840:9;21836:18;21828:26;;21900:9;21894:4;21890:20;21886:1;21875:9;21871:17;21864:47;21928:131;22054:4;21928:131;:::i;:::-;21920:139;;21647:419;;;:::o;22072:191::-;22112:4;22132:20;22150:1;22132:20;:::i;:::-;22127:25;;22166:20;22184:1;22166:20;:::i;:::-;22161:25;;22205:1;22202;22199:8;22196:34;;;22210:18;;:::i;:::-;22196:34;22255:1;22252;22248:9;22240:17;;22072:191;;;;:::o;22269:147::-;22370:11;22407:3;22392:18;;22269:147;;;;:::o;22422:114::-;;:::o;22542:398::-;22701:3;22722:83;22803:1;22798:3;22722:83;:::i;:::-;22715:90;;22814:93;22903:3;22814:93;:::i;:::-;22932:1;22927:3;22923:11;22916:18;;22542:398;;;:::o;22946:379::-;23130:3;23152:147;23295:3;23152:147;:::i;:::-;23145:154;;23316:3;23309:10;;22946:379;;;:::o;23331:220::-;23471:34;23467:1;23459:6;23455:14;23448:58;23540:3;23535:2;23527:6;23523:15;23516:28;23331:220;:::o;23557:366::-;23699:3;23720:67;23784:2;23779:3;23720:67;:::i;:::-;23713:74;;23796:93;23885:3;23796:93;:::i;:::-;23914:2;23909:3;23905:12;23898:19;;23557:366;;;:::o;23929:419::-;24095:4;24133:2;24122:9;24118:18;24110:26;;24182:9;24176:4;24172:20;24168:1;24157:9;24153:17;24146:47;24210:131;24336:4;24210:131;:::i;:::-;24202:139;;23929:419;;;:::o;24354:180::-;24402:77;24399:1;24392:88;24499:4;24496:1;24489:15;24523:4;24520:1;24513:15;24540:180;24588:77;24585:1;24578:88;24685:4;24682:1;24675:15;24709:4;24706:1;24699:15;24726:143;24783:5;24814:6;24808:13;24799:22;;24830:33;24857:5;24830:33;:::i;:::-;24726:143;;;;:::o;24875:351::-;24945:6;24994:2;24982:9;24973:7;24969:23;24965:32;24962:119;;;25000:79;;:::i;:::-;24962:119;25120:1;25145:64;25201:7;25192:6;25181:9;25177:22;25145:64;:::i;:::-;25135:74;;25091:128;24875:351;;;;:::o;25232:85::-;25277:7;25306:5;25295:16;;25232:85;;;:::o;25323:158::-;25381:9;25414:61;25432:42;25441:32;25467:5;25441:32;:::i;:::-;25432:42;:::i;:::-;25414:61;:::i;:::-;25401:74;;25323:158;;;:::o;25487:147::-;25582:45;25621:5;25582:45;:::i;:::-;25577:3;25570:58;25487:147;;:::o;25640:114::-;25707:6;25741:5;25735:12;25725:22;;25640:114;;;:::o;25760:184::-;25859:11;25893:6;25888:3;25881:19;25933:4;25928:3;25924:14;25909:29;;25760:184;;;;:::o;25950:132::-;26017:4;26040:3;26032:11;;26070:4;26065:3;26061:14;26053:22;;25950:132;;;:::o;26088:108::-;26165:24;26183:5;26165:24;:::i;:::-;26160:3;26153:37;26088:108;;:::o;26202:179::-;26271:10;26292:46;26334:3;26326:6;26292:46;:::i;:::-;26370:4;26365:3;26361:14;26347:28;;26202:179;;;;:::o;26387:113::-;26457:4;26489;26484:3;26480:14;26472:22;;26387:113;;;:::o;26536:732::-;26655:3;26684:54;26732:5;26684:54;:::i;:::-;26754:86;26833:6;26828:3;26754:86;:::i;:::-;26747:93;;26864:56;26914:5;26864:56;:::i;:::-;26943:7;26974:1;26959:284;26984:6;26981:1;26978:13;26959:284;;;27060:6;27054:13;27087:63;27146:3;27131:13;27087:63;:::i;:::-;27080:70;;27173:60;27226:6;27173:60;:::i;:::-;27163:70;;27019:224;27006:1;27003;26999:9;26994:14;;26959:284;;;26963:14;27259:3;27252:10;;26660:608;;;26536:732;;;;:::o;27274:831::-;27537:4;27575:3;27564:9;27560:19;27552:27;;27589:71;27657:1;27646:9;27642:17;27633:6;27589:71;:::i;:::-;27670:80;27746:2;27735:9;27731:18;27722:6;27670:80;:::i;:::-;27797:9;27791:4;27787:20;27782:2;27771:9;27767:18;27760:48;27825:108;27928:4;27919:6;27825:108;:::i;:::-;27817:116;;27943:72;28011:2;28000:9;27996:18;27987:6;27943:72;:::i;:::-;28025:73;28093:3;28082:9;28078:19;28069:6;28025:73;:::i;:::-;27274:831;;;;;;;;:::o

Swarm Source

ipfs://e156cee44ed44afe875492a013d7b22f407afc6bdd4c1eaffebb55c15ac0a587

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.