ETH Price: $2,508.60 (+1.46%)

Token

Surprised Pikachu (SPIKA)
 

Overview

Max Total Supply

100,000,000 SPIKA

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
76,006.527484474 SPIKA

Value
$0.00
0x45d5f5b3100695e088a909a4ab1bea6e1cd491a9
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
SurprisedPikachu

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-04
*/

/**

⢰⣶⣶⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢻⣿⣿⡏⠉⠓⠦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀
⠀⠀⢹⣿⡇⠀⠀⠀⠈⠙⠲⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⡴⠖⢾⣿⣿⣿⡟
⠀⠀⠀⠹⣷⠀⠀⠀⠀⠀⠀⠀⠙⠦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠶⠚⠋⠁⠀⠀⣸⣿⣿⡟⠀
⠀⠀⠀⠀⠹⣇⠀⠀⠀⠀⠀⠀⠀⠀⠈⠓⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡴⠖⠋⠁⠀⠀⠀⠀⠀⠀⠀⣿⣿⠏⠀⠀
⠀⠀⠀⠀⠀⠙⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⠀⣀⡤⠖⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡿⠃⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠈⢳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⡟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠋⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣦⣠⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⡄⠀⠀⢀⡴⠟⠁⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣦⠾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠏⠀⠀⠀⠀⣠⣴⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡴⣶⣦⡀⠀⠀⠀⠀⠀⠹⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡏⠀⠀⠀⠀⠀⣯⣀⣼⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣄⣬⣿⡇⠀⠀⠀⠀⠀⠀⠘⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⠁⠀⠀⠀⠀⠀⠻⣿⡿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠿⠿⠟⠀⠀⠀⠀⠀⠀⠀⠀⢹⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⠀⢀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣷⣶⠤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢸⢁⡾⠋⠉⠉⠙⢷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠞⠋⠉⠛⢶⡄⠀⠀⠘⡇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣿⠸⣇⠀⠀⠀⠀⣸⠇⠀⠀⠀⠀⠀⢀⣠⠤⠴⠶⠶⣤⡀⠀⠀⠀⠀⠀⠀⣇⠀⠀⠀⠀⢀⡇⠀⠀⠀⢿⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢿⠀⠉⠳⠶⠶⠞⠁⠀⠀⠀⠀⠀⠀⢾⡅⠀⠀⠀⠀⠈⣷⠀⠀⠀⠀⠀⠀⠙⠷⢦⡤⠴⠛⠁⠀⠀⠀⢸⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠈⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣤⡀⠀⠀⣠⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣇⣀⣀⣀⣠⣠⣠⣠⣠⣀⣀⣀⣀⣀⣀⣄⣄⣄⣄⣄⣠⣀⣀⣀⣀⣠⣠⣠⣠⣠⣠⣀⣀⣀⣀⣀⣼⡆⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀


SURPRISED PIKACHU - SPIKA


The meme token market is really absurd these days. 
Many projects are pretending to have big plans like metaverse, blockchain, swap but nobody doesnt know anything about it. 
Most of them is selling something that will never be created. 
They are lying to get buyers. 
They will not do what they say! 

$SPIKA community chooses its own faith. 
Every strong community can make big things together! 
Surprised pikachu dont like jeets and snipers so he will take care of them too.
We dont like lies and we will be accurate with ours plans. 
We want meme world get back on the way where it belongs. 
Just fun, happiness and friendship in our community. 

So lets begin send some memes, show some love, shill this token for fun and be happy. 
Memes are most powerfull when community is great so its on us to make this meme viral. 
Lets get to work! Lets unify universe of pikachu lovers!


Features To Sustain Grow:
* Anti-sniper mechanism
* Auto-decreasing Buy/Sell Tax to avoid jeets
    * tax starting at 9% and decreasing 1% every 30 minutes until it reaches 2% - LOW TAX BBY

Total supply: 100.000.000
Max tx: 3%
Max wallet: 3%

Website: https://surprisedpikachu.com/
Twitter: https://twitter.com/SPIKA_token
Telegram: https://t.me/spikatoken

Get into telegram group to get all the latest info, because, trust me, you don't want to get rekt by our anti-sniper mechanism.

*/

pragma solidity ^0.8.15;
// SPDX-License-Identifier: UNLICENSED
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _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);
    }

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract SurprisedPikachu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100 * 10**6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    struct Taxes {
        uint256 buyFee1;
        uint256 buyFee2;
        uint256 sellFee1;
        uint256 sellFee2;
    }

    Taxes private _taxes = Taxes(0,20,0,20);
    uint256 private initialTotalBuyFee = _taxes.buyFee1 + _taxes.buyFee2;
    uint256 private initialTotalSellFee = _taxes.sellFee1 + _taxes.sellFee2;
    address payable private _feeAddrWallet;
    uint256 private _feeRate = 20;

    uint256 private decreasingTaxFrequency = 30 minutes;
    uint256 private lastDecreasingTaxTime;
    
    string private constant _name = "Surprised Pikachu";
    string private constant _symbol = "SPIKA";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    uint256 launchedAt;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    bool private _isBuy = false;
    uint256 private _maxTxAmount = _tTotal;
    uint256 private _maxWalletSize = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TaxChange(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(0x1Ebb05cdDd997aeDACf3984edD68Ae28398c93C0);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "Amount cannot be zero.");
        _isBuy = true;

        if (from != owner() && to != owner()) {

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // buy
                require(amount <= _maxTxAmount, "Max transaction exceeded.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Max wallet exceeded.");
            }

            if (from != address(uniswapV2Router) && ! _isExcludedFromFee[from] && to == uniswapV2Pair){
                require(!bots[from] && !bots[to]);
                _isBuy = false;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(_feeRate).div(100)) {
                contractTokenBalance = balanceOf(uniswapV2Pair).mul(_feeRate).div(100);
            }

            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                require(block.number >= (launchedAt + 5), "Anti sniper mechanism");
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                if (_taxes.buyFee2 == initialTotalBuyFee || _taxes.sellFee2 == initialTotalSellFee) {
                    _taxes.buyFee2 = 9;
                    _taxes.sellFee2 = 9;
                    lastDecreasingTaxTime = block.timestamp;
                    emit TaxChange(_taxes.buyFee2);
                }
            }

            if (_taxes.buyFee2 != initialTotalBuyFee && _taxes.buyFee2 > 2 && block.timestamp >= lastDecreasingTaxTime + decreasingTaxFrequency) {
                _taxes.buyFee2 = _taxes.buyFee2.sub(1);
                _taxes.sellFee2 = _taxes.sellFee2.sub(1);
                lastDecreasingTaxTime = block.timestamp;
                emit TaxChange(_taxes.buyFee2);
            }
        }

        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp + 60
        );
    }

    function getIsBuy() private view returns (bool){
        return _isBuy;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function getCurrentFees() public view returns (uint256, uint256, uint256, uint256) {
        return (_taxes.buyFee1, _taxes.buyFee2, _taxes.sellFee1, _taxes.sellFee2);
    }

    function adjustFees(uint256 buyFee1, uint256 buyFee2, uint256 sellFee1, uint256 sellFee2) external onlyOwner {
        require(buyFee1 + buyFee2 <= initialTotalBuyFee);
        require(sellFee1 + sellFee2 <= initialTotalSellFee);
        _taxes.buyFee1 = buyFee1;
        _taxes.buyFee2 = buyFee2;
        _taxes.sellFee1 = sellFee1;
        _taxes.sellFee2 = sellFee2;
    }

    function changeMaxTxAmount(uint256 percentage) external onlyOwner{
        require(percentage>0);
        _maxTxAmount = _tTotal.mul(percentage).div(100);
    }

    function changeMaxWalletSize(uint256 percentage) external onlyOwner{
        require(percentage>0);
        _maxWalletSize = _tTotal.mul(percentage).div(100);
    }

    function setFeeRate(uint256 rate) external onlyOwner() {
        require(rate<=49);
        _feeRate = rate;
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }  

    function openTrading() external onlyOwner() {
        require(!tradingOpen, "Trading already open.");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = _tTotal.mul(3).div(100);
        _maxWalletSize = _tTotal.mul(3).div(100);
        tradingOpen = true;
        launchedAt = block.number;
        lastDecreasingTaxTime = block.timestamp;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function addBot(address[] memory _bots) public onlyOwner {
        for (uint i = 0; i < _bots.length; i++) {
            if (_bots[i] != address(this) && _bots[i] != uniswapV2Pair && _bots[i] != address(uniswapV2Router)){
                bots[_bots[i]] = true;
            }
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = getIsBuy() ? _getTValues(tAmount, _taxes.buyFee1, _taxes.buyFee2) : _getTValues(tAmount, _taxes.sellFee1, _taxes.sellFee2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_tax","type":"uint256"}],"name":"TaxChange","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":"_bots","type":"address[]"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee1","type":"uint256"},{"internalType":"uint256","name":"buyFee2","type":"uint256"},{"internalType":"uint256","name":"sellFee1","type":"uint256"},{"internalType":"uint256","name":"sellFee2","type":"uint256"}],"name":"adjustFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00006000196200001c9190620004d4565b6000196200002b91906200053b565b60085560405180608001604052806000815260200160148152602001600081526020016014815250600a600082015181600001556020820151816001015560408201518160020155606082015181600301555050600a60010154600a6000015462000097919062000576565b600e55600a60030154600a60020154620000b2919062000576565b600f5560146011556107086012556000601760006101000a81548160ff0219169083151502179055506000601760016101000a81548160ff0219169083151502179055506000601760026101000a81548160ff0219169083151502179055506000601760036101000a81548160ff02191690831515021790555067016345785d8a000060185567016345785d8a00006019553480156200015157600080fd5b506000620001646200046a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350731ebb05cddd997aedacf3984edd68ae28398c93c0601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260006200026e6200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002c26200047260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003f56200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200045c9190620005e4565b60405180910390a362000601565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620004e1826200049b565b9150620004ee836200049b565b925082620005015762000500620004a5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000548826200049b565b915062000555836200049b565b9250828210156200056b576200056a6200050c565b5b828203905092915050565b600062000583826200049b565b915062000590836200049b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620005c857620005c76200050c565b5b828201905092915050565b620005de816200049b565b82525050565b6000602082019050620005fb6000830184620005d3565b92915050565b613c7880620006116000396000f3fe6080604052600436106101445760003560e01c80636fc3eaec116100b657806395d89b411161006f57806395d89b411461041c578063a9059cbb14610447578063b87f137a14610484578063c3c8cd80146104ad578063c9567bf9146104c4578063dd62ed3e146104db5761014b565b80636fc3eaec1461034157806370a0823114610358578063715018a61461039557806371908a03146103ac578063751039fc146103da5780638da5cb5b146103f15761014b565b806323b872dd1161010857806323b872dd14610235578063273123b714610272578063313ce5671461029b57806345596e2e146102c65780635932ead1146102ef578063677daa57146103185761014b565b806306fdde0314610150578063095ea7b31461017b57806317e1df5b146101b857806318160ddd146101e157806321bbcbb11461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610518565b6040516101729190612caa565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612d74565b610555565b6040516101af9190612dcf565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612dea565b610573565b005b3480156101ed57600080fd5b506101f661066a565b6040516102039190612e60565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e9190612fc3565b61067a565b005b34801561024157600080fd5b5061025c6004803603810190610257919061300c565b6108dc565b6040516102699190612dcf565b60405180910390f35b34801561027e57600080fd5b506102996004803603810190610294919061305f565b6109b5565b005b3480156102a757600080fd5b506102b0610aa5565b6040516102bd91906130a8565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e891906130c3565b610aae565b005b3480156102fb57600080fd5b506103166004803603810190610311919061311c565b610b5b565b005b34801561032457600080fd5b5061033f600480360381019061033a91906130c3565b610c0d565b005b34801561034d57600080fd5b50610356610ce6565b005b34801561036457600080fd5b5061037f600480360381019061037a919061305f565b610d8c565b60405161038c9190612e60565b60405180910390f35b3480156103a157600080fd5b506103aa610ddd565b005b3480156103b857600080fd5b506103c1610f30565b6040516103d19493929190613149565b60405180910390f35b3480156103e657600080fd5b506103ef610f5c565b005b3480156103fd57600080fd5b50610406611011565b604051610413919061319d565b60405180910390f35b34801561042857600080fd5b5061043161103a565b60405161043e9190612caa565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190612d74565b611077565b60405161047b9190612dcf565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a691906130c3565b611095565b005b3480156104b957600080fd5b506104c261116e565b005b3480156104d057600080fd5b506104d961121c565b005b3480156104e757600080fd5b5061050260048036038101906104fd91906131b8565b611795565b60405161050f9190612e60565b60405180910390f35b60606040518060400160405280601181526020017f5375727072697365642050696b61636875000000000000000000000000000000815250905090565b600061056961056261181c565b8484611824565b6001905092915050565b61057b61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ff90613244565b60405180910390fd5b600e5483856106179190613293565b111561062257600080fd5b600f5481836106319190613293565b111561063c57600080fd5b83600a6000018190555082600a6001018190555081600a6002018190555080600a6003018190555050505050565b600067016345785d8a0000905090565b61068261181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070690613244565b60405180910390fd5b60005b81518110156108d8573073ffffffffffffffffffffffffffffffffffffffff16828281518110610745576107446132e9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156107d95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106107b8576107b76132e9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b801561084d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061082c5761082b6132e9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156108c55760016006600084848151811061086b5761086a6132e9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806108d090613318565b915050610712565b5050565b60006108e98484846119ed565b6109aa846108f561181c565b6109a585604051806060016040528060288152602001613c1b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061095b61181c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121589092919063ffffffff16565b611824565b600190509392505050565b6109bd61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190613244565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610ab661181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3a90613244565b60405180910390fd5b6031811115610b5157600080fd5b8060118190555050565b610b6361181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790613244565b60405180910390fd5b80601760026101000a81548160ff02191690831515021790555050565b610c1561181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9990613244565b60405180910390fd5b60008111610caf57600080fd5b610cdd6064610ccf8367016345785d8a00006121bc90919063ffffffff16565b61223690919063ffffffff16565b60188190555050565b610cee61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7290613244565b60405180910390fd5b6000479050610d8981612280565b50565b6000610dd6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ec565b9050919050565b610de561181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6990613244565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600a60000154600a60010154600a60020154600a60030154935093509350935090919293565b610f6461181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890613244565b60405180910390fd5b67016345785d8a000060188190555067016345785d8a0000601981905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5350494b41000000000000000000000000000000000000000000000000000000815250905090565b600061108b61108461181c565b84846119ed565b6001905092915050565b61109d61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190613244565b60405180910390fd5b6000811161113757600080fd5b61116560646111578367016345785d8a00006121bc90919063ffffffff16565b61223690919063ffffffff16565b60198190555050565b61117661181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90613244565b60405180910390fd5b600061120e30610d8c565b90506112198161235a565b50565b61122461181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890613244565b60405180910390fd5b601560149054906101000a900460ff1615611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f8906133ac565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061139030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a0000611824565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ff91906133e1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148a91906133e1565b6040518363ffffffff1660e01b81526004016114a792919061340e565b6020604051808303816000875af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea91906133e1565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061157330610d8c565b60008061157e611011565b426040518863ffffffff1660e01b81526004016115a09695949392919061347c565b60606040518083038185885af11580156115be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115e391906134f2565b5050506001601760016101000a81548160ff0219169083151502179055506001601760026101000a81548160ff02191690831515021790555061164b606461163d600367016345785d8a00006121bc90919063ffffffff16565b61223690919063ffffffff16565b6018819055506116806064611672600367016345785d8a00006121bc90919063ffffffff16565b61223690919063ffffffff16565b6019819055506001601560146101000a81548160ff0219169083151502179055504360168190555042601381905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161174e929190613545565b6020604051808303816000875af115801561176d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117919190613583565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188a90613622565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f9906136b4565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119e09190612e60565b60405180910390a3505050565b60008111611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2790613720565b60405180910390fd5b6001601760036101000a81548160ff021916908315150217905550611a53611011565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ac15750611a91611011565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561214857601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b715750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bc75750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bdf5750601760029054906101000a900460ff165b15611c8257601854811115611c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c209061378c565b60405180910390fd5b60195481611c3684610d8c565b611c409190613293565b1115611c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c78906137f8565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d2a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d835750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611e5157600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e2c5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e3557600080fd5b6000601760036101000a81548160ff0219169083151502179055505b6000611e5c30610d8c565b9050611eb06064611ea2601154611e94601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d8c565b6121bc90919063ffffffff16565b61223690919063ffffffff16565b811115611f0c57611f096064611efb601154611eed601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d8c565b6121bc90919063ffffffff16565b61223690919063ffffffff16565b90505b601760009054906101000a900460ff16158015611f775750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f8f5750601760019054906101000a900460ff165b15612082576005601654611fa39190613293565b431015611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc90613864565b60405180910390fd5b611fee8161235a565b600047905060008111156120065761200547612280565b5b600e54600a6001015414806120215750600f54600a60030154145b15612080576009600a600101819055506009600a60030181905550426013819055507f99d863278bf172c97d9dc766804dd5f6e42388d622d082c2a073780a9fe0c794600a600101546040516120779190612e60565b60405180910390a15b505b600e54600a600101541415801561209e57506002600a60010154115b80156120b957506012546013546120b59190613293565b4210155b15612146576120d76001600a600101546125df90919063ffffffff16565b600a600101819055506120f96001600a600301546125df90919063ffffffff16565b600a60030181905550426013819055507f99d863278bf172c97d9dc766804dd5f6e42388d622d082c2a073780a9fe0c794600a6001015460405161213d9190612e60565b60405180910390a15b505b612153838383612629565b505050565b60008383111582906121a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121979190612caa565b60405180910390fd5b50600083856121af9190613884565b9050809150509392505050565b60008083036121ce5760009050612230565b600082846121dc91906138b8565b90508284826121eb9190613941565b1461222b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612222906139e4565b60405180910390fd5b809150505b92915050565b600061227883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612639565b905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122e8573d6000803e3d6000fd5b5050565b6000600854821115612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a90613a76565b60405180910390fd5b600061233d61269c565b9050612352818461223690919063ffffffff16565b915050919050565b6001601760006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561239257612391612e80565b5b6040519080825280602002602001820160405280156123c05781602001602082028036833780820191505090505b50905030816000815181106123d8576123d76132e9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561247f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a391906133e1565b816001815181106124b7576124b66132e9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061251e30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611824565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430603c4261256e9190613293565b6040518663ffffffff1660e01b815260040161258e959493929190613b54565b600060405180830381600087803b1580156125a857600080fd5b505af11580156125bc573d6000803e3d6000fd5b50505050506000601760006101000a81548160ff02191690831515021790555050565b600061262183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612158565b905092915050565b6126348383836126c7565b505050565b60008083118290612680576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126779190612caa565b60405180910390fd5b506000838561268f9190613941565b9050809150509392505050565b60008060006126a9612892565b915091506126c0818361223690919063ffffffff16565b9250505090565b6000806000806000806126d9876128f1565b95509550955095509550955061273786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125df90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127cc85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612818816129e4565b6128228483612aa1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161287f9190612e60565b60405180910390a3505050505050505050565b60008060006008549050600067016345785d8a000090506128c667016345785d8a000060085461223690919063ffffffff16565b8210156128e45760085467016345785d8a00009350935050506128ed565b81819350935050505b9091565b6000806000806000806000806000612907612adb565b612925576129208a600a60020154600a60030154612af2565b61293b565b61293a8a600a60000154600a60010154612af2565b5b925092509250600061294b61269c565b9050600080600061295e8e878787612b88565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60008082846129959190613293565b9050838110156129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190613bfa565b60405180910390fd5b8091505092915050565b60006129ee61269c565b90506000612a0582846121bc90919063ffffffff16565b9050612a5981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ab6826008546125df90919063ffffffff16565b600881905550612ad18160095461298690919063ffffffff16565b6009819055505050565b6000601760039054906101000a900460ff16905090565b600080600080612b1e6064612b10888a6121bc90919063ffffffff16565b61223690919063ffffffff16565b90506000612b486064612b3a888b6121bc90919063ffffffff16565b61223690919063ffffffff16565b90506000612b7182612b63858c6125df90919063ffffffff16565b6125df90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ba185896121bc90919063ffffffff16565b90506000612bb886896121bc90919063ffffffff16565b90506000612bcf87896121bc90919063ffffffff16565b90506000612bf882612bea85876125df90919063ffffffff16565b6125df90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c4b578082015181840152602081019050612c30565b83811115612c5a576000848401525b50505050565b6000601f19601f8301169050919050565b6000612c7c82612c11565b612c868185612c1c565b9350612c96818560208601612c2d565b612c9f81612c60565b840191505092915050565b60006020820190508181036000830152612cc48184612c71565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d0b82612ce0565b9050919050565b612d1b81612d00565b8114612d2657600080fd5b50565b600081359050612d3881612d12565b92915050565b6000819050919050565b612d5181612d3e565b8114612d5c57600080fd5b50565b600081359050612d6e81612d48565b92915050565b60008060408385031215612d8b57612d8a612cd6565b5b6000612d9985828601612d29565b9250506020612daa85828601612d5f565b9150509250929050565b60008115159050919050565b612dc981612db4565b82525050565b6000602082019050612de46000830184612dc0565b92915050565b60008060008060808587031215612e0457612e03612cd6565b5b6000612e1287828801612d5f565b9450506020612e2387828801612d5f565b9350506040612e3487828801612d5f565b9250506060612e4587828801612d5f565b91505092959194509250565b612e5a81612d3e565b82525050565b6000602082019050612e756000830184612e51565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612eb882612c60565b810181811067ffffffffffffffff82111715612ed757612ed6612e80565b5b80604052505050565b6000612eea612ccc565b9050612ef68282612eaf565b919050565b600067ffffffffffffffff821115612f1657612f15612e80565b5b602082029050602081019050919050565b600080fd5b6000612f3f612f3a84612efb565b612ee0565b90508083825260208201905060208402830185811115612f6257612f61612f27565b5b835b81811015612f8b5780612f778882612d29565b845260208401935050602081019050612f64565b5050509392505050565b600082601f830112612faa57612fa9612e7b565b5b8135612fba848260208601612f2c565b91505092915050565b600060208284031215612fd957612fd8612cd6565b5b600082013567ffffffffffffffff811115612ff757612ff6612cdb565b5b61300384828501612f95565b91505092915050565b60008060006060848603121561302557613024612cd6565b5b600061303386828701612d29565b935050602061304486828701612d29565b925050604061305586828701612d5f565b9150509250925092565b60006020828403121561307557613074612cd6565b5b600061308384828501612d29565b91505092915050565b600060ff82169050919050565b6130a28161308c565b82525050565b60006020820190506130bd6000830184613099565b92915050565b6000602082840312156130d9576130d8612cd6565b5b60006130e784828501612d5f565b91505092915050565b6130f981612db4565b811461310457600080fd5b50565b600081359050613116816130f0565b92915050565b60006020828403121561313257613131612cd6565b5b600061314084828501613107565b91505092915050565b600060808201905061315e6000830187612e51565b61316b6020830186612e51565b6131786040830185612e51565b6131856060830184612e51565b95945050505050565b61319781612d00565b82525050565b60006020820190506131b2600083018461318e565b92915050565b600080604083850312156131cf576131ce612cd6565b5b60006131dd85828601612d29565b92505060206131ee85828601612d29565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061322e602083612c1c565b9150613239826131f8565b602082019050919050565b6000602082019050818103600083015261325d81613221565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061329e82612d3e565b91506132a983612d3e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132de576132dd613264565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061332382612d3e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361335557613354613264565b5b600182019050919050565b7f54726164696e6720616c7265616479206f70656e2e0000000000000000000000600082015250565b6000613396601583612c1c565b91506133a182613360565b602082019050919050565b600060208201905081810360008301526133c581613389565b9050919050565b6000815190506133db81612d12565b92915050565b6000602082840312156133f7576133f6612cd6565b5b6000613405848285016133cc565b91505092915050565b6000604082019050613423600083018561318e565b613430602083018461318e565b9392505050565b6000819050919050565b6000819050919050565b600061346661346161345c84613437565b613441565b612d3e565b9050919050565b6134768161344b565b82525050565b600060c082019050613491600083018961318e565b61349e6020830188612e51565b6134ab604083018761346d565b6134b8606083018661346d565b6134c5608083018561318e565b6134d260a0830184612e51565b979650505050505050565b6000815190506134ec81612d48565b92915050565b60008060006060848603121561350b5761350a612cd6565b5b6000613519868287016134dd565b935050602061352a868287016134dd565b925050604061353b868287016134dd565b9150509250925092565b600060408201905061355a600083018561318e565b6135676020830184612e51565b9392505050565b60008151905061357d816130f0565b92915050565b60006020828403121561359957613598612cd6565b5b60006135a78482850161356e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061360c602483612c1c565b9150613617826135b0565b604082019050919050565b6000602082019050818103600083015261363b816135ff565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061369e602283612c1c565b91506136a982613642565b604082019050919050565b600060208201905081810360008301526136cd81613691565b9050919050565b7f416d6f756e742063616e6e6f74206265207a65726f2e00000000000000000000600082015250565b600061370a601683612c1c565b9150613715826136d4565b602082019050919050565b60006020820190508181036000830152613739816136fd565b9050919050565b7f4d6178207472616e73616374696f6e2065786365656465642e00000000000000600082015250565b6000613776601983612c1c565b915061378182613740565b602082019050919050565b600060208201905081810360008301526137a581613769565b9050919050565b7f4d61782077616c6c65742065786365656465642e000000000000000000000000600082015250565b60006137e2601483612c1c565b91506137ed826137ac565b602082019050919050565b60006020820190508181036000830152613811816137d5565b9050919050565b7f416e746920736e69706572206d656368616e69736d0000000000000000000000600082015250565b600061384e601583612c1c565b915061385982613818565b602082019050919050565b6000602082019050818103600083015261387d81613841565b9050919050565b600061388f82612d3e565b915061389a83612d3e565b9250828210156138ad576138ac613264565b5b828203905092915050565b60006138c382612d3e565b91506138ce83612d3e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561390757613906613264565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061394c82612d3e565b915061395783612d3e565b92508261396757613966613912565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006139ce602183612c1c565b91506139d982613972565b604082019050919050565b600060208201905081810360008301526139fd816139c1565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613a60602a83612c1c565b9150613a6b82613a04565b604082019050919050565b60006020820190508181036000830152613a8f81613a53565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613acb81612d00565b82525050565b6000613add8383613ac2565b60208301905092915050565b6000602082019050919050565b6000613b0182613a96565b613b0b8185613aa1565b9350613b1683613ab2565b8060005b83811015613b47578151613b2e8882613ad1565b9750613b3983613ae9565b925050600181019050613b1a565b5085935050505092915050565b600060a082019050613b696000830188612e51565b613b76602083018761346d565b8181036040830152613b888186613af6565b9050613b97606083018561318e565b613ba46080830184612e51565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613be4601b83612c1c565b9150613bef82613bae565b602082019050919050565b60006020820190508181036000830152613c1381613bd7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e34acd48f114fafe3427505f12c0edc0f6712b41ffa434107a90a18b3b0c5bab64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80636fc3eaec116100b657806395d89b411161006f57806395d89b411461041c578063a9059cbb14610447578063b87f137a14610484578063c3c8cd80146104ad578063c9567bf9146104c4578063dd62ed3e146104db5761014b565b80636fc3eaec1461034157806370a0823114610358578063715018a61461039557806371908a03146103ac578063751039fc146103da5780638da5cb5b146103f15761014b565b806323b872dd1161010857806323b872dd14610235578063273123b714610272578063313ce5671461029b57806345596e2e146102c65780635932ead1146102ef578063677daa57146103185761014b565b806306fdde0314610150578063095ea7b31461017b57806317e1df5b146101b857806318160ddd146101e157806321bbcbb11461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610518565b6040516101729190612caa565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612d74565b610555565b6040516101af9190612dcf565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612dea565b610573565b005b3480156101ed57600080fd5b506101f661066a565b6040516102039190612e60565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e9190612fc3565b61067a565b005b34801561024157600080fd5b5061025c6004803603810190610257919061300c565b6108dc565b6040516102699190612dcf565b60405180910390f35b34801561027e57600080fd5b506102996004803603810190610294919061305f565b6109b5565b005b3480156102a757600080fd5b506102b0610aa5565b6040516102bd91906130a8565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e891906130c3565b610aae565b005b3480156102fb57600080fd5b506103166004803603810190610311919061311c565b610b5b565b005b34801561032457600080fd5b5061033f600480360381019061033a91906130c3565b610c0d565b005b34801561034d57600080fd5b50610356610ce6565b005b34801561036457600080fd5b5061037f600480360381019061037a919061305f565b610d8c565b60405161038c9190612e60565b60405180910390f35b3480156103a157600080fd5b506103aa610ddd565b005b3480156103b857600080fd5b506103c1610f30565b6040516103d19493929190613149565b60405180910390f35b3480156103e657600080fd5b506103ef610f5c565b005b3480156103fd57600080fd5b50610406611011565b604051610413919061319d565b60405180910390f35b34801561042857600080fd5b5061043161103a565b60405161043e9190612caa565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190612d74565b611077565b60405161047b9190612dcf565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a691906130c3565b611095565b005b3480156104b957600080fd5b506104c261116e565b005b3480156104d057600080fd5b506104d961121c565b005b3480156104e757600080fd5b5061050260048036038101906104fd91906131b8565b611795565b60405161050f9190612e60565b60405180910390f35b60606040518060400160405280601181526020017f5375727072697365642050696b61636875000000000000000000000000000000815250905090565b600061056961056261181c565b8484611824565b6001905092915050565b61057b61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ff90613244565b60405180910390fd5b600e5483856106179190613293565b111561062257600080fd5b600f5481836106319190613293565b111561063c57600080fd5b83600a6000018190555082600a6001018190555081600a6002018190555080600a6003018190555050505050565b600067016345785d8a0000905090565b61068261181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070690613244565b60405180910390fd5b60005b81518110156108d8573073ffffffffffffffffffffffffffffffffffffffff16828281518110610745576107446132e9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156107d95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106107b8576107b76132e9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b801561084d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061082c5761082b6132e9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156108c55760016006600084848151811061086b5761086a6132e9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806108d090613318565b915050610712565b5050565b60006108e98484846119ed565b6109aa846108f561181c565b6109a585604051806060016040528060288152602001613c1b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061095b61181c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121589092919063ffffffff16565b611824565b600190509392505050565b6109bd61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190613244565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610ab661181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3a90613244565b60405180910390fd5b6031811115610b5157600080fd5b8060118190555050565b610b6361181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790613244565b60405180910390fd5b80601760026101000a81548160ff02191690831515021790555050565b610c1561181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9990613244565b60405180910390fd5b60008111610caf57600080fd5b610cdd6064610ccf8367016345785d8a00006121bc90919063ffffffff16565b61223690919063ffffffff16565b60188190555050565b610cee61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7290613244565b60405180910390fd5b6000479050610d8981612280565b50565b6000610dd6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ec565b9050919050565b610de561181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6990613244565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600a60000154600a60010154600a60020154600a60030154935093509350935090919293565b610f6461181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890613244565b60405180910390fd5b67016345785d8a000060188190555067016345785d8a0000601981905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5350494b41000000000000000000000000000000000000000000000000000000815250905090565b600061108b61108461181c565b84846119ed565b6001905092915050565b61109d61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190613244565b60405180910390fd5b6000811161113757600080fd5b61116560646111578367016345785d8a00006121bc90919063ffffffff16565b61223690919063ffffffff16565b60198190555050565b61117661181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90613244565b60405180910390fd5b600061120e30610d8c565b90506112198161235a565b50565b61122461181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890613244565b60405180910390fd5b601560149054906101000a900460ff1615611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f8906133ac565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061139030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a0000611824565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ff91906133e1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148a91906133e1565b6040518363ffffffff1660e01b81526004016114a792919061340e565b6020604051808303816000875af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea91906133e1565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061157330610d8c565b60008061157e611011565b426040518863ffffffff1660e01b81526004016115a09695949392919061347c565b60606040518083038185885af11580156115be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115e391906134f2565b5050506001601760016101000a81548160ff0219169083151502179055506001601760026101000a81548160ff02191690831515021790555061164b606461163d600367016345785d8a00006121bc90919063ffffffff16565b61223690919063ffffffff16565b6018819055506116806064611672600367016345785d8a00006121bc90919063ffffffff16565b61223690919063ffffffff16565b6019819055506001601560146101000a81548160ff0219169083151502179055504360168190555042601381905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161174e929190613545565b6020604051808303816000875af115801561176d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117919190613583565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188a90613622565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f9906136b4565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119e09190612e60565b60405180910390a3505050565b60008111611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2790613720565b60405180910390fd5b6001601760036101000a81548160ff021916908315150217905550611a53611011565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ac15750611a91611011565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561214857601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b715750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bc75750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bdf5750601760029054906101000a900460ff165b15611c8257601854811115611c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c209061378c565b60405180910390fd5b60195481611c3684610d8c565b611c409190613293565b1115611c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c78906137f8565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d2a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d835750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611e5157600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e2c5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e3557600080fd5b6000601760036101000a81548160ff0219169083151502179055505b6000611e5c30610d8c565b9050611eb06064611ea2601154611e94601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d8c565b6121bc90919063ffffffff16565b61223690919063ffffffff16565b811115611f0c57611f096064611efb601154611eed601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d8c565b6121bc90919063ffffffff16565b61223690919063ffffffff16565b90505b601760009054906101000a900460ff16158015611f775750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f8f5750601760019054906101000a900460ff165b15612082576005601654611fa39190613293565b431015611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc90613864565b60405180910390fd5b611fee8161235a565b600047905060008111156120065761200547612280565b5b600e54600a6001015414806120215750600f54600a60030154145b15612080576009600a600101819055506009600a60030181905550426013819055507f99d863278bf172c97d9dc766804dd5f6e42388d622d082c2a073780a9fe0c794600a600101546040516120779190612e60565b60405180910390a15b505b600e54600a600101541415801561209e57506002600a60010154115b80156120b957506012546013546120b59190613293565b4210155b15612146576120d76001600a600101546125df90919063ffffffff16565b600a600101819055506120f96001600a600301546125df90919063ffffffff16565b600a60030181905550426013819055507f99d863278bf172c97d9dc766804dd5f6e42388d622d082c2a073780a9fe0c794600a6001015460405161213d9190612e60565b60405180910390a15b505b612153838383612629565b505050565b60008383111582906121a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121979190612caa565b60405180910390fd5b50600083856121af9190613884565b9050809150509392505050565b60008083036121ce5760009050612230565b600082846121dc91906138b8565b90508284826121eb9190613941565b1461222b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612222906139e4565b60405180910390fd5b809150505b92915050565b600061227883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612639565b905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122e8573d6000803e3d6000fd5b5050565b6000600854821115612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a90613a76565b60405180910390fd5b600061233d61269c565b9050612352818461223690919063ffffffff16565b915050919050565b6001601760006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561239257612391612e80565b5b6040519080825280602002602001820160405280156123c05781602001602082028036833780820191505090505b50905030816000815181106123d8576123d76132e9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561247f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a391906133e1565b816001815181106124b7576124b66132e9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061251e30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611824565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430603c4261256e9190613293565b6040518663ffffffff1660e01b815260040161258e959493929190613b54565b600060405180830381600087803b1580156125a857600080fd5b505af11580156125bc573d6000803e3d6000fd5b50505050506000601760006101000a81548160ff02191690831515021790555050565b600061262183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612158565b905092915050565b6126348383836126c7565b505050565b60008083118290612680576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126779190612caa565b60405180910390fd5b506000838561268f9190613941565b9050809150509392505050565b60008060006126a9612892565b915091506126c0818361223690919063ffffffff16565b9250505090565b6000806000806000806126d9876128f1565b95509550955095509550955061273786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125df90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127cc85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612818816129e4565b6128228483612aa1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161287f9190612e60565b60405180910390a3505050505050505050565b60008060006008549050600067016345785d8a000090506128c667016345785d8a000060085461223690919063ffffffff16565b8210156128e45760085467016345785d8a00009350935050506128ed565b81819350935050505b9091565b6000806000806000806000806000612907612adb565b612925576129208a600a60020154600a60030154612af2565b61293b565b61293a8a600a60000154600a60010154612af2565b5b925092509250600061294b61269c565b9050600080600061295e8e878787612b88565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60008082846129959190613293565b9050838110156129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190613bfa565b60405180910390fd5b8091505092915050565b60006129ee61269c565b90506000612a0582846121bc90919063ffffffff16565b9050612a5981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ab6826008546125df90919063ffffffff16565b600881905550612ad18160095461298690919063ffffffff16565b6009819055505050565b6000601760039054906101000a900460ff16905090565b600080600080612b1e6064612b10888a6121bc90919063ffffffff16565b61223690919063ffffffff16565b90506000612b486064612b3a888b6121bc90919063ffffffff16565b61223690919063ffffffff16565b90506000612b7182612b63858c6125df90919063ffffffff16565b6125df90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ba185896121bc90919063ffffffff16565b90506000612bb886896121bc90919063ffffffff16565b90506000612bcf87896121bc90919063ffffffff16565b90506000612bf882612bea85876125df90919063ffffffff16565b6125df90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c4b578082015181840152602081019050612c30565b83811115612c5a576000848401525b50505050565b6000601f19601f8301169050919050565b6000612c7c82612c11565b612c868185612c1c565b9350612c96818560208601612c2d565b612c9f81612c60565b840191505092915050565b60006020820190508181036000830152612cc48184612c71565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d0b82612ce0565b9050919050565b612d1b81612d00565b8114612d2657600080fd5b50565b600081359050612d3881612d12565b92915050565b6000819050919050565b612d5181612d3e565b8114612d5c57600080fd5b50565b600081359050612d6e81612d48565b92915050565b60008060408385031215612d8b57612d8a612cd6565b5b6000612d9985828601612d29565b9250506020612daa85828601612d5f565b9150509250929050565b60008115159050919050565b612dc981612db4565b82525050565b6000602082019050612de46000830184612dc0565b92915050565b60008060008060808587031215612e0457612e03612cd6565b5b6000612e1287828801612d5f565b9450506020612e2387828801612d5f565b9350506040612e3487828801612d5f565b9250506060612e4587828801612d5f565b91505092959194509250565b612e5a81612d3e565b82525050565b6000602082019050612e756000830184612e51565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612eb882612c60565b810181811067ffffffffffffffff82111715612ed757612ed6612e80565b5b80604052505050565b6000612eea612ccc565b9050612ef68282612eaf565b919050565b600067ffffffffffffffff821115612f1657612f15612e80565b5b602082029050602081019050919050565b600080fd5b6000612f3f612f3a84612efb565b612ee0565b90508083825260208201905060208402830185811115612f6257612f61612f27565b5b835b81811015612f8b5780612f778882612d29565b845260208401935050602081019050612f64565b5050509392505050565b600082601f830112612faa57612fa9612e7b565b5b8135612fba848260208601612f2c565b91505092915050565b600060208284031215612fd957612fd8612cd6565b5b600082013567ffffffffffffffff811115612ff757612ff6612cdb565b5b61300384828501612f95565b91505092915050565b60008060006060848603121561302557613024612cd6565b5b600061303386828701612d29565b935050602061304486828701612d29565b925050604061305586828701612d5f565b9150509250925092565b60006020828403121561307557613074612cd6565b5b600061308384828501612d29565b91505092915050565b600060ff82169050919050565b6130a28161308c565b82525050565b60006020820190506130bd6000830184613099565b92915050565b6000602082840312156130d9576130d8612cd6565b5b60006130e784828501612d5f565b91505092915050565b6130f981612db4565b811461310457600080fd5b50565b600081359050613116816130f0565b92915050565b60006020828403121561313257613131612cd6565b5b600061314084828501613107565b91505092915050565b600060808201905061315e6000830187612e51565b61316b6020830186612e51565b6131786040830185612e51565b6131856060830184612e51565b95945050505050565b61319781612d00565b82525050565b60006020820190506131b2600083018461318e565b92915050565b600080604083850312156131cf576131ce612cd6565b5b60006131dd85828601612d29565b92505060206131ee85828601612d29565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061322e602083612c1c565b9150613239826131f8565b602082019050919050565b6000602082019050818103600083015261325d81613221565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061329e82612d3e565b91506132a983612d3e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132de576132dd613264565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061332382612d3e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361335557613354613264565b5b600182019050919050565b7f54726164696e6720616c7265616479206f70656e2e0000000000000000000000600082015250565b6000613396601583612c1c565b91506133a182613360565b602082019050919050565b600060208201905081810360008301526133c581613389565b9050919050565b6000815190506133db81612d12565b92915050565b6000602082840312156133f7576133f6612cd6565b5b6000613405848285016133cc565b91505092915050565b6000604082019050613423600083018561318e565b613430602083018461318e565b9392505050565b6000819050919050565b6000819050919050565b600061346661346161345c84613437565b613441565b612d3e565b9050919050565b6134768161344b565b82525050565b600060c082019050613491600083018961318e565b61349e6020830188612e51565b6134ab604083018761346d565b6134b8606083018661346d565b6134c5608083018561318e565b6134d260a0830184612e51565b979650505050505050565b6000815190506134ec81612d48565b92915050565b60008060006060848603121561350b5761350a612cd6565b5b6000613519868287016134dd565b935050602061352a868287016134dd565b925050604061353b868287016134dd565b9150509250925092565b600060408201905061355a600083018561318e565b6135676020830184612e51565b9392505050565b60008151905061357d816130f0565b92915050565b60006020828403121561359957613598612cd6565b5b60006135a78482850161356e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061360c602483612c1c565b9150613617826135b0565b604082019050919050565b6000602082019050818103600083015261363b816135ff565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061369e602283612c1c565b91506136a982613642565b604082019050919050565b600060208201905081810360008301526136cd81613691565b9050919050565b7f416d6f756e742063616e6e6f74206265207a65726f2e00000000000000000000600082015250565b600061370a601683612c1c565b9150613715826136d4565b602082019050919050565b60006020820190508181036000830152613739816136fd565b9050919050565b7f4d6178207472616e73616374696f6e2065786365656465642e00000000000000600082015250565b6000613776601983612c1c565b915061378182613740565b602082019050919050565b600060208201905081810360008301526137a581613769565b9050919050565b7f4d61782077616c6c65742065786365656465642e000000000000000000000000600082015250565b60006137e2601483612c1c565b91506137ed826137ac565b602082019050919050565b60006020820190508181036000830152613811816137d5565b9050919050565b7f416e746920736e69706572206d656368616e69736d0000000000000000000000600082015250565b600061384e601583612c1c565b915061385982613818565b602082019050919050565b6000602082019050818103600083015261387d81613841565b9050919050565b600061388f82612d3e565b915061389a83612d3e565b9250828210156138ad576138ac613264565b5b828203905092915050565b60006138c382612d3e565b91506138ce83612d3e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561390757613906613264565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061394c82612d3e565b915061395783612d3e565b92508261396757613966613912565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006139ce602183612c1c565b91506139d982613972565b604082019050919050565b600060208201905081810360008301526139fd816139c1565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613a60602a83612c1c565b9150613a6b82613a04565b604082019050919050565b60006020820190508181036000830152613a8f81613a53565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613acb81612d00565b82525050565b6000613add8383613ac2565b60208301905092915050565b6000602082019050919050565b6000613b0182613a96565b613b0b8185613aa1565b9350613b1683613ab2565b8060005b83811015613b47578151613b2e8882613ad1565b9750613b3983613ae9565b925050600181019050613b1a565b5085935050505092915050565b600060a082019050613b696000830188612e51565b613b76602083018761346d565b8181036040830152613b888186613af6565b9050613b97606083018561318e565b613ba46080830184612e51565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613be4601b83612c1c565b9150613bef82613bae565b602082019050919050565b60006020820190508181036000830152613c1381613bd7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e34acd48f114fafe3427505f12c0edc0f6712b41ffa434107a90a18b3b0c5bab64736f6c634300080f0033

Deployed Bytecode Sourcemap

8811:12904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11044:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11896:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16199:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11321:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18142:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12065:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18450:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11230:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16935:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12386:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16589:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19786:153;;;;;;;;;;;;;:::i;:::-;;11424:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7890:148;;;;;;;;;;;;;:::i;:::-;;16016:175;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;15890:118;;;;;;;;;;;;;:::i;:::-;;7676:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11135:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11570:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16760;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19620:154;;;;;;;;;;;;;:::i;:::-;;17174:956;;;;;;;;;;;;;:::i;:::-;;11745:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11044:83;11081:13;11114:5;;;;;;;;;;;;;;;;;11107:12;;11044:83;:::o;11896:161::-;11971:4;11988:39;11997:12;:10;:12::i;:::-;12011:7;12020:6;11988:8;:39::i;:::-;12045:4;12038:11;;11896:161;;;;:::o;16199:382::-;7813:12;:10;:12::i;:::-;7803:22;;:6;;;;;;;;;;:22;;;7795:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16348:18:::1;;16337:7;16327;:17;;;;:::i;:::-;:39;;16319:48;;;::::0;::::1;;16409:19;;16397:8;16386;:19;;;;:::i;:::-;:42;;16378:51;;;::::0;::::1;;16457:7;16440:6;:14;;:24;;;;16492:7;16475:6;:14;;:24;;;;16528:8;16510:6;:15;;:26;;;;16565:8;16547:6;:15;;:26;;;;16199:382:::0;;;;:::o;11321:95::-;11374:7;9320:19;11394:14;;11321:95;:::o;18142:296::-;7813:12;:10;:12::i;:::-;7803:22;;:6;;;;;;;;;;:22;;;7795:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18215:6:::1;18210:221;18231:5;:12;18227:1;:16;18210:221;;;18289:4;18269:25;;:5;18275:1;18269:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:54;;;;;18310:13;;;;;;;;;;;18298:25;;:5;18304:1;18298:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;18269:54;:94;;;;;18347:15;;;;;;;;;;;18327:36;;:5;18333:1;18327:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;18269:94;18265:155;;;18400:4;18383;:14;18388:5;18394:1;18388:8;;;;;;;;:::i;:::-;;;;;;;;18383:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18265:155;18245:3;;;;;:::i;:::-;;;;18210:221;;;;18142:296:::0;:::o;12065:313::-;12163:4;12180:36;12190:6;12198:9;12209:6;12180:9;:36::i;:::-;12227:121;12236:6;12244:12;:10;:12::i;:::-;12258:89;12296:6;12258:89;;;;;;;;;;;;;;;;;:11;:19;12270:6;12258:19;;;;;;;;;;;;;;;:33;12278:12;:10;:12::i;:::-;12258:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12227:8;:121::i;:::-;12366:4;12359:11;;12065:313;;;;;:::o;18450:88::-;7813:12;:10;:12::i;:::-;7803:22;;:6;;;;;;;;;;:22;;;7795:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18525:5:::1;18510:4;:12;18515:6;18510:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;18450:88:::0;:::o;11230:83::-;11271:5;10107:1;11289:16;;11230:83;:::o;16935:117::-;7813:12;:10;:12::i;:::-;7803:22;;:6;;;;;;;;;;:22;;;7795:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17015:2:::1;17009:4;:8;;17001:17;;;::::0;::::1;;17040:4;17029:8;:15;;;;16935:117:::0;:::o;12386:103::-;7813:12;:10;:12::i;:::-;7803:22;;:6;;;;;;;;;;:22;;;7795:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12476:5:::1;12458:15;;:23;;;;;;;;;;;;;;;;;;12386:103:::0;:::o;16589:163::-;7813:12;:10;:12::i;:::-;7803:22;;:6;;;;;;;;;;:22;;;7795:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16684:1:::1;16673:10;:12;16665:21;;;::::0;::::1;;16712:32;16740:3;16712:23;16724:10;9320:19;16712:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;16697:12;:47;;;;16589:163:::0;:::o;19786:153::-;7813:12;:10;:12::i;:::-;7803:22;;:6;;;;;;;;;;:22;;;7795:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19838:26:::1;19867:21;19838:50;;19899:32;19912:18;19899:12;:32::i;:::-;19827:112;19786:153::o:0;11424:138::-;11490:7;11517:37;11537:7;:16;11545:7;11537:16;;;;;;;;;;;;;;;;11517:19;:37::i;:::-;11510:44;;11424:138;;;:::o;7890:148::-;7813:12;:10;:12::i;:::-;7803:22;;:6;;;;;;;;;;:22;;;7795:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7997:1:::1;7960:40;;7981:6;::::0;::::1;;;;;;;;7960:40;;;;;;;;;;;;8028:1;8011:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;7890:148::o:0;16016:175::-;16063:7;16072;16081;16090;16118:6;:14;;;16134:6;:14;;;16150:6;:15;;;16167:6;:15;;;16110:73;;;;;;;;16016:175;;;;:::o;15890:118::-;7813:12;:10;:12::i;:::-;7803:22;;:6;;;;;;;;;;:22;;;7795:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9320:19:::1;15943:12;:22;;;;9320:19;15976:14;:24;;;;15890:118::o:0;7676:79::-;7714:7;7741:6;;;;;;;;;;;7734:13;;7676:79;:::o;11135:87::-;11174:13;11207:7;;;;;;;;;;;;;;;;;11200:14;;11135:87;:::o;11570:167::-;11648:4;11665:42;11675:12;:10;:12::i;:::-;11689:9;11700:6;11665:9;:42::i;:::-;11725:4;11718:11;;11570:167;;;;:::o;16760:::-;7813:12;:10;:12::i;:::-;7803:22;;:6;;;;;;;;;;:22;;;7795:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16857:1:::1;16846:10;:12;16838:21;;;::::0;::::1;;16887:32;16915:3;16887:23;16899:10;9320:19;16887:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;16870:14;:49;;;;16760:167:::0;:::o;19620:154::-;7813:12;:10;:12::i;:::-;7803:22;;:6;;;;;;;;;;:22;;;7795:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19672:23:::1;19698:24;19716:4;19698:9;:24::i;:::-;19672:50;;19733:33;19750:15;19733:16;:33::i;:::-;19661:113;19620:154::o:0;17174:956::-;7813:12;:10;:12::i;:::-;7803:22;;:6;;;;;;;;;;:22;;;7795:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17238:11:::1;;;;;;;;;;;17237:12;17229:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;17286:35;17343:42;17286:100;;17415:16;17397:15;;:34;;;;;;;;;;;;;;;;;;17442:58;17459:4;17474:15;;;;;;;;;;;9320:19;17442:8;:58::i;:::-;17545:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17527:56;;;17592:4;17599:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17527:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17511:13;;:112;;;;;;;;;;;;;;;;;;17634:15;;;;;;;;;;;:31;;;17673:21;17704:4;17710:24;17728:4;17710:9;:24::i;:::-;17735:1;17737::::0;17739:7:::1;:5;:7::i;:::-;17747:15;17634:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17788:4;17774:11;;:18;;;;;;;;;;;;;;;;;;17821:4;17803:15;;:22;;;;;;;;;;;;;;;;;;17851:23;17870:3;17851:14;17863:1;9320:19;17851:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;17836:12;:38;;;;17902:23;17921:3;17902:14;17914:1;9320:19;17902:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;17885:14;:40;;;;17950:4;17936:11;;:18;;;;;;;;;;;;;;;;;;17978:12;17965:10;:25;;;;18025:15;18001:21;:39;;;;18058:13;;;;;;;;;;;18051:29;;;18089:15;;;;;;;;;;;18107:14;18051:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17218:912;17174:956::o:0;11745:143::-;11826:7;11853:11;:18;11865:5;11853:18;;;;;;;;;;;;;;;:27;11872:7;11853:27;;;;;;;;;;;;;;;;11846:34;;11745:143;;;;:::o;5394:98::-;5447:7;5474:10;5467:17;;5394:98;:::o;12759:335::-;12869:1;12852:19;;:5;:19;;;12844:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12950:1;12931:21;;:7;:21;;;12923:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13032:6;13002:11;:18;13014:5;13002:18;;;;;;;;;;;;;;;:27;13021:7;13002:27;;;;;;;;;;;;;;;:36;;;;13070:7;13054:32;;13063:5;13054:32;;;13079:6;13054:32;;;;;;:::i;:::-;;;;;;;;12759:335;;;:::o;13102:2197::-;13199:1;13190:6;:10;13182:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;13247:4;13238:6;;:13;;;;;;;;;;;;;;;;;;13276:7;:5;:7::i;:::-;13268:15;;:4;:15;;;;:32;;;;;13293:7;:5;:7::i;:::-;13287:13;;:2;:13;;;;13268:32;13264:1985;;;13331:13;;;;;;;;;;;13323:21;;:4;:21;;;:55;;;;;13362:15;;;;;;;;;;;13348:30;;:2;:30;;;;13323:55;:83;;;;;13384:18;:22;13403:2;13384:22;;;;;;;;;;;;;;;;;;;;;;;;;13382:24;13323:83;:102;;;;;13410:15;;;;;;;;;;;13323:102;13319:319;;;13488:12;;13478:6;:22;;13470:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13583:14;;13573:6;13557:13;13567:2;13557:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;13549:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13319:319;13674:15;;;;;;;;;;;13658:32;;:4;:32;;;;:62;;;;;13696:18;:24;13715:4;13696:24;;;;;;;;;;;;;;;;;;;;;;;;;13694:26;13658:62;:85;;;;;13730:13;;;;;;;;;;;13724:19;;:2;:19;;;13658:85;13654:191;;;13772:4;:10;13777:4;13772:10;;;;;;;;;;;;;;;;;;;;;;;;;13771:11;:24;;;;;13787:4;:8;13792:2;13787:8;;;;;;;;;;;;;;;;;;;;;;;;;13786:9;13771:24;13763:33;;;;;;13824:5;13815:6;;:14;;;;;;;;;;;;;;;;;;13654:191;13861:28;13892:24;13910:4;13892:9;:24::i;:::-;13861:55;;13957:47;14000:3;13957:38;13986:8;;13957:24;13967:13;;;;;;;;;;;13957:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;13934:20;:70;13931:180;;;14048:47;14091:3;14048:38;14077:8;;14048:24;14058:13;;;;;;;;;;;14048:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;14025:70;;13931:180;14132:6;;;;;;;;;;;14131:7;:32;;;;;14150:13;;;;;;;;;;;14142:21;;:4;:21;;;;14131:32;:47;;;;;14167:11;;;;;;;;;;;14131:47;14127:723;;;14237:1;14224:10;;:14;;;;:::i;:::-;14207:12;:32;;14199:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14284:38;14301:20;14284:16;:38::i;:::-;14341:26;14370:21;14341:50;;14434:1;14413:18;:22;14410:105;;;14460:35;14473:21;14460:12;:35::i;:::-;14410:105;14555:18;;14537:6;:14;;;:36;:78;;;;14596:19;;14577:6;:15;;;:38;14537:78;14533:302;;;14657:1;14640:6;:14;;:18;;;;14699:1;14681:6;:15;;:19;;;;14747:15;14723:21;:39;;;;14790:25;14800:6;:14;;;14790:25;;;;;;:::i;:::-;;;;;;;;14533:302;14180:670;14127:723;14888:18;;14870:6;:14;;;:36;;:58;;;;;14927:1;14910:6;:14;;;:18;14870:58;:127;;;;;14975:22;;14951:21;;:46;;;;:::i;:::-;14932:15;:65;;14870:127;14866:372;;;15035:21;15054:1;15035:6;:14;;;:18;;:21;;;;:::i;:::-;15018:6;:14;;:38;;;;15093:22;15113:1;15093:6;:15;;;:19;;:22;;;;:::i;:::-;15075:6;:15;;:40;;;;15158:15;15134:21;:39;;;;15197:25;15207:6;:14;;;15197:25;;;;;;:::i;:::-;;;;;;;;14866:372;13302:1947;13264:1985;15261:30;15276:4;15281:2;15284:6;15261:14;:30::i;:::-;13102:2197;;;:::o;6531:190::-;6617:7;6650:1;6645;:6;;6653:12;6637:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6677:9;6693:1;6689;:5;;;;:::i;:::-;6677:17;;6712:1;6705:8;;;6531:190;;;;;:::o;6729:246::-;6787:7;6816:1;6811;:6;6807:47;;6841:1;6834:8;;;;6807:47;6864:9;6880:1;6876;:5;;;;:::i;:::-;6864:17;;6909:1;6904;6900;:5;;;;:::i;:::-;:10;6892:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6966:1;6959:8;;;6729:246;;;;;:::o;6983:132::-;7041:7;7068:39;7072:1;7075;7068:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7061:46;;6983:132;;;;:::o;17068:96::-;17125:14;;;;;;;;;;;:23;;:31;17149:6;17125:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17068:96;:::o;12497:254::-;12564:7;12603;;12592;:18;;12584:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12668:19;12691:10;:8;:10::i;:::-;12668:33;;12719:24;12731:11;12719:7;:11;;:24;;;;:::i;:::-;12712:31;;;12497:254;;;:::o;15307:488::-;10628:4;10619:6;;:13;;;;;;;;;;;;;;;;;;15385:21:::1;15423:1;15409:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15385:40;;15454:4;15436;15441:1;15436:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15480:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15470:4;15475:1;15470:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;15513:62;15530:4;15545:15;;;;;;;;;;;15563:11;15513:8;:62::i;:::-;15586:15;;;;;;;;;;;:66;;;15667:11;15693:1;15709:4;15736;15774:2;15756:15;:20;;;;:::i;:::-;15586:201;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15374:421;10664:5:::0;10655:6;;:14;;;;;;;;;;;;;;;;;;15307:488;:::o;6387:136::-;6445:7;6472:43;6476:1;6479;6472:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6465:50;;6387:136;;;;:::o;18554:146::-;18648:44;18666:6;18674:9;18685:6;18648:17;:44::i;:::-;18554:146;;;:::o;7123:189::-;7209:7;7241:1;7237;:5;7244:12;7229:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7268:9;7284:1;7280;:5;;;;:::i;:::-;7268:17;;7303:1;7296:8;;;7123:189;;;;;:::o;21279:163::-;21320:7;21341:15;21358;21377:19;:17;:19::i;:::-;21340:56;;;;21414:20;21426:7;21414;:11;;:20;;;;:::i;:::-;21407:27;;;;21279:163;:::o;18708:488::-;18807:15;18824:23;18849:12;18863:23;18888:12;18902:13;18919:19;18930:7;18919:10;:19::i;:::-;18806:132;;;;;;;;;;;;18967:28;18987:7;18967;:15;18975:6;18967:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;18949:7;:15;18957:6;18949:15;;;;;;;;;;;;;;;:46;;;;19027:39;19050:15;19027:7;:18;19035:9;19027:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;19006:7;:18;19014:9;19006:18;;;;;;;;;;;;;;;:60;;;;19078:16;19088:5;19078:9;:16::i;:::-;19105:23;19117:4;19123;19105:11;:23::i;:::-;19161:9;19144:44;;19153:6;19144:44;;;19172:15;19144:44;;;;;;:::i;:::-;;;;;;;;18795:401;;;;;;18708:488;;;:::o;21450:262::-;21500:7;21509;21529:15;21547:7;;21529:25;;21565:15;9320:19;21565:25;;21621:20;9320:19;21621:7;;:11;;:20;;;;:::i;:::-;21611:7;:30;21607:61;;;21651:7;;9320:19;21643:25;;;;;;;;21607:61;21687:7;21696;21679:25;;;;;;21450:262;;;:::o;19947:551::-;20006:7;20015;20024;20033;20042;20051;20072:23;20097:12;20111:13;20128:10;:8;:10::i;:::-;:122;;20196:54;20208:7;20217:6;:15;;;20234:6;:15;;;20196:11;:54::i;:::-;20128:122;;;20141:52;20153:7;20162:6;:14;;;20178:6;:14;;;20141:11;:52::i;:::-;20128:122;20071:179;;;;;;20261:19;20284:10;:8;:10::i;:::-;20261:33;;20306:15;20323:23;20348:12;20364:46;20376:7;20385:4;20391:5;20398:11;20364;:46::i;:::-;20305:105;;;;;;20429:7;20438:15;20455:4;20461:15;20478:4;20484:5;20421:69;;;;;;;;;;;;;;;;;;;19947:551;;;;;;;:::o;6200:179::-;6258:7;6278:9;6294:1;6290;:5;;;;:::i;:::-;6278:17;;6319:1;6314;:6;;6306:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6370:1;6363:8;;;6200:179;;;;:::o;19204:212::-;19257:19;19280:10;:8;:10::i;:::-;19257:33;;19301:13;19317:22;19327:11;19317:5;:9;;:22;;;;:::i;:::-;19301:38;;19375:33;19402:5;19375:7;:22;19391:4;19375:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;19350:7;:22;19366:4;19350:22;;;;;;;;;;;;;;;:58;;;;19246:170;;19204:212;:::o;19424:147::-;19502:17;19514:4;19502:7;;:11;;:17;;;;:::i;:::-;19492:7;:27;;;;19543:20;19558:4;19543:10;;:14;;:20;;;;:::i;:::-;19530:10;:33;;;;19424:147;;:::o;15803:79::-;15845:4;15868:6;;;;;;;;;;;15861:13;;15803:79;:::o;20506:351::-;20599:7;20608;20617;20637:12;20652:28;20676:3;20652:19;20664:6;20652:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;20637:43;;20691:13;20707:29;20732:3;20707:20;20719:7;20707;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;20691:45;;20747:23;20773:28;20795:5;20773:17;20785:4;20773:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;20747:54;;20820:15;20837:4;20843:5;20812:37;;;;;;;;;20506:351;;;;;;;:::o;20865:409::-;20975:7;20984;20993;21013:15;21031:24;21043:11;21031:7;:11;;:24;;;;:::i;:::-;21013:42;;21066:12;21081:21;21090:11;21081:4;:8;;:21;;;;:::i;:::-;21066:36;;21113:13;21129:22;21139:11;21129:5;:9;;:22;;;;:::i;:::-;21113:38;;21162:23;21188:28;21210:5;21188:17;21200:4;21188:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;21162:54;;21235:7;21244:15;21261:4;21227:39;;;;;;;;;;20865:409;;;;;;;;:::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;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700: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:765::-;3580:6;3588;3596;3604;3653:3;3641:9;3632:7;3628:23;3624:33;3621:120;;;3660:79;;:::i;:::-;3621:120;3780:1;3805:53;3850:7;3841:6;3830:9;3826:22;3805:53;:::i;:::-;3795:63;;3751:117;3907:2;3933:53;3978:7;3969:6;3958:9;3954:22;3933:53;:::i;:::-;3923:63;;3878:118;4035:2;4061:53;4106:7;4097:6;4086:9;4082:22;4061:53;:::i;:::-;4051:63;;4006:118;4163:2;4189:53;4234:7;4225:6;4214:9;4210:22;4189:53;:::i;:::-;4179:63;;4134:118;3494:765;;;;;;;:::o;4265:118::-;4352:24;4370:5;4352:24;:::i;:::-;4347:3;4340:37;4265:118;;:::o;4389:222::-;4482:4;4520:2;4509:9;4505:18;4497:26;;4533:71;4601:1;4590:9;4586:17;4577:6;4533:71;:::i;:::-;4389:222;;;;:::o;4617:117::-;4726:1;4723;4716:12;4740:180;4788:77;4785:1;4778:88;4885:4;4882:1;4875:15;4909:4;4906:1;4899:15;4926:281;5009:27;5031:4;5009:27;:::i;:::-;5001:6;4997:40;5139:6;5127:10;5124:22;5103:18;5091:10;5088:34;5085:62;5082:88;;;5150:18;;:::i;:::-;5082:88;5190:10;5186:2;5179:22;4969:238;4926:281;;:::o;5213:129::-;5247:6;5274:20;;:::i;:::-;5264:30;;5303:33;5331:4;5323:6;5303:33;:::i;:::-;5213:129;;;:::o;5348:311::-;5425:4;5515:18;5507:6;5504:30;5501:56;;;5537:18;;:::i;:::-;5501:56;5587:4;5579:6;5575:17;5567:25;;5647:4;5641;5637:15;5629:23;;5348:311;;;:::o;5665:117::-;5774:1;5771;5764:12;5805:710;5901:5;5926:81;5942:64;5999:6;5942:64;:::i;:::-;5926:81;:::i;:::-;5917:90;;6027:5;6056:6;6049:5;6042:21;6090:4;6083:5;6079:16;6072:23;;6143:4;6135:6;6131:17;6123:6;6119:30;6172:3;6164:6;6161:15;6158:122;;;6191:79;;:::i;:::-;6158:122;6306:6;6289:220;6323:6;6318:3;6315:15;6289:220;;;6398:3;6427:37;6460:3;6448:10;6427:37;:::i;:::-;6422:3;6415:50;6494:4;6489:3;6485:14;6478:21;;6365:144;6349:4;6344:3;6340:14;6333:21;;6289:220;;;6293:21;5907:608;;5805:710;;;;;:::o;6538:370::-;6609:5;6658:3;6651:4;6643:6;6639:17;6635:27;6625:122;;6666:79;;:::i;:::-;6625:122;6783:6;6770:20;6808:94;6898:3;6890:6;6883:4;6875:6;6871:17;6808:94;:::i;:::-;6799:103;;6615:293;6538:370;;;;:::o;6914:539::-;6998:6;7047:2;7035:9;7026:7;7022:23;7018:32;7015:119;;;7053:79;;:::i;:::-;7015:119;7201:1;7190:9;7186:17;7173:31;7231:18;7223:6;7220:30;7217:117;;;7253:79;;:::i;:::-;7217:117;7358:78;7428:7;7419:6;7408:9;7404:22;7358:78;:::i;:::-;7348:88;;7144:302;6914:539;;;;:::o;7459:619::-;7536:6;7544;7552;7601:2;7589:9;7580:7;7576:23;7572:32;7569:119;;;7607:79;;:::i;:::-;7569:119;7727:1;7752:53;7797:7;7788:6;7777:9;7773:22;7752:53;:::i;:::-;7742:63;;7698:117;7854:2;7880:53;7925:7;7916:6;7905:9;7901:22;7880:53;:::i;:::-;7870:63;;7825:118;7982:2;8008:53;8053:7;8044:6;8033:9;8029:22;8008:53;:::i;:::-;7998:63;;7953:118;7459:619;;;;;:::o;8084:329::-;8143:6;8192:2;8180:9;8171:7;8167:23;8163:32;8160:119;;;8198:79;;:::i;:::-;8160:119;8318:1;8343:53;8388:7;8379:6;8368:9;8364:22;8343:53;:::i;:::-;8333:63;;8289:117;8084:329;;;;:::o;8419:86::-;8454:7;8494:4;8487:5;8483:16;8472:27;;8419:86;;;:::o;8511:112::-;8594:22;8610:5;8594:22;:::i;:::-;8589:3;8582:35;8511:112;;:::o;8629:214::-;8718:4;8756:2;8745:9;8741:18;8733:26;;8769:67;8833:1;8822:9;8818:17;8809:6;8769:67;:::i;:::-;8629:214;;;;:::o;8849:329::-;8908:6;8957:2;8945:9;8936:7;8932:23;8928:32;8925:119;;;8963:79;;:::i;:::-;8925:119;9083:1;9108:53;9153:7;9144:6;9133:9;9129:22;9108:53;:::i;:::-;9098:63;;9054:117;8849:329;;;;:::o;9184:116::-;9254:21;9269:5;9254:21;:::i;:::-;9247:5;9244:32;9234:60;;9290:1;9287;9280:12;9234:60;9184:116;:::o;9306:133::-;9349:5;9387:6;9374:20;9365:29;;9403:30;9427:5;9403:30;:::i;:::-;9306:133;;;;:::o;9445:323::-;9501:6;9550:2;9538:9;9529:7;9525:23;9521:32;9518:119;;;9556:79;;:::i;:::-;9518:119;9676:1;9701:50;9743:7;9734:6;9723:9;9719:22;9701:50;:::i;:::-;9691:60;;9647:114;9445:323;;;;:::o;9774:553::-;9951:4;9989:3;9978:9;9974:19;9966:27;;10003:71;10071:1;10060:9;10056:17;10047:6;10003:71;:::i;:::-;10084:72;10152:2;10141:9;10137:18;10128:6;10084:72;:::i;:::-;10166;10234:2;10223:9;10219:18;10210:6;10166:72;:::i;:::-;10248;10316:2;10305:9;10301:18;10292:6;10248:72;:::i;:::-;9774:553;;;;;;;:::o;10333:118::-;10420:24;10438:5;10420:24;:::i;:::-;10415:3;10408:37;10333:118;;:::o;10457:222::-;10550:4;10588:2;10577:9;10573:18;10565:26;;10601:71;10669:1;10658:9;10654:17;10645:6;10601:71;:::i;:::-;10457:222;;;;:::o;10685:474::-;10753:6;10761;10810:2;10798:9;10789:7;10785:23;10781:32;10778:119;;;10816:79;;:::i;:::-;10778:119;10936:1;10961:53;11006:7;10997:6;10986:9;10982:22;10961:53;:::i;:::-;10951:63;;10907:117;11063:2;11089:53;11134:7;11125:6;11114:9;11110:22;11089:53;:::i;:::-;11079:63;;11034:118;10685:474;;;;;:::o;11165:182::-;11305:34;11301:1;11293:6;11289:14;11282:58;11165:182;:::o;11353:366::-;11495:3;11516:67;11580:2;11575:3;11516:67;:::i;:::-;11509:74;;11592:93;11681:3;11592:93;:::i;:::-;11710:2;11705:3;11701:12;11694:19;;11353:366;;;:::o;11725:419::-;11891:4;11929:2;11918:9;11914:18;11906:26;;11978:9;11972:4;11968:20;11964:1;11953:9;11949:17;11942:47;12006:131;12132:4;12006:131;:::i;:::-;11998:139;;11725:419;;;:::o;12150:180::-;12198:77;12195:1;12188:88;12295:4;12292:1;12285:15;12319:4;12316:1;12309:15;12336:305;12376:3;12395:20;12413:1;12395:20;:::i;:::-;12390:25;;12429:20;12447:1;12429:20;:::i;:::-;12424:25;;12583:1;12515:66;12511:74;12508:1;12505:81;12502:107;;;12589:18;;:::i;:::-;12502:107;12633:1;12630;12626:9;12619:16;;12336:305;;;;:::o;12647:180::-;12695:77;12692:1;12685:88;12792:4;12789:1;12782:15;12816:4;12813:1;12806:15;12833:233;12872:3;12895:24;12913:5;12895:24;:::i;:::-;12886:33;;12941:66;12934:5;12931:77;12928:103;;13011:18;;:::i;:::-;12928:103;13058:1;13051:5;13047:13;13040:20;;12833:233;;;:::o;13072:171::-;13212:23;13208:1;13200:6;13196:14;13189:47;13072:171;:::o;13249:366::-;13391:3;13412:67;13476:2;13471:3;13412:67;:::i;:::-;13405:74;;13488:93;13577:3;13488:93;:::i;:::-;13606:2;13601:3;13597:12;13590:19;;13249:366;;;:::o;13621:419::-;13787:4;13825:2;13814:9;13810:18;13802:26;;13874:9;13868:4;13864:20;13860:1;13849:9;13845:17;13838:47;13902:131;14028:4;13902:131;:::i;:::-;13894:139;;13621:419;;;:::o;14046:143::-;14103:5;14134:6;14128:13;14119:22;;14150:33;14177:5;14150:33;:::i;:::-;14046:143;;;;:::o;14195:351::-;14265:6;14314:2;14302:9;14293:7;14289:23;14285:32;14282:119;;;14320:79;;:::i;:::-;14282:119;14440:1;14465:64;14521:7;14512:6;14501:9;14497:22;14465:64;:::i;:::-;14455:74;;14411:128;14195:351;;;;:::o;14552:332::-;14673:4;14711:2;14700:9;14696:18;14688:26;;14724:71;14792:1;14781:9;14777:17;14768:6;14724:71;:::i;:::-;14805:72;14873:2;14862:9;14858:18;14849:6;14805:72;:::i;:::-;14552:332;;;;;:::o;14890:85::-;14935:7;14964:5;14953:16;;14890:85;;;:::o;14981:60::-;15009:3;15030:5;15023:12;;14981:60;;;:::o;15047:158::-;15105:9;15138:61;15156:42;15165:32;15191:5;15165:32;:::i;:::-;15156:42;:::i;:::-;15138:61;:::i;:::-;15125:74;;15047:158;;;:::o;15211:147::-;15306:45;15345:5;15306:45;:::i;:::-;15301:3;15294:58;15211:147;;:::o;15364:807::-;15613:4;15651:3;15640:9;15636:19;15628:27;;15665:71;15733:1;15722:9;15718:17;15709:6;15665:71;:::i;:::-;15746:72;15814:2;15803:9;15799:18;15790:6;15746:72;:::i;:::-;15828:80;15904:2;15893:9;15889:18;15880:6;15828:80;:::i;:::-;15918;15994:2;15983:9;15979:18;15970:6;15918:80;:::i;:::-;16008:73;16076:3;16065:9;16061:19;16052:6;16008:73;:::i;:::-;16091;16159:3;16148:9;16144:19;16135:6;16091:73;:::i;:::-;15364:807;;;;;;;;;:::o;16177:143::-;16234:5;16265:6;16259:13;16250:22;;16281:33;16308:5;16281:33;:::i;:::-;16177:143;;;;:::o;16326:663::-;16414:6;16422;16430;16479:2;16467:9;16458:7;16454:23;16450:32;16447:119;;;16485:79;;:::i;:::-;16447:119;16605:1;16630:64;16686:7;16677:6;16666:9;16662:22;16630:64;:::i;:::-;16620:74;;16576:128;16743:2;16769:64;16825:7;16816:6;16805:9;16801:22;16769:64;:::i;:::-;16759:74;;16714:129;16882:2;16908:64;16964:7;16955:6;16944:9;16940:22;16908:64;:::i;:::-;16898:74;;16853:129;16326:663;;;;;:::o;16995:332::-;17116:4;17154:2;17143:9;17139:18;17131:26;;17167:71;17235:1;17224:9;17220:17;17211:6;17167:71;:::i;:::-;17248:72;17316:2;17305:9;17301:18;17292:6;17248:72;:::i;:::-;16995:332;;;;;:::o;17333:137::-;17387:5;17418:6;17412:13;17403:22;;17434:30;17458:5;17434:30;:::i;:::-;17333:137;;;;:::o;17476:345::-;17543:6;17592:2;17580:9;17571:7;17567:23;17563:32;17560:119;;;17598:79;;:::i;:::-;17560:119;17718:1;17743:61;17796:7;17787:6;17776:9;17772:22;17743:61;:::i;:::-;17733:71;;17689:125;17476:345;;;;:::o;17827:223::-;17967:34;17963:1;17955:6;17951:14;17944:58;18036:6;18031:2;18023:6;18019:15;18012:31;17827:223;:::o;18056:366::-;18198:3;18219:67;18283:2;18278:3;18219:67;:::i;:::-;18212:74;;18295:93;18384:3;18295:93;:::i;:::-;18413:2;18408:3;18404:12;18397:19;;18056:366;;;:::o;18428:419::-;18594:4;18632:2;18621:9;18617:18;18609:26;;18681:9;18675:4;18671:20;18667:1;18656:9;18652:17;18645:47;18709:131;18835:4;18709:131;:::i;:::-;18701:139;;18428:419;;;:::o;18853:221::-;18993:34;18989:1;18981:6;18977:14;18970:58;19062:4;19057:2;19049:6;19045:15;19038:29;18853:221;:::o;19080:366::-;19222:3;19243:67;19307:2;19302:3;19243:67;:::i;:::-;19236:74;;19319:93;19408:3;19319:93;:::i;:::-;19437:2;19432:3;19428:12;19421:19;;19080:366;;;:::o;19452:419::-;19618:4;19656:2;19645:9;19641:18;19633:26;;19705:9;19699:4;19695:20;19691:1;19680:9;19676:17;19669:47;19733:131;19859:4;19733:131;:::i;:::-;19725:139;;19452:419;;;:::o;19877:172::-;20017:24;20013:1;20005:6;20001:14;19994:48;19877:172;:::o;20055:366::-;20197:3;20218:67;20282:2;20277:3;20218:67;:::i;:::-;20211:74;;20294:93;20383:3;20294:93;:::i;:::-;20412:2;20407:3;20403:12;20396:19;;20055:366;;;:::o;20427:419::-;20593:4;20631:2;20620:9;20616:18;20608:26;;20680:9;20674:4;20670:20;20666:1;20655:9;20651:17;20644:47;20708:131;20834:4;20708:131;:::i;:::-;20700:139;;20427:419;;;:::o;20852:175::-;20992:27;20988:1;20980:6;20976:14;20969:51;20852:175;:::o;21033:366::-;21175:3;21196:67;21260:2;21255:3;21196:67;:::i;:::-;21189:74;;21272:93;21361:3;21272:93;:::i;:::-;21390:2;21385:3;21381:12;21374:19;;21033:366;;;:::o;21405:419::-;21571:4;21609:2;21598:9;21594:18;21586:26;;21658:9;21652:4;21648:20;21644:1;21633:9;21629:17;21622:47;21686:131;21812:4;21686:131;:::i;:::-;21678:139;;21405:419;;;:::o;21830:170::-;21970:22;21966:1;21958:6;21954:14;21947:46;21830:170;:::o;22006:366::-;22148:3;22169:67;22233:2;22228:3;22169:67;:::i;:::-;22162:74;;22245:93;22334:3;22245:93;:::i;:::-;22363:2;22358:3;22354:12;22347:19;;22006:366;;;:::o;22378:419::-;22544:4;22582:2;22571:9;22567:18;22559:26;;22631:9;22625:4;22621:20;22617:1;22606:9;22602:17;22595:47;22659:131;22785:4;22659:131;:::i;:::-;22651:139;;22378:419;;;:::o;22803:171::-;22943:23;22939:1;22931:6;22927:14;22920:47;22803:171;:::o;22980:366::-;23122:3;23143:67;23207:2;23202:3;23143:67;:::i;:::-;23136:74;;23219:93;23308:3;23219:93;:::i;:::-;23337:2;23332:3;23328:12;23321:19;;22980:366;;;:::o;23352:419::-;23518:4;23556:2;23545:9;23541:18;23533:26;;23605:9;23599:4;23595:20;23591:1;23580:9;23576:17;23569:47;23633:131;23759:4;23633:131;:::i;:::-;23625:139;;23352:419;;;:::o;23777:191::-;23817:4;23837:20;23855:1;23837:20;:::i;:::-;23832:25;;23871:20;23889:1;23871:20;:::i;:::-;23866:25;;23910:1;23907;23904:8;23901:34;;;23915:18;;:::i;:::-;23901:34;23960:1;23957;23953:9;23945:17;;23777:191;;;;:::o;23974:348::-;24014:7;24037:20;24055:1;24037:20;:::i;:::-;24032:25;;24071:20;24089:1;24071:20;:::i;:::-;24066:25;;24259:1;24191:66;24187:74;24184:1;24181:81;24176:1;24169:9;24162:17;24158:105;24155:131;;;24266:18;;:::i;:::-;24155:131;24314:1;24311;24307:9;24296:20;;23974:348;;;;:::o;24328:180::-;24376:77;24373:1;24366:88;24473:4;24470:1;24463:15;24497:4;24494:1;24487:15;24514:185;24554:1;24571:20;24589:1;24571:20;:::i;:::-;24566:25;;24605:20;24623:1;24605:20;:::i;:::-;24600:25;;24644:1;24634:35;;24649:18;;:::i;:::-;24634:35;24691:1;24688;24684:9;24679:14;;24514:185;;;;:::o;24705:220::-;24845:34;24841:1;24833:6;24829:14;24822:58;24914:3;24909:2;24901:6;24897:15;24890:28;24705:220;:::o;24931:366::-;25073:3;25094:67;25158:2;25153:3;25094:67;:::i;:::-;25087:74;;25170:93;25259:3;25170:93;:::i;:::-;25288:2;25283:3;25279:12;25272:19;;24931:366;;;:::o;25303:419::-;25469:4;25507:2;25496:9;25492:18;25484:26;;25556:9;25550:4;25546:20;25542:1;25531:9;25527:17;25520:47;25584:131;25710:4;25584:131;:::i;:::-;25576:139;;25303:419;;;:::o;25728:229::-;25868:34;25864:1;25856:6;25852:14;25845:58;25937:12;25932:2;25924:6;25920:15;25913:37;25728:229;:::o;25963:366::-;26105:3;26126:67;26190:2;26185:3;26126:67;:::i;:::-;26119:74;;26202:93;26291:3;26202:93;:::i;:::-;26320:2;26315:3;26311:12;26304:19;;25963:366;;;:::o;26335:419::-;26501:4;26539:2;26528:9;26524:18;26516:26;;26588:9;26582:4;26578:20;26574:1;26563:9;26559:17;26552:47;26616:131;26742:4;26616:131;:::i;:::-;26608:139;;26335:419;;;:::o;26760:114::-;26827:6;26861:5;26855:12;26845:22;;26760:114;;;:::o;26880:184::-;26979:11;27013:6;27008:3;27001:19;27053:4;27048:3;27044:14;27029:29;;26880:184;;;;:::o;27070:132::-;27137:4;27160:3;27152:11;;27190:4;27185:3;27181:14;27173:22;;27070:132;;;:::o;27208:108::-;27285:24;27303:5;27285:24;:::i;:::-;27280:3;27273:37;27208:108;;:::o;27322:179::-;27391:10;27412:46;27454:3;27446:6;27412:46;:::i;:::-;27490:4;27485:3;27481:14;27467:28;;27322:179;;;;:::o;27507:113::-;27577:4;27609;27604:3;27600:14;27592:22;;27507:113;;;:::o;27656:732::-;27775:3;27804:54;27852:5;27804:54;:::i;:::-;27874:86;27953:6;27948:3;27874:86;:::i;:::-;27867:93;;27984:56;28034:5;27984:56;:::i;:::-;28063:7;28094:1;28079:284;28104:6;28101:1;28098:13;28079:284;;;28180:6;28174:13;28207:63;28266:3;28251:13;28207:63;:::i;:::-;28200:70;;28293:60;28346:6;28293:60;:::i;:::-;28283:70;;28139:224;28126:1;28123;28119:9;28114:14;;28079:284;;;28083:14;28379:3;28372:10;;27780:608;;;27656:732;;;;:::o;28394:831::-;28657:4;28695:3;28684:9;28680:19;28672:27;;28709:71;28777:1;28766:9;28762:17;28753:6;28709:71;:::i;:::-;28790:80;28866:2;28855:9;28851:18;28842:6;28790:80;:::i;:::-;28917:9;28911:4;28907:20;28902:2;28891:9;28887:18;28880:48;28945:108;29048:4;29039:6;28945:108;:::i;:::-;28937:116;;29063:72;29131:2;29120:9;29116:18;29107:6;29063:72;:::i;:::-;29145:73;29213:3;29202:9;29198:19;29189:6;29145:73;:::i;:::-;28394:831;;;;;;;;:::o;29231:177::-;29371:29;29367:1;29359:6;29355:14;29348:53;29231:177;:::o;29414:366::-;29556:3;29577:67;29641:2;29636:3;29577:67;:::i;:::-;29570:74;;29653:93;29742:3;29653:93;:::i;:::-;29771:2;29766:3;29762:12;29755:19;;29414:366;;;:::o;29786:419::-;29952:4;29990:2;29979:9;29975:18;29967:26;;30039:9;30033:4;30029:20;30025:1;30014:9;30010:17;30003:47;30067:131;30193:4;30067:131;:::i;:::-;30059:139;;29786:419;;;:::o

Swarm Source

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

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