ETH Price: $3,262.27 (-0.59%)
Gas: 3 Gwei

Contract

0x2F272D5d4002c0300DD418162E6A14965fC60DdD
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve201899602024-06-28 11:43:2330 days ago1719575003IN
0x2F272D5d...65fC60DdD
0 ETH0.000200814.31437881
Approve144837422022-03-29 22:15:56851 days ago1648592156IN
0x2F272D5d...65fC60DdD
0 ETH0.0023146849.66592315
Approve144494772022-03-24 14:17:06857 days ago1648131426IN
0x2F272D5d...65fC60DdD
0 ETH0.0024978853.59683692
Approve144468622022-03-24 4:32:47857 days ago1648096367IN
0x2F272D5d...65fC60DdD
0 ETH0.0021474946.07871222
Approve144412242022-03-23 7:28:41858 days ago1648020521IN
0x2F272D5d...65fC60DdD
0 ETH0.0013314928.56979497
Approve144406712022-03-23 5:24:06858 days ago1648013046IN
0x2F272D5d...65fC60DdD
0 ETH0.001250926.84054767
Approve144404612022-03-23 4:36:08858 days ago1648010168IN
0x2F272D5d...65fC60DdD
0 ETH0.0025786355.3296301
Approve144394812022-03-23 0:59:52858 days ago1647997192IN
0x2F272D5d...65fC60DdD
0 ETH0.0014022330.08775148
Approve144393392022-03-23 0:25:19858 days ago1647995119IN
0x2F272D5d...65fC60DdD
0 ETH0.0012687527.22353698
Approve144384922022-03-22 21:16:27858 days ago1647983787IN
0x2F272D5d...65fC60DdD
0 ETH0.0031596567.79639934
Approve144382262022-03-22 20:20:42858 days ago1647980442IN
0x2F272D5d...65fC60DdD
0 ETH0.002247848.23106809
Approve144380472022-03-22 19:41:00858 days ago1647978060IN
0x2F272D5d...65fC60DdD
0 ETH0.0021188845.46478485
Approve144379562022-03-22 19:19:47858 days ago1647976787IN
0x2F272D5d...65fC60DdD
0 ETH0.002350850.44110253
Approve144379282022-03-22 19:14:23858 days ago1647976463IN
0x2F272D5d...65fC60DdD
0 ETH0.0023030849.41722885
Approve144379062022-03-22 19:08:55858 days ago1647976135IN
0x2F272D5d...65fC60DdD
0 ETH0.0023851451.17788561
Approve144377882022-03-22 18:42:53858 days ago1647974573IN
0x2F272D5d...65fC60DdD
0 ETH0.0028864561.93448713
Approve144377422022-03-22 18:32:16858 days ago1647973936IN
0x2F272D5d...65fC60DdD
0 ETH0.0020721444.46179838
Approve144377272022-03-22 18:29:42858 days ago1647973782IN
0x2F272D5d...65fC60DdD
0 ETH0.0022084647.38676157
Approve144375432022-03-22 17:46:51858 days ago1647971211IN
0x2F272D5d...65fC60DdD
0 ETH0.0026027555.84709088
Approve144375282022-03-22 17:44:14858 days ago1647971054IN
0x2F272D5d...65fC60DdD
0 ETH0.0025877855.52587666
Approve144374922022-03-22 17:35:52858 days ago1647970552IN
0x2F272D5d...65fC60DdD
0 ETH0.003175668.1388011
Approve144374852022-03-22 17:34:20858 days ago1647970460IN
0x2F272D5d...65fC60DdD
0 ETH0.0031503767.5973468
Approve144374802022-03-22 17:33:05858 days ago1647970385IN
0x2F272D5d...65fC60DdD
0 ETH0.0026623757.12642949
Approve144374602022-03-22 17:27:13858 days ago1647970033IN
0x2F272D5d...65fC60DdD
0 ETH0.0021678746.51596043
Approve144374512022-03-22 17:25:33858 days ago1647969933IN
0x2F272D5d...65fC60DdD
0 ETH0.0022705148.71817304
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
144424122022-03-23 12:00:18858 days ago1648036818
0x2F272D5d...65fC60DdD
0.00146709 ETH
144424122022-03-23 12:00:18858 days ago1648036818
0x2F272D5d...65fC60DdD
0.00027224 ETH
144424122022-03-23 12:00:18858 days ago1648036818
0x2F272D5d...65fC60DdD
0.00068276 ETH
144424122022-03-23 12:00:18858 days ago1648036818
0x2F272D5d...65fC60DdD
0.00017069 ETH
144424122022-03-23 12:00:18858 days ago1648036818
0x2F272D5d...65fC60DdD
0.0020483 ETH
144417692022-03-23 9:39:01858 days ago1648028341
0x2F272D5d...65fC60DdD
0.00239655 ETH
144417692022-03-23 9:39:01858 days ago1648028341
0x2F272D5d...65fC60DdD
0.00044503 ETH
144417692022-03-23 9:39:01858 days ago1648028341
0x2F272D5d...65fC60DdD
0.00111514 ETH
144417692022-03-23 9:39:01858 days ago1648028341
0x2F272D5d...65fC60DdD
0.00027878 ETH
144417692022-03-23 9:39:01858 days ago1648028341
0x2F272D5d...65fC60DdD
0.00334544 ETH
144412752022-03-23 7:40:17858 days ago1648021217
0x2F272D5d...65fC60DdD
0.00246747 ETH
144412752022-03-23 7:40:17858 days ago1648021217
0x2F272D5d...65fC60DdD
0.00045822 ETH
144412752022-03-23 7:40:17858 days ago1648021217
0x2F272D5d...65fC60DdD
0.00114814 ETH
144412752022-03-23 7:40:17858 days ago1648021217
0x2F272D5d...65fC60DdD
0.00028703 ETH
144412752022-03-23 7:40:17858 days ago1648021217
0x2F272D5d...65fC60DdD
0.00344443 ETH
144412702022-03-23 7:39:15858 days ago1648021155
0x2F272D5d...65fC60DdD
0.00252258 ETH
144412702022-03-23 7:39:15858 days ago1648021155
0x2F272D5d...65fC60DdD
0.00046846 ETH
144412702022-03-23 7:39:15858 days ago1648021155
0x2F272D5d...65fC60DdD
0.00117378 ETH
144412702022-03-23 7:39:15858 days ago1648021155
0x2F272D5d...65fC60DdD
0.00029344 ETH
144412702022-03-23 7:39:15858 days ago1648021155
0x2F272D5d...65fC60DdD
0.00352134 ETH
144411142022-03-23 7:02:31858 days ago1648018951
0x2F272D5d...65fC60DdD
0.00457362 ETH
144411142022-03-23 7:02:31858 days ago1648018951
0x2F272D5d...65fC60DdD
0.00085059 ETH
144411142022-03-23 7:02:31858 days ago1648018951
0x2F272D5d...65fC60DdD
0.00212744 ETH
144411142022-03-23 7:02:31858 days ago1648018951
0x2F272D5d...65fC60DdD
0.00053186 ETH
144411142022-03-23 7:02:31858 days ago1648018951
0x2F272D5d...65fC60DdD
0.00638233 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BestTube

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.12;

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 BestTube is Context, IERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 private uniswapV2Router;

    mapping (address => uint) private cooldown;

    mapping (address => uint256) private _rOwned;

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

    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;

    bool private tradingOpen;
    bool private swapping;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;

    string private constant _name = "Beast Tube";
    string private constant _symbol = "BTUBE";

    uint8 private constant _decimals = 9;

    uint256 private constant _tTotal = 1e18 * (10**_decimals);
    uint256 private _maxBuyAmount = _tTotal;
    uint256 private _maxSellAmount = _tTotal;
    uint256 private _maxWalletAmount = _tTotal;
    uint256 private tradingActiveBlock = 0;
    uint256 private blocksToBlacklist = 10;
    uint256 private _buyProjectFee = 3;
    uint256 private _previousBuyProjectFee = _buyProjectFee;
    uint256 private _buyLiquidityFee = 3;
    uint256 private _previousBuyLiquidityFee = _buyLiquidityFee;
    uint256 private _buyCharityFee = 2;
    uint256 private _previousBuyCharityFee = _buyCharityFee;
    uint256 private _buyDevelopmentFee = 1;
    uint256 private _previousBuyDevelopmentFee = _buyDevelopmentFee;
    uint256 private _sellProjectFee = 4;
    uint256 private _previousSellProjectFee = _sellProjectFee;
    uint256 private _sellLiquidityFee = 4;
    uint256 private _previousSellLiquidityFee = _sellLiquidityFee;
    uint256 private _sellCharityFee = 3;
    uint256 private _previousSellCharityFee = _sellCharityFee;
    uint256 private _sellDevelopmentFee = 1;
    uint256 private _previousSellDevelopmentFee = _sellDevelopmentFee;
    uint256 private tokensForCharity;
    uint256 private tokensForProject;
    uint256 private tokensForLiquidity;
    uint256 private tokensForDevelopment;
    uint256 private swapTokensAtAmount = 0;

    address payable private _projectWallet;
    address payable private _liquidityWallet;
    address payable private _developmentWallet;
    address private uniswapV2Pair;
    
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    constructor (address projectWallet, address liquidityWallet, address developmentWallet) {
        _projectWallet = payable(projectWallet);
        _liquidityWallet = payable(liquidityWallet);
        _developmentWallet = payable(developmentWallet);
        _rOwned[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_projectWallet] = true;
        _isExcludedFromFee[_liquidityWallet] = true;
        _isExcludedFromFee[_developmentWallet] = 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 _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 setSwapEnabled(bool onoff) external onlyOwner(){
        swapEnabled = onoff;
    }

    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(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool takeFee = false;
        bool shouldSwap = false;
        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            require(!bots[from] && !bots[to]);

            if (cooldownEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)){
                    require(cooldown[tx.origin] < block.number - 1 && cooldown[to] < block.number - 1, "_transfer:: Transfer Delay enabled.  Try again later.");
                    cooldown[tx.origin] = block.number;
                    cooldown[to] = block.number;
                }
            }

            takeFee = true;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(amount <= _maxBuyAmount, "Transfer amount exceeds the maxBuyAmount.");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Exceeds maximum wallet token amount.");
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !_isExcludedFromFee[from]) {
                require(amount <= _maxSellAmount, "Transfer amount exceeds the maxSellAmount.");
                shouldSwap = true;
            }
        }

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = (contractTokenBalance > swapTokensAtAmount) && shouldSwap;

        if (canSwap && swapEnabled && !swapping && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        _tokenTransfer(from,to,amount,takeFee, shouldSwap);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForCharity + tokensForProject + tokensForDevelopment;
        bool success;
        
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

        if(contractBalance > swapTokensAtAmount * 10) {
            contractBalance = swapTokensAtAmount * 10;
        }
        
        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);
        
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH); 
        
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForReward = ethBalance.mul(tokensForCharity).div(totalTokensToSwap);
        uint256 ethForProject = ethBalance.mul(tokensForProject).div(totalTokensToSwap);
        uint256 ethForDevelopment = ethBalance.mul(tokensForDevelopment).div(totalTokensToSwap);
        
        
        uint256 ethForLiquidity = ethBalance - ethForReward - ethForProject - ethForDevelopment;
        
        
        tokensForLiquidity = 0;
        tokensForCharity = 0;
        tokensForProject = 0;
        tokensForDevelopment = 0;

        (success,) = address(_developmentWallet).call{value: ethForDevelopment}("");
        
        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity);
        }
        
        
        (success,) = address(_projectWallet).call{value: address(this).balance}("");
    }

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            _liquidityWallet,
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _projectWallet.transfer(amount.div(2));
        _developmentWallet.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is 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;
        _maxBuyAmount = 5e15 * (10**_decimals);
        _maxSellAmount = 3e15 * (10**_decimals);
        _maxWalletAmount = 2e16 * (10**_decimals);
        swapTokensAtAmount = 3e14 * (10**_decimals);
        tradingOpen = true;
        tradingActiveBlock = block.number;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function setMaxBuyAmount(uint256 maxBuy) public onlyOwner {
        require(maxBuy >= 1e14 * (10**_decimals), "Max buy amount cannot be lower than 0.01% total supply.");
        _maxBuyAmount = maxBuy;
    }

    function setMaxSellAmount(uint256 maxSell) public onlyOwner {
        require(maxSell >= 1e14 * (10**_decimals), "Max sell amount cannot be lower than 0.01% total supply.");
        _maxSellAmount = maxSell;
    }
    
    function setMaxWalletAmount(uint256 maxToken) public onlyOwner {
        require(maxToken >= 1e15 * (10**_decimals), "Max wallet amount cannot be lower than 0.1% total supply.");
        _maxWalletAmount = maxToken;
    }
    
    function setSwapTokensAtAmount(uint256 newAmount) public onlyOwner {
        require(newAmount >= 1e14 * (10**_decimals), "Swap amount cannot be lower than 0.01% total supply.");
        require(newAmount <= 5e15 * (10**_decimals), "Swap amount cannot be higher than 0.5% total supply.");
        swapTokensAtAmount = newAmount;
    }

    function setProjectWallet(address projectWallet) public onlyOwner() {
        require(projectWallet != address(0), "projectWallet address cannot be 0");
        _isExcludedFromFee[_projectWallet] = false;
        _projectWallet = payable(projectWallet);
        _isExcludedFromFee[_projectWallet] = true;
    }

    function setLiquidityWallet(address liquidityWallet) public onlyOwner() {
        require(liquidityWallet != address(0), "liquidityWallet address cannot be 0");
        _isExcludedFromFee[_liquidityWallet] = false;
        _liquidityWallet = payable(liquidityWallet);
        _isExcludedFromFee[_liquidityWallet] = true;
    }

    function setExcludedFromFees(address[] memory accounts, bool exempt) public onlyOwner {
        for (uint i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = exempt;
        }
    }
    
    function setBots(address[] memory accounts, bool exempt) public onlyOwner {
        for (uint i = 0; i < accounts.length; i++) {
            bots[accounts[i]] = exempt;
        }
    }

    function setBuyFee(uint256 buyProjectFee, uint256 buyLiquidityFee, uint256 buyRewardFee, uint256 buyDevelopmentFee) external onlyOwner {
        require(buyProjectFee + buyLiquidityFee + buyRewardFee + buyDevelopmentFee <= 30, "Must keep buy taxes below 30%");
        _buyProjectFee = buyProjectFee;
        _buyLiquidityFee = buyLiquidityFee;
        _buyCharityFee = buyRewardFee;
        _buyDevelopmentFee = buyDevelopmentFee;
    }

    function setSellFee(uint256 sellProjectFee, uint256 sellLiquidityFee, uint256 sellRewardFee, uint256 sellDevelopmentFee) external onlyOwner {
        require(sellProjectFee + sellLiquidityFee + sellRewardFee + sellDevelopmentFee <= 60, "Must keep sell taxes below 30%");
        _sellProjectFee = sellProjectFee;
        _sellLiquidityFee = sellLiquidityFee;
        _sellCharityFee = sellRewardFee;
        _sellDevelopmentFee = sellDevelopmentFee;
    }

    function setBlocksToBlacklist(uint256 blocks) public onlyOwner {
        blocksToBlacklist = blocks;
    }

    function removeAllFee() private {
        if(_buyProjectFee == 0 && _buyLiquidityFee == 0 && _buyCharityFee == 0 && _buyDevelopmentFee == 0 && _sellProjectFee == 0 && _sellLiquidityFee == 0 && _sellCharityFee == 0 && _sellDevelopmentFee == 0) return;
        
        _previousBuyProjectFee = _buyProjectFee;
        _previousBuyLiquidityFee = _buyLiquidityFee;
        _previousBuyCharityFee = _buyCharityFee;
        _previousBuyDevelopmentFee = _buyDevelopmentFee;
        _previousSellProjectFee = _sellProjectFee;
        _previousSellLiquidityFee = _sellLiquidityFee;
        _previousSellCharityFee = _sellCharityFee;
        _previousSellDevelopmentFee = _sellDevelopmentFee;
        
        _buyProjectFee = 0;
        _buyLiquidityFee = 0;
        _buyCharityFee = 0;
        _buyDevelopmentFee = 0;
        _sellProjectFee = 0;
        _sellLiquidityFee = 0;
        _sellCharityFee = 0;
        _sellDevelopmentFee = 0;
    }
    
    function restoreAllFee() private {
        _buyProjectFee = _previousBuyProjectFee;
        _buyLiquidityFee = _previousBuyLiquidityFee;
        _buyCharityFee = _previousBuyCharityFee;
        _buyDevelopmentFee = _previousBuyDevelopmentFee;
        _sellProjectFee = _previousSellProjectFee;
        _sellLiquidityFee = _previousSellLiquidityFee;
        _sellCharityFee = _previousSellCharityFee;
        _sellDevelopmentFee = _previousSellDevelopmentFee;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee, bool isSell) private {
        if(!takeFee) {
            removeAllFee();
        } else {
            amount = _takeFees(sender, amount, isSell);
        }

        _transferStandard(sender, recipient, amount);
        
        if(!takeFee) {
            restoreAllFee();
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        _rOwned[sender] = _rOwned[sender].sub(tAmount);
        _rOwned[recipient] = _rOwned[recipient].add(tAmount);
        emit Transfer(sender, recipient, tAmount);
    }

    function _takeFees(address sender, uint256 amount, bool isSell) private returns (uint256) {
        uint256 _totalFees;
        uint256 pjctFee;
        uint256 liqFee;
        uint256 chrtyFee;
        uint256 devFee;
        if(tradingActiveBlock + blocksToBlacklist >= block.number){
            _totalFees = 99;
            pjctFee = 25;
            liqFee = 25;
            chrtyFee = 24;
            devFee = 25;
        } else {
            _totalFees = _getTotalFees(isSell);
            if (isSell) {
                pjctFee = _sellProjectFee;
                liqFee = _sellLiquidityFee;
                chrtyFee = _sellCharityFee;
                devFee = _sellDevelopmentFee;
            } else {
                pjctFee = _buyProjectFee;
                liqFee = _buyLiquidityFee;
                chrtyFee = _buyCharityFee;
                devFee = _buyDevelopmentFee;
            }
        }

        uint256 fees = amount.mul(_totalFees).div(100);
        tokensForCharity += fees * chrtyFee / _totalFees;
        tokensForProject += fees * pjctFee / _totalFees;
        tokensForLiquidity += fees * liqFee / _totalFees;
        tokensForDevelopment += fees * devFee / _totalFees;
            
        if(fees > 0) {
            _transferStandard(sender, address(this), fees);
        }
            
        return amount -= fees;
    }

    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 withdrawStuckETH() external onlyOwner {
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function _getTotalFees(bool isSell) private view returns(uint256) {
        if (isSell) {
            return _sellProjectFee + _sellLiquidityFee + _sellCharityFee + _sellDevelopmentFee;
        }
        return _buyProjectFee + _buyLiquidityFee + _buyCharityFee + _buyDevelopmentFee;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"projectWallet","type":"address"},{"internalType":"address","name":"liquidityWallet","type":"address"},{"internalType":"address","name":"developmentWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"setBlocksToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyProjectFee","type":"uint256"},{"internalType":"uint256","name":"buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"buyRewardFee","type":"uint256"},{"internalType":"uint256","name":"buyDevelopmentFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxToken","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"projectWallet","type":"address"}],"name":"setProjectWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellProjectFee","type":"uint256"},{"internalType":"uint256","name":"sellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"sellRewardFee","type":"uint256"},{"internalType":"uint256","name":"sellDevelopmentFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","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"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526008805464ffffff000019169055620000206009600a620003b3565b6200003490670de0b6b3a7640000620003cb565b6009556009600a620000479190620003b3565b6200005b90670de0b6b3a7640000620003cb565b600a556009600a6200006e9190620003b3565b6200008290670de0b6b3a7640000620003cb565b600b556000600c55600a600d556003600e55600e54600f55600360105560105460115560026012556012546013556001601455601454601555600460165560165460175560046018556018546019556003601a55601a54601b556001601c55601c54601d556000602255348015620000f957600080fd5b5060405162003038380380620030388339810160408190526200011c916200040a565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602380546001600160a01b038086166001600160a01b031992831617909255602480548584169083161790556025805492841692909116919091179055620001a86009600a620003b3565b620001bc90670de0b6b3a7640000620003cb565b3360008181526004602090815260408083209490945581546001600160a01b03908116835260069091528382208054600160ff199182168117909255308452858420805482168317905560235483168452858420805482168317905560245483168452858420805482168317905560255490921683529382208054909116909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002706009600a620003b3565b6200028490670de0b6b3a7640000620003cb565b60405190815260200160405180910390a350505062000454565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002f5578160001904821115620002d957620002d96200029e565b80851615620002e757918102915b93841c9390800290620002b9565b509250929050565b6000826200030e57506001620003ad565b816200031d57506000620003ad565b8160018114620003365760028114620003415762000361565b6001915050620003ad565b60ff8411156200035557620003556200029e565b50506001821b620003ad565b5060208310610133831016604e8410600b841016171562000386575081810a620003ad565b620003928383620002b4565b8060001904821115620003a957620003a96200029e565b0290505b92915050565b6000620003c460ff841683620002fd565b9392505050565b6000816000190483118215151615620003e857620003e86200029e565b500290565b80516001600160a01b03811681146200040557600080fd5b919050565b6000806000606084860312156200042057600080fd5b6200042b84620003ed565b92506200043b60208501620003ed565b91506200044b60408501620003ed565b90509250925092565b612bd480620004646000396000f3fe6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063dd62ed3e1161008a578063e6f7ef4d11610064578063e6f7ef4d14610523578063e99c9d0914610543578063f34eb0b814610563578063f5648a4f1461058357600080fd5b8063dd62ed3e1461049d578063e01af92c146104e3578063e653da081461050357600080fd5b8063a9059cbb116100c6578063a9059cbb14610433578063afa4f3b214610453578063c3c8cd8014610473578063c9567bf91461048857600080fd5b80638da5cb5b146103bd57806395d89b41146103e55780639c0db5f31461041357600080fd5b8063313ce5671161015957806370a082311161013357806370a0823114610332578063715018a6146103685780638a7804471461037d5780638c5a133d1461039d57600080fd5b8063313ce567146102e15780635932ead1146102fd5780636fc3eaec1461031d57600080fd5b806318160ddd1161019557806318160ddd1461025e57806323b872dd1461028157806327a14fc2146102a1578063296f0a0c146102c157600080fd5b806306fdde03146101c7578063095ea7b31461020c578063105222f91461023c57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600a8152694265617374205475626560b01b60208201525b60405161020391906125d8565b60405180910390f35b34801561021857600080fd5b5061022c610227366004612652565b610598565b6040519015158152602001610203565b34801561024857600080fd5b5061025c6102573660046126ad565b6105af565b005b34801561026a57600080fd5b5061027361064e565b604051908152602001610203565b34801561028d57600080fd5b5061022c61029c366004612784565b610673565b3480156102ad57600080fd5b5061025c6102bc3660046127c5565b6106dc565b3480156102cd57600080fd5b5061025c6102dc3660046127de565b61079d565b3480156102ed57600080fd5b5060405160098152602001610203565b34801561030957600080fd5b5061025c6103183660046127fb565b610879565b34801561032957600080fd5b5061025c6108c3565b34801561033e57600080fd5b5061027361034d3660046127de565b6001600160a01b031660009081526004602052604090205490565b34801561037457600080fd5b5061025c6108fa565b34801561038957600080fd5b5061025c6103983660046127de565b61096e565b3480156103a957600080fd5b5061025c6103b8366004612818565b610a48565b3480156103c957600080fd5b506000546040516001600160a01b039091168152602001610203565b3480156103f157600080fd5b50604080518082019091526005815264425455424560d81b60208201526101f6565b34801561041f57600080fd5b5061025c61042e3660046126ad565b610af6565b34801561043f57600080fd5b5061022c61044e366004612652565b610b87565b34801561045f57600080fd5b5061025c61046e3660046127c5565b610b94565b34801561047f57600080fd5b5061025c610cd4565b34801561049457600080fd5b5061025c610d17565b3480156104a957600080fd5b506102736104b836600461284a565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156104ef57600080fd5b5061025c6104fe3660046127fb565b611110565b34801561050f57600080fd5b5061025c61051e366004612818565b611158565b34801561052f57600080fd5b5061025c61053e3660046127c5565b611206565b34801561054f57600080fd5b5061025c61055e3660046127c5565b611235565b34801561056f57600080fd5b5061025c61057e3660046127c5565b6112f5565b34801561058f57600080fd5b5061025c6113b5565b60006105a533848461142c565b5060015b92915050565b6000546001600160a01b031633146105e25760405162461bcd60e51b81526004016105d990612883565b60405180910390fd5b60005b8251811015610649578160066000858481518110610605576106056128b8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610641816128e4565b9150506105e5565b505050565b600061065c6009600a6129e3565b61066e90670de0b6b3a76400006129f2565b905090565b6000610680848484611551565b6106d284336106cd85604051806060016040528060288152602001612b77602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611b89565b61142c565b5060019392505050565b6000546001600160a01b031633146107065760405162461bcd60e51b81526004016105d990612883565b6107126009600a6129e3565b6107239066038d7ea4c680006129f2565b8110156107985760405162461bcd60e51b815260206004820152603960248201527f4d61782077616c6c657420616d6f756e742063616e6e6f74206265206c6f776560448201527f72207468616e20302e312520746f74616c20737570706c792e0000000000000060648201526084016105d9565b600b55565b6000546001600160a01b031633146107c75760405162461bcd60e51b81526004016105d990612883565b6001600160a01b0381166108295760405162461bcd60e51b815260206004820152602360248201527f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260448201526206520360ec1b60648201526084016105d9565b602480546001600160a01b03908116600090815260066020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b031633146108a35760405162461bcd60e51b81526004016105d990612883565b600880549115156401000000000264ff0000000019909216919091179055565b6000546001600160a01b031633146108ed5760405162461bcd60e51b81526004016105d990612883565b476108f781611bc3565b50565b6000546001600160a01b031633146109245760405162461bcd60e51b81526004016105d990612883565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109985760405162461bcd60e51b81526004016105d990612883565b6001600160a01b0381166109f85760405162461bcd60e51b815260206004820152602160248201527f70726f6a65637457616c6c657420616464726573732063616e6e6f74206265206044820152600360fc1b60648201526084016105d9565b602380546001600160a01b03908116600090815260066020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b03163314610a725760405162461bcd60e51b81526004016105d990612883565b601e8183610a808688612a11565b610a8a9190612a11565b610a949190612a11565b1115610ae25760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f772033302500000060448201526064016105d9565b600e93909355601091909155601255601455565b6000546001600160a01b03163314610b205760405162461bcd60e51b81526004016105d990612883565b60005b8251811015610649578160076000858481518110610b4357610b436128b8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b7f816128e4565b915050610b23565b60006105a5338484611551565b6000546001600160a01b03163314610bbe5760405162461bcd60e51b81526004016105d990612883565b610bca6009600a6129e3565b610bda90655af3107a40006129f2565b811015610c465760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e604482015273101817181892903a37ba30b61039bab838363c9760611b60648201526084016105d9565b610c526009600a6129e3565b610c63906611c37937e080006129f2565b811115610ccf5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016105d9565b602255565b6000546001600160a01b03163314610cfe5760405162461bcd60e51b81526004016105d990612883565b306000908152600460205260409020546108f781611c48565b6000546001600160a01b03163314610d415760405162461bcd60e51b81526004016105d990612883565b60085460ff1615610d945760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105d9565b600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610de03082610dce6009600a6129e3565b6106cd90670de0b6b3a76400006129f2565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e429190612a29565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb39190612a29565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f249190612a29565b602680546001600160a01b039283166001600160a01b03199091161790556002541663f305d7194730610f6c816001600160a01b031660009081526004602052604090205490565b600080610f816000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610fa396959493929190612a46565b60606040518083038185885af1158015610fc1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fe69190612a81565b50506008805464ffff00000019166401010000001790555061100a6009600a6129e3565b61101b906611c37937e080006129f2565b600990815561102b90600a6129e3565b61103c90660aa87bee5380006129f2565b600a90815561104d906009906129e3565b61105e9066470de4df8200006129f2565b600b5561106d6009600a6129e3565b61107e90660110d9316ec0006129f2565b6022556008805460ff1916600117905543600c5560265460025460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af11580156110e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110c9190612aaf565b5050565b6000546001600160a01b0316331461113a5760405162461bcd60e51b81526004016105d990612883565b6008805491151563010000000263ff00000019909216919091179055565b6000546001600160a01b031633146111825760405162461bcd60e51b81526004016105d990612883565b603c81836111908688612a11565b61119a9190612a11565b6111a49190612a11565b11156111f25760405162461bcd60e51b815260206004820152601e60248201527f4d757374206b6565702073656c6c2074617865732062656c6f7720333025000060448201526064016105d9565b601693909355601891909155601a55601c55565b6000546001600160a01b031633146112305760405162461bcd60e51b81526004016105d990612883565b600d55565b6000546001600160a01b0316331461125f5760405162461bcd60e51b81526004016105d990612883565b61126b6009600a6129e3565b61127b90655af3107a40006129f2565b8110156112f05760405162461bcd60e51b815260206004820152603860248201527f4d61782073656c6c20616d6f756e742063616e6e6f74206265206c6f7765722060448201527f7468616e20302e30312520746f74616c20737570706c792e000000000000000060648201526084016105d9565b600a55565b6000546001600160a01b0316331461131f5760405162461bcd60e51b81526004016105d990612883565b61132b6009600a6129e3565b61133b90655af3107a40006129f2565b8110156113b05760405162461bcd60e51b815260206004820152603760248201527f4d61782062757920616d6f756e742063616e6e6f74206265206c6f776572207460448201527f68616e20302e30312520746f74616c20737570706c792e00000000000000000060648201526084016105d9565b600955565b6000546001600160a01b031633146113df5760405162461bcd60e51b81526004016105d990612883565b604051600090339047908381818185875af1925050503d8060008114611421576040519150601f19603f3d011682016040523d82523d6000602084013e611426565b606091505b50505050565b6001600160a01b03831661148e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d9565b6001600160a01b0382166114ef5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d9565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166115b55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d9565b6001600160a01b0382166116175760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d9565b600081116116795760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105d9565b60008061168e6000546001600160a01b031690565b6001600160a01b0316856001600160a01b0316141580156116bd57506000546001600160a01b03858116911614155b80156116d157506001600160a01b03841615155b80156116e857506001600160a01b03841661dead14155b80156116fc5750600854610100900460ff16155b15611a6a576001600160a01b03851660009081526007602052604090205460ff1615801561174357506001600160a01b03841660009081526007602052604090205460ff16155b61174c57600080fd5b600854640100000000900460ff1615611868576002546001600160a01b0385811691161480159061178b57506026546001600160a01b03858116911614155b156118685761179b600143612acc565b326000908152600360205260409020541080156117d957506117be600143612acc565b6001600160a01b038516600090815260036020526040902054105b6118435760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016105d9565b3260009081526003602052604080822043908190556001600160a01b03871683529120555b602654600192506001600160a01b03868116911614801561189757506002546001600160a01b03858116911614155b80156118bc57506001600160a01b03841660009081526006602052604090205460ff16155b156119ac576009548311156119255760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178426044820152683abca0b6b7bab73a1760b91b60648201526084016105d9565b600b5483611948866001600160a01b031660009081526004602052604090205490565b6119529190612a11565b11156119ac5760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b60648201526084016105d9565b6026546001600160a01b0385811691161480156119d757506002546001600160a01b03868116911614155b80156119fc57506001600160a01b03851660009081526006602052604090205460ff16155b15611a6a57600a54831115611a665760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785360448201526932b63620b6b7bab73a1760b11b60648201526084016105d9565b5060015b6001600160a01b03851660009081526006602052604090205460ff1680611aa957506001600160a01b03841660009081526006602052604090205460ff165b15611ab357600091505b306000908152600460205260408120549050600060225482118015611ad55750825b9050808015611aed57506008546301000000900460ff165b8015611b015750600854610100900460ff16155b8015611b2657506001600160a01b03871660009081526006602052604090205460ff16155b8015611b4b57506001600160a01b03861660009081526006602052604090205460ff16155b15611b73576008805461ff001916610100179055611b67611dbf565b6008805461ff00191690555b611b808787878787612038565b50505050505050565b60008184841115611bad5760405162461bcd60e51b81526004016105d991906125d8565b506000611bba8486612acc565b95945050505050565b6023546001600160a01b03166108fc611bdd8360026120a4565b6040518115909202916000818181858888f19350505050158015611c05573d6000803e3d6000fd5b506025546001600160a01b03166108fc611c208360026120a4565b6040518115909202916000818181858888f1935050505015801561110c573d6000803e3d6000fd5b6008805462ff00001916620100001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611c8e57611c8e6128b8565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ce7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0b9190612a29565b81600181518110611d1e57611d1e6128b8565b6001600160a01b039283166020918202929092010152600254611d44913091168461142c565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d7d908590600090869030904290600401612ae3565b600060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b50506008805462ff00001916905550505050565b3060009081526004602052604081205490506000602154601f54601e54602054611de99190612a11565b611df39190612a11565b611dfd9190612a11565b90506000821580611e0c575081155b15611e1657505050565b602254611e2490600a6129f2565b831115611e3c57602254611e3990600a6129f2565b92505b600060028360205486611e4f91906129f2565b611e599190612b54565b611e639190612b54565b90506000611e7185836120ed565b905047611e7d82611c48565b6000611e8947836120ed565b90506000611eac87611ea6601e548561212f90919063ffffffff16565b906120a4565b90506000611ec988611ea6601f548661212f90919063ffffffff16565b90506000611ee689611ea66021548761212f90919063ffffffff16565b905060008183611ef68688612acc565b611f009190612acc565b611f0a9190612acc565b60006020819055601e819055601f81905560218190556025546040519293506001600160a01b031691849181818185875af1925050503d8060008114611f6c576040519150601f19603f3d011682016040523d82523d6000602084013e611f71565b606091505b50909950508715801590611f855750600081115b15611fd657611f9488826121ae565b60208054604080518a81529283018490528201527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b6023546040516001600160a01b03909116904790600081818185875af1925050503d8060008114612023576040519150601f19603f3d011682016040523d82523d6000602084013e612028565b606091505b5050505050505050505050505050565b8161204a57612045612249565b612058565b6120558584836122fe565b92505b61206385858561245d565b8161209d5761209d600f54600e55601154601055601354601255601554601455601754601655601954601855601b54601a55601d54601c55565b5050505050565b60006120e683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612503565b9392505050565b60006120e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b89565b60008261213e575060006105a9565b600061214a83856129f2565b9050826121578583612b54565b146120e65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105d9565b6002546121c69030906001600160a01b03168461142c565b60025460245460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926122069230928992600092839216904290600401612a46565b60606040518083038185885af1158015612224573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061209d9190612a81565b600e541580156122595750601054155b80156122655750601254155b80156122715750601454155b801561227d5750601654155b80156122895750601854155b80156122955750601a54155b80156122a15750601c54155b156122a857565b600e8054600f556010805460115560128054601355601480546015556016805460175560188054601955601a8054601b55601c8054601d5560009788905595879055938690559185905584905583905582905555565b60008060008060008043600d54600c546123189190612a11565b10612333575060639350601992508291506018905081612372565b61233c87612531565b9450861561235d5760165493506018549250601a549150601c549050612372565b600e5493506010549250601254915060145490505b60006123836064611ea68b8961212f565b90508561239084836129f2565b61239a9190612b54565b601e60008282546123ab9190612a11565b909155508690506123bc86836129f2565b6123c69190612b54565b601f60008282546123d79190612a11565b909155508690506123e885836129f2565b6123f29190612b54565b602060008282546124039190612a11565b9091555086905061241483836129f2565b61241e9190612b54565b6021600082825461242f9190612a11565b90915550508015612445576124458a308361245d565b61244f818a612acc565b9a9950505050505050505050565b6001600160a01b03831660009081526004602052604090205461248090826120ed565b6001600160a01b0380851660009081526004602052604080822093909355908416815220546124af9082612579565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115449085815260200190565b600081836125245760405162461bcd60e51b81526004016105d991906125d8565b506000611bba8486612b54565b6000811561256357601c54601a5460185460165461254f9190612a11565b6125599190612a11565b6105a99190612a11565b601454601254601054600e5461254f9190612a11565b6000806125868385612a11565b9050838110156120e65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105d9565b600060208083528351808285015260005b81811015612605578581018301518582016040015282016125e9565b81811115612617576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146108f757600080fd5b803561264d8161262d565b919050565b6000806040838503121561266557600080fd5b82356126708161262d565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b80151581146108f757600080fd5b803561264d81612694565b600080604083850312156126c057600080fd5b823567ffffffffffffffff808211156126d857600080fd5b818501915085601f8301126126ec57600080fd5b81356020828211156127005761270061267e565b8160051b604051601f19603f830116810181811086821117156127255761272561267e565b60405292835281830193508481018201928984111561274357600080fd5b948201945b838610156127685761275986612642565b85529482019493820193612748565b965061277790508782016126a2565b9450505050509250929050565b60008060006060848603121561279957600080fd5b83356127a48161262d565b925060208401356127b48161262d565b929592945050506040919091013590565b6000602082840312156127d757600080fd5b5035919050565b6000602082840312156127f057600080fd5b81356120e68161262d565b60006020828403121561280d57600080fd5b81356120e681612694565b6000806000806080858703121561282e57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561285d57600080fd5b82356128688161262d565b915060208301356128788161262d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156128f8576128f86128ce565b5060010190565b600181815b8085111561293a578160001904821115612920576129206128ce565b8085161561292d57918102915b93841c9390800290612904565b509250929050565b600082612951575060016105a9565b8161295e575060006105a9565b8160018114612974576002811461297e5761299a565b60019150506105a9565b60ff84111561298f5761298f6128ce565b50506001821b6105a9565b5060208310610133831016604e8410600b84101617156129bd575081810a6105a9565b6129c783836128ff565b80600019048211156129db576129db6128ce565b029392505050565b60006120e660ff841683612942565b6000816000190483118215151615612a0c57612a0c6128ce565b500290565b60008219821115612a2457612a246128ce565b500190565b600060208284031215612a3b57600080fd5b81516120e68161262d565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215612a9657600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612ac157600080fd5b81516120e681612694565b600082821015612ade57612ade6128ce565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b335784516001600160a01b031683529383019391830191600101612b0e565b50506001600160a01b03969096166060850152505050608001529392505050565b600082612b7157634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f8063c3ae259802380d6c7c9c2d842971cbba5f44bd1966d8c1fb56a5254ad9564736f6c634300080c0033000000000000000000000000c82f08ded42fcf38e887422e55bec9c6117744d7000000000000000000000000c82f08ded42fcf38e887422e55bec9c6117744d7000000000000000000000000b0f9ff5427245b8be8f98e7a3fc98b42dca0571f

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063dd62ed3e1161008a578063e6f7ef4d11610064578063e6f7ef4d14610523578063e99c9d0914610543578063f34eb0b814610563578063f5648a4f1461058357600080fd5b8063dd62ed3e1461049d578063e01af92c146104e3578063e653da081461050357600080fd5b8063a9059cbb116100c6578063a9059cbb14610433578063afa4f3b214610453578063c3c8cd8014610473578063c9567bf91461048857600080fd5b80638da5cb5b146103bd57806395d89b41146103e55780639c0db5f31461041357600080fd5b8063313ce5671161015957806370a082311161013357806370a0823114610332578063715018a6146103685780638a7804471461037d5780638c5a133d1461039d57600080fd5b8063313ce567146102e15780635932ead1146102fd5780636fc3eaec1461031d57600080fd5b806318160ddd1161019557806318160ddd1461025e57806323b872dd1461028157806327a14fc2146102a1578063296f0a0c146102c157600080fd5b806306fdde03146101c7578063095ea7b31461020c578063105222f91461023c57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600a8152694265617374205475626560b01b60208201525b60405161020391906125d8565b60405180910390f35b34801561021857600080fd5b5061022c610227366004612652565b610598565b6040519015158152602001610203565b34801561024857600080fd5b5061025c6102573660046126ad565b6105af565b005b34801561026a57600080fd5b5061027361064e565b604051908152602001610203565b34801561028d57600080fd5b5061022c61029c366004612784565b610673565b3480156102ad57600080fd5b5061025c6102bc3660046127c5565b6106dc565b3480156102cd57600080fd5b5061025c6102dc3660046127de565b61079d565b3480156102ed57600080fd5b5060405160098152602001610203565b34801561030957600080fd5b5061025c6103183660046127fb565b610879565b34801561032957600080fd5b5061025c6108c3565b34801561033e57600080fd5b5061027361034d3660046127de565b6001600160a01b031660009081526004602052604090205490565b34801561037457600080fd5b5061025c6108fa565b34801561038957600080fd5b5061025c6103983660046127de565b61096e565b3480156103a957600080fd5b5061025c6103b8366004612818565b610a48565b3480156103c957600080fd5b506000546040516001600160a01b039091168152602001610203565b3480156103f157600080fd5b50604080518082019091526005815264425455424560d81b60208201526101f6565b34801561041f57600080fd5b5061025c61042e3660046126ad565b610af6565b34801561043f57600080fd5b5061022c61044e366004612652565b610b87565b34801561045f57600080fd5b5061025c61046e3660046127c5565b610b94565b34801561047f57600080fd5b5061025c610cd4565b34801561049457600080fd5b5061025c610d17565b3480156104a957600080fd5b506102736104b836600461284a565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156104ef57600080fd5b5061025c6104fe3660046127fb565b611110565b34801561050f57600080fd5b5061025c61051e366004612818565b611158565b34801561052f57600080fd5b5061025c61053e3660046127c5565b611206565b34801561054f57600080fd5b5061025c61055e3660046127c5565b611235565b34801561056f57600080fd5b5061025c61057e3660046127c5565b6112f5565b34801561058f57600080fd5b5061025c6113b5565b60006105a533848461142c565b5060015b92915050565b6000546001600160a01b031633146105e25760405162461bcd60e51b81526004016105d990612883565b60405180910390fd5b60005b8251811015610649578160066000858481518110610605576106056128b8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610641816128e4565b9150506105e5565b505050565b600061065c6009600a6129e3565b61066e90670de0b6b3a76400006129f2565b905090565b6000610680848484611551565b6106d284336106cd85604051806060016040528060288152602001612b77602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611b89565b61142c565b5060019392505050565b6000546001600160a01b031633146107065760405162461bcd60e51b81526004016105d990612883565b6107126009600a6129e3565b6107239066038d7ea4c680006129f2565b8110156107985760405162461bcd60e51b815260206004820152603960248201527f4d61782077616c6c657420616d6f756e742063616e6e6f74206265206c6f776560448201527f72207468616e20302e312520746f74616c20737570706c792e0000000000000060648201526084016105d9565b600b55565b6000546001600160a01b031633146107c75760405162461bcd60e51b81526004016105d990612883565b6001600160a01b0381166108295760405162461bcd60e51b815260206004820152602360248201527f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260448201526206520360ec1b60648201526084016105d9565b602480546001600160a01b03908116600090815260066020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b031633146108a35760405162461bcd60e51b81526004016105d990612883565b600880549115156401000000000264ff0000000019909216919091179055565b6000546001600160a01b031633146108ed5760405162461bcd60e51b81526004016105d990612883565b476108f781611bc3565b50565b6000546001600160a01b031633146109245760405162461bcd60e51b81526004016105d990612883565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109985760405162461bcd60e51b81526004016105d990612883565b6001600160a01b0381166109f85760405162461bcd60e51b815260206004820152602160248201527f70726f6a65637457616c6c657420616464726573732063616e6e6f74206265206044820152600360fc1b60648201526084016105d9565b602380546001600160a01b03908116600090815260066020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b03163314610a725760405162461bcd60e51b81526004016105d990612883565b601e8183610a808688612a11565b610a8a9190612a11565b610a949190612a11565b1115610ae25760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f772033302500000060448201526064016105d9565b600e93909355601091909155601255601455565b6000546001600160a01b03163314610b205760405162461bcd60e51b81526004016105d990612883565b60005b8251811015610649578160076000858481518110610b4357610b436128b8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b7f816128e4565b915050610b23565b60006105a5338484611551565b6000546001600160a01b03163314610bbe5760405162461bcd60e51b81526004016105d990612883565b610bca6009600a6129e3565b610bda90655af3107a40006129f2565b811015610c465760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e604482015273101817181892903a37ba30b61039bab838363c9760611b60648201526084016105d9565b610c526009600a6129e3565b610c63906611c37937e080006129f2565b811115610ccf5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016105d9565b602255565b6000546001600160a01b03163314610cfe5760405162461bcd60e51b81526004016105d990612883565b306000908152600460205260409020546108f781611c48565b6000546001600160a01b03163314610d415760405162461bcd60e51b81526004016105d990612883565b60085460ff1615610d945760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105d9565b600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610de03082610dce6009600a6129e3565b6106cd90670de0b6b3a76400006129f2565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e429190612a29565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb39190612a29565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f249190612a29565b602680546001600160a01b039283166001600160a01b03199091161790556002541663f305d7194730610f6c816001600160a01b031660009081526004602052604090205490565b600080610f816000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610fa396959493929190612a46565b60606040518083038185885af1158015610fc1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fe69190612a81565b50506008805464ffff00000019166401010000001790555061100a6009600a6129e3565b61101b906611c37937e080006129f2565b600990815561102b90600a6129e3565b61103c90660aa87bee5380006129f2565b600a90815561104d906009906129e3565b61105e9066470de4df8200006129f2565b600b5561106d6009600a6129e3565b61107e90660110d9316ec0006129f2565b6022556008805460ff1916600117905543600c5560265460025460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af11580156110e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110c9190612aaf565b5050565b6000546001600160a01b0316331461113a5760405162461bcd60e51b81526004016105d990612883565b6008805491151563010000000263ff00000019909216919091179055565b6000546001600160a01b031633146111825760405162461bcd60e51b81526004016105d990612883565b603c81836111908688612a11565b61119a9190612a11565b6111a49190612a11565b11156111f25760405162461bcd60e51b815260206004820152601e60248201527f4d757374206b6565702073656c6c2074617865732062656c6f7720333025000060448201526064016105d9565b601693909355601891909155601a55601c55565b6000546001600160a01b031633146112305760405162461bcd60e51b81526004016105d990612883565b600d55565b6000546001600160a01b0316331461125f5760405162461bcd60e51b81526004016105d990612883565b61126b6009600a6129e3565b61127b90655af3107a40006129f2565b8110156112f05760405162461bcd60e51b815260206004820152603860248201527f4d61782073656c6c20616d6f756e742063616e6e6f74206265206c6f7765722060448201527f7468616e20302e30312520746f74616c20737570706c792e000000000000000060648201526084016105d9565b600a55565b6000546001600160a01b0316331461131f5760405162461bcd60e51b81526004016105d990612883565b61132b6009600a6129e3565b61133b90655af3107a40006129f2565b8110156113b05760405162461bcd60e51b815260206004820152603760248201527f4d61782062757920616d6f756e742063616e6e6f74206265206c6f776572207460448201527f68616e20302e30312520746f74616c20737570706c792e00000000000000000060648201526084016105d9565b600955565b6000546001600160a01b031633146113df5760405162461bcd60e51b81526004016105d990612883565b604051600090339047908381818185875af1925050503d8060008114611421576040519150601f19603f3d011682016040523d82523d6000602084013e611426565b606091505b50505050565b6001600160a01b03831661148e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d9565b6001600160a01b0382166114ef5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d9565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166115b55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d9565b6001600160a01b0382166116175760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d9565b600081116116795760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105d9565b60008061168e6000546001600160a01b031690565b6001600160a01b0316856001600160a01b0316141580156116bd57506000546001600160a01b03858116911614155b80156116d157506001600160a01b03841615155b80156116e857506001600160a01b03841661dead14155b80156116fc5750600854610100900460ff16155b15611a6a576001600160a01b03851660009081526007602052604090205460ff1615801561174357506001600160a01b03841660009081526007602052604090205460ff16155b61174c57600080fd5b600854640100000000900460ff1615611868576002546001600160a01b0385811691161480159061178b57506026546001600160a01b03858116911614155b156118685761179b600143612acc565b326000908152600360205260409020541080156117d957506117be600143612acc565b6001600160a01b038516600090815260036020526040902054105b6118435760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016105d9565b3260009081526003602052604080822043908190556001600160a01b03871683529120555b602654600192506001600160a01b03868116911614801561189757506002546001600160a01b03858116911614155b80156118bc57506001600160a01b03841660009081526006602052604090205460ff16155b156119ac576009548311156119255760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178426044820152683abca0b6b7bab73a1760b91b60648201526084016105d9565b600b5483611948866001600160a01b031660009081526004602052604090205490565b6119529190612a11565b11156119ac5760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b60648201526084016105d9565b6026546001600160a01b0385811691161480156119d757506002546001600160a01b03868116911614155b80156119fc57506001600160a01b03851660009081526006602052604090205460ff16155b15611a6a57600a54831115611a665760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785360448201526932b63620b6b7bab73a1760b11b60648201526084016105d9565b5060015b6001600160a01b03851660009081526006602052604090205460ff1680611aa957506001600160a01b03841660009081526006602052604090205460ff165b15611ab357600091505b306000908152600460205260408120549050600060225482118015611ad55750825b9050808015611aed57506008546301000000900460ff165b8015611b015750600854610100900460ff16155b8015611b2657506001600160a01b03871660009081526006602052604090205460ff16155b8015611b4b57506001600160a01b03861660009081526006602052604090205460ff16155b15611b73576008805461ff001916610100179055611b67611dbf565b6008805461ff00191690555b611b808787878787612038565b50505050505050565b60008184841115611bad5760405162461bcd60e51b81526004016105d991906125d8565b506000611bba8486612acc565b95945050505050565b6023546001600160a01b03166108fc611bdd8360026120a4565b6040518115909202916000818181858888f19350505050158015611c05573d6000803e3d6000fd5b506025546001600160a01b03166108fc611c208360026120a4565b6040518115909202916000818181858888f1935050505015801561110c573d6000803e3d6000fd5b6008805462ff00001916620100001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611c8e57611c8e6128b8565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ce7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0b9190612a29565b81600181518110611d1e57611d1e6128b8565b6001600160a01b039283166020918202929092010152600254611d44913091168461142c565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d7d908590600090869030904290600401612ae3565b600060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b50506008805462ff00001916905550505050565b3060009081526004602052604081205490506000602154601f54601e54602054611de99190612a11565b611df39190612a11565b611dfd9190612a11565b90506000821580611e0c575081155b15611e1657505050565b602254611e2490600a6129f2565b831115611e3c57602254611e3990600a6129f2565b92505b600060028360205486611e4f91906129f2565b611e599190612b54565b611e639190612b54565b90506000611e7185836120ed565b905047611e7d82611c48565b6000611e8947836120ed565b90506000611eac87611ea6601e548561212f90919063ffffffff16565b906120a4565b90506000611ec988611ea6601f548661212f90919063ffffffff16565b90506000611ee689611ea66021548761212f90919063ffffffff16565b905060008183611ef68688612acc565b611f009190612acc565b611f0a9190612acc565b60006020819055601e819055601f81905560218190556025546040519293506001600160a01b031691849181818185875af1925050503d8060008114611f6c576040519150601f19603f3d011682016040523d82523d6000602084013e611f71565b606091505b50909950508715801590611f855750600081115b15611fd657611f9488826121ae565b60208054604080518a81529283018490528201527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b6023546040516001600160a01b03909116904790600081818185875af1925050503d8060008114612023576040519150601f19603f3d011682016040523d82523d6000602084013e612028565b606091505b5050505050505050505050505050565b8161204a57612045612249565b612058565b6120558584836122fe565b92505b61206385858561245d565b8161209d5761209d600f54600e55601154601055601354601255601554601455601754601655601954601855601b54601a55601d54601c55565b5050505050565b60006120e683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612503565b9392505050565b60006120e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b89565b60008261213e575060006105a9565b600061214a83856129f2565b9050826121578583612b54565b146120e65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105d9565b6002546121c69030906001600160a01b03168461142c565b60025460245460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926122069230928992600092839216904290600401612a46565b60606040518083038185885af1158015612224573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061209d9190612a81565b600e541580156122595750601054155b80156122655750601254155b80156122715750601454155b801561227d5750601654155b80156122895750601854155b80156122955750601a54155b80156122a15750601c54155b156122a857565b600e8054600f556010805460115560128054601355601480546015556016805460175560188054601955601a8054601b55601c8054601d5560009788905595879055938690559185905584905583905582905555565b60008060008060008043600d54600c546123189190612a11565b10612333575060639350601992508291506018905081612372565b61233c87612531565b9450861561235d5760165493506018549250601a549150601c549050612372565b600e5493506010549250601254915060145490505b60006123836064611ea68b8961212f565b90508561239084836129f2565b61239a9190612b54565b601e60008282546123ab9190612a11565b909155508690506123bc86836129f2565b6123c69190612b54565b601f60008282546123d79190612a11565b909155508690506123e885836129f2565b6123f29190612b54565b602060008282546124039190612a11565b9091555086905061241483836129f2565b61241e9190612b54565b6021600082825461242f9190612a11565b90915550508015612445576124458a308361245d565b61244f818a612acc565b9a9950505050505050505050565b6001600160a01b03831660009081526004602052604090205461248090826120ed565b6001600160a01b0380851660009081526004602052604080822093909355908416815220546124af9082612579565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115449085815260200190565b600081836125245760405162461bcd60e51b81526004016105d991906125d8565b506000611bba8486612b54565b6000811561256357601c54601a5460185460165461254f9190612a11565b6125599190612a11565b6105a99190612a11565b601454601254601054600e5461254f9190612a11565b6000806125868385612a11565b9050838110156120e65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105d9565b600060208083528351808285015260005b81811015612605578581018301518582016040015282016125e9565b81811115612617576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146108f757600080fd5b803561264d8161262d565b919050565b6000806040838503121561266557600080fd5b82356126708161262d565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b80151581146108f757600080fd5b803561264d81612694565b600080604083850312156126c057600080fd5b823567ffffffffffffffff808211156126d857600080fd5b818501915085601f8301126126ec57600080fd5b81356020828211156127005761270061267e565b8160051b604051601f19603f830116810181811086821117156127255761272561267e565b60405292835281830193508481018201928984111561274357600080fd5b948201945b838610156127685761275986612642565b85529482019493820193612748565b965061277790508782016126a2565b9450505050509250929050565b60008060006060848603121561279957600080fd5b83356127a48161262d565b925060208401356127b48161262d565b929592945050506040919091013590565b6000602082840312156127d757600080fd5b5035919050565b6000602082840312156127f057600080fd5b81356120e68161262d565b60006020828403121561280d57600080fd5b81356120e681612694565b6000806000806080858703121561282e57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561285d57600080fd5b82356128688161262d565b915060208301356128788161262d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156128f8576128f86128ce565b5060010190565b600181815b8085111561293a578160001904821115612920576129206128ce565b8085161561292d57918102915b93841c9390800290612904565b509250929050565b600082612951575060016105a9565b8161295e575060006105a9565b8160018114612974576002811461297e5761299a565b60019150506105a9565b60ff84111561298f5761298f6128ce565b50506001821b6105a9565b5060208310610133831016604e8410600b84101617156129bd575081810a6105a9565b6129c783836128ff565b80600019048211156129db576129db6128ce565b029392505050565b60006120e660ff841683612942565b6000816000190483118215151615612a0c57612a0c6128ce565b500290565b60008219821115612a2457612a246128ce565b500190565b600060208284031215612a3b57600080fd5b81516120e68161262d565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215612a9657600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612ac157600080fd5b81516120e681612694565b600082821015612ade57612ade6128ce565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b335784516001600160a01b031683529383019391830191600101612b0e565b50506001600160a01b03969096166060850152505050608001529392505050565b600082612b7157634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f8063c3ae259802380d6c7c9c2d842971cbba5f44bd1966d8c1fb56a5254ad9564736f6c634300080c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000c82f08ded42fcf38e887422e55bec9c6117744d7000000000000000000000000c82f08ded42fcf38e887422e55bec9c6117744d7000000000000000000000000b0f9ff5427245b8be8f98e7a3fc98b42dca0571f

-----Decoded View---------------
Arg [0] : projectWallet (address): 0xc82f08deD42fcF38e887422E55BEC9c6117744d7
Arg [1] : liquidityWallet (address): 0xc82f08deD42fcF38e887422E55BEC9c6117744d7
Arg [2] : developmentWallet (address): 0xB0F9FF5427245B8bE8f98e7a3fc98B42DcA0571f

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000c82f08ded42fcf38e887422e55bec9c6117744d7
Arg [1] : 000000000000000000000000c82f08ded42fcf38e887422e55bec9c6117744d7
Arg [2] : 000000000000000000000000b0f9ff5427245b8be8f98e7a3fc98b42dca0571f


Deployed Bytecode Sourcemap

3520:18648:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6663:83;;;;;;;;;;-1:-1:-1;6733:5:0;;;;;;;;;;;;-1:-1:-1;;;6733:5:0;;;;6663:83;;;;;;;:::i;:::-;;;;;;;;7494:161;;;;;;;;;;-1:-1:-1;7494:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;7494:161:0;1211:187:1;16350:214:0;;;;;;;;;;-1:-1:-1;16350:214:0;;;;;:::i;:::-;;:::i;:::-;;6940:95;;;;;;;;;;;;;:::i;:::-;;;3133:25:1;;;3121:2;3106:18;6940:95:0;2987:177:1;7663:313:0;;;;;;;;;;-1:-1:-1;7663:313:0;;;;;:::i;:::-;;:::i;15106:224::-;;;;;;;;;;-1:-1:-1;15106:224:0;;;;;:::i;:::-;;:::i;16011:331::-;;;;;;;;;;-1:-1:-1;16011:331:0;;;;;:::i;:::-;;:::i;6849:83::-;;;;;;;;;;-1:-1:-1;6849:83:0;;4260:1;4209:36:1;;4197:2;4182:18;6849:83:0;4067:184:1;7984:103:0;;;;;;;;;;-1:-1:-1;7984:103:0;;;;;:::i;:::-;;:::i;21542:153::-;;;;;;;;;;;;;:::i;7043:117::-;;;;;;;;;;-1:-1:-1;7043:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;7136:16:0;7109:7;7136:16;;;:7;:16;;;;;;;7043:117;2599:148;;;;;;;;;;;;;:::i;15688:315::-;;;;;;;;;;-1:-1:-1;15688:315:0;;;;;:::i;:::-;;:::i;16772:443::-;;;;;;;;;;-1:-1:-1;16772:443:0;;;;;:::i;:::-;;:::i;2385:79::-;;;;;;;;;;-1:-1:-1;2423:7:0;2450:6;2385:79;;-1:-1:-1;;;;;2450:6:0;;;5038:51:1;;5026:2;5011:18;2385:79:0;4892:203:1;6754:87:0;;;;;;;;;;-1:-1:-1;6826:7:0;;;;;;;;;;;;-1:-1:-1;;;6826:7:0;;;;6754:87;;16576:188;;;;;;;;;;-1:-1:-1;16576:188:0;;;;;:::i;:::-;;:::i;7168:167::-;;;;;;;;;;-1:-1:-1;7168:167:0;;;;;:::i;:::-;;:::i;15342:338::-;;;;;;;;;;-1:-1:-1;15342:338:0;;;;;:::i;:::-;;:::i;21376:154::-;;;;;;;;;;;;;:::i;13632:1020::-;;;;;;;;;;;;;:::i;7343:143::-;;;;;;;;;;-1:-1:-1;7343:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7451:18:0;;;7424:7;7451:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7343:143;8095:94;;;;;;;;;;-1:-1:-1;8095:94:0;;;;;:::i;:::-;;:::i;17223:461::-;;;;;;;;;;-1:-1:-1;17223:461:0;;;;;:::i;:::-;;:::i;17692:108::-;;;;;;;;;;-1:-1:-1;17692:108:0;;;;;:::i;:::-;;:::i;14878:216::-;;;;;;;;;;-1:-1:-1;14878:216:0;;;;;:::i;:::-;;:::i;14660:210::-;;;;;;;;;;-1:-1:-1;14660:210:0;;;;;:::i;:::-;;:::i;21703:160::-;;;;;;;;;;;;;:::i;7494:161::-;7569:4;7586:39;183:10;7609:7;7618:6;7586:8;:39::i;:::-;-1:-1:-1;7643:4:0;7494:161;;;;;:::o;16350:214::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;;;;;;;;;16452:6:::1;16447:110;16468:8;:15;16464:1;:19;16447:110;;;16539:6;16505:18;:31;16524:8;16533:1;16524:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16505:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16505:31:0;:40;;-1:-1:-1;;16505:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16485:3;::::1;::::0;::::1;:::i;:::-;;;;16447:110;;;;16350:214:::0;;:::o;6940:95::-;6993:7;4313:13;4260:1;4313:2;:13;:::i;:::-;4305:22;;:4;:22;:::i;:::-;7013:14;;6940:95;:::o;7663:313::-;7761:4;7778:36;7788:6;7796:9;7807:6;7778:9;:36::i;:::-;7825:121;7834:6;183:10;7856:89;7894:6;7856:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7856:19:0;;;;;;:11;:19;;;;;;;;183:10;7856:33;;;;;;;;;;:37;:89::i;:::-;7825:8;:121::i;:::-;-1:-1:-1;7964:4:0;7663:313;;;;;:::o;15106:224::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;15208:13:::1;4260:1;15208:2;:13;:::i;:::-;15200:22;::::0;:4:::1;:22;:::i;:::-;15188:8;:34;;15180:104;;;::::0;-1:-1:-1;;;15180:104:0;;8016:2:1;15180:104:0::1;::::0;::::1;7998:21:1::0;8055:2;8035:18;;;8028:30;8094:34;8074:18;;;8067:62;8165:27;8145:18;;;8138:55;8210:19;;15180:104:0::1;7814:421:1::0;15180:104:0::1;15295:16;:27:::0;15106:224::o;16011:331::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16102:29:0;::::1;16094:77;;;::::0;-1:-1:-1;;;16094:77:0;;8442:2:1;16094:77:0::1;::::0;::::1;8424:21:1::0;8481:2;8461:18;;;8454:30;8520:34;8500:18;;;8493:62;-1:-1:-1;;;8571:18:1;;;8564:33;8614:19;;16094:77:0::1;8240:399:1::0;16094:77:0::1;16201:16;::::0;;-1:-1:-1;;;;;16201:16:0;;::::1;16221:5;16182:36:::0;;;:18:::1;:36;::::0;;;;;:44;;-1:-1:-1;;16182:44:0;;::::1;::::0;;;16237:43;;-1:-1:-1;;;;;;16237:43:0::1;::::0;;;::::1;::::0;;::::1;::::0;;;16291:36;;;;;:43;;;;::::1;-1:-1:-1::0;16291:43:0::1;::::0;;16011:331::o;7984:103::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;8056:15:::1;:23:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;8056:23:0;;::::1;::::0;;;::::1;::::0;;7984:103::o;21542:153::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;21623:21:::1;21655:32;21623:21:::0;21655:12:::1;:32::i;:::-;21583:112;21542:153::o:0;2599:148::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;2706:1:::1;2690:6:::0;;2669:40:::1;::::0;-1:-1:-1;;;;;2690:6:0;;::::1;::::0;2669:40:::1;::::0;2706:1;;2669:40:::1;2737:1;2720:19:::0;;-1:-1:-1;;;;;;2720:19:0::1;::::0;;2599:148::o;15688:315::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15775:27:0;::::1;15767:73;;;::::0;-1:-1:-1;;;15767:73:0;;8846:2:1;15767:73:0::1;::::0;::::1;8828:21:1::0;8885:2;8865:18;;;8858:30;8924:34;8904:18;;;8897:62;-1:-1:-1;;;8975:18:1;;;8968:31;9016:19;;15767:73:0::1;8644:397:1::0;15767:73:0::1;15870:14;::::0;;-1:-1:-1;;;;;15870:14:0;;::::1;15888:5;15851:34:::0;;;:18:::1;:34;::::0;;;;;:42;;-1:-1:-1;;15851:42:0;;::::1;::::0;;;15904:39;;-1:-1:-1;;;;;;15904:39:0::1;::::0;;;::::1;::::0;;::::1;::::0;;;15954:34;;;;;:41;;;;::::1;-1:-1:-1::0;15954:41:0::1;::::0;;15688:315::o;16772:443::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;16996:2:::1;16975:17:::0;16960:12;16926:31:::1;16942:15:::0;16926:13;:31:::1;:::i;:::-;:46;;;;:::i;:::-;:66;;;;:::i;:::-;:72;;16918:114;;;::::0;-1:-1:-1;;;16918:114:0;;9381:2:1;16918:114:0::1;::::0;::::1;9363:21:1::0;9420:2;9400:18;;;9393:30;9459:31;9439:18;;;9432:59;9508:18;;16918:114:0::1;9179:353:1::0;16918:114:0::1;17043:14;:30:::0;;;;17084:16:::1;:34:::0;;;;17129:14:::1;:29:::0;17169:18:::1;:38:::0;16772:443::o;16576:188::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;16666:6:::1;16661:96;16682:8;:15;16678:1;:19;16661:96;;;16739:6;16719:4;:17;16724:8;16733:1;16724:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16719:17:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16719:17:0;:26;;-1:-1:-1;;16719:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16699:3;::::1;::::0;::::1;:::i;:::-;;;;16661:96;;7168:167:::0;7246:4;7263:42;183:10;7287:9;7298:6;7263:9;:42::i;15342:338::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;15449:13:::1;4260:1;15449:2;:13;:::i;:::-;15441:22;::::0;:4:::1;:22;:::i;:::-;15428:9;:35;;15420:100;;;::::0;-1:-1:-1;;;15420:100:0;;9739:2:1;15420:100:0::1;::::0;::::1;9721:21:1::0;9778:2;9758:18;;;9751:30;9817:34;9797:18;;;9790:62;-1:-1:-1;;;9868:18:1;;;9861:50;9928:19;;15420:100:0::1;9537:416:1::0;15420:100:0::1;15560:13;4260:1;15560:2;:13;:::i;:::-;15552:22;::::0;:4:::1;:22;:::i;:::-;15539:9;:35;;15531:100;;;::::0;-1:-1:-1;;;15531:100:0;;10160:2:1;15531:100:0::1;::::0;::::1;10142:21:1::0;10199:2;10179:18;;;10172:30;10238:34;10218:18;;;10211:62;-1:-1:-1;;;10289:18:1;;;10282:50;10349:19;;15531:100:0::1;9958:416:1::0;15531:100:0::1;15642:18;:30:::0;15342:338::o;21376:154::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;21472:4:::1;21428:23;7136:16:::0;;;:7;:16;;;;;;21489:33:::1;7136:16:::0;21489::::1;:33::i;13632:1020::-:0;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;13696:11:::1;::::0;::::1;;13695:12;13687:47;;;::::0;-1:-1:-1;;;13687:47:0;;10581:2:1;13687:47:0::1;::::0;::::1;10563:21:1::0;10620:2;10600:18;;;10593:30;10659:25;10639:18;;;10632:53;10702:18;;13687:47:0::1;10379:347:1::0;13687:47:0::1;13856:15;:34:::0;;-1:-1:-1;;;;;;13856:34:0::1;13802:42;13856:34:::0;;::::1;::::0;;;13901:58:::1;13918:4;13802:42:::0;4313:13:::1;4260:1;4313:2;:13;:::i;:::-;4305:22;::::0;:4:::1;:22;:::i;13901:58::-;14004:16;-1:-1:-1::0;;;;;14004:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13986:56:0::1;;14051:4;14058:16;-1:-1:-1::0;;;;;14058:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13986:96;::::0;-1:-1:-1;;;;;;13986:96:0::1;::::0;;;;;;-1:-1:-1;;;;;11217:15:1;;;13986:96:0::1;::::0;::::1;11199:34:1::0;11269:15;;11249:18;;;11242:43;11134:18;;13986:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13970:13;:112:::0;;-1:-1:-1;;;;;13970:112:0;;::::1;-1:-1:-1::0;;;;;;13970:112:0;;::::1;;::::0;;14093:15:::1;::::0;::::1;:31;14132:21;14163:4;14169:24;14163:4:::0;-1:-1:-1;;;;;7136:16:0;7109:7;7136:16;;;:7;:16;;;;;;;7043:117;14169:24:::1;14194:1;14196::::0;14198:7:::1;2423::::0;2450:6;-1:-1:-1;;;;;2450:6:0;;2385:79;14198:7:::1;14206:15;14093:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14233:11:0::1;:18:::0;;-1:-1:-1;;14262:22:0;;;;;-1:-1:-1;14319:13:0::1;4260:1;14319:2;:13;:::i;:::-;14311:22;::::0;:4:::1;:22;:::i;:::-;14295:13;:38:::0;;;14369:13:::1;::::0;:2:::1;:13;:::i;:::-;14361:22;::::0;:4:::1;:22;:::i;:::-;14344:14;:39:::0;;;14421:13:::1;::::0;4260:1:::1;::::0;14421:13:::1;:::i;:::-;14413:22;::::0;:4:::1;:22;:::i;:::-;14394:16;:41:::0;14475:13:::1;4260:1;14475:2;:13;:::i;:::-;14467:22;::::0;:4:::1;:22;:::i;:::-;14446:18;:43:::0;14500:11:::1;:18:::0;;-1:-1:-1;;14500:18:0::1;14514:4;14500:18;::::0;;14550:12:::1;14529:18;:33:::0;14580:13:::1;::::0;14611:15:::1;::::0;14573:71:::1;::::0;-1:-1:-1;;;14573:71:0;;-1:-1:-1;;;;;14611:15:0;;::::1;14573:71;::::0;::::1;12393:51:1::0;-1:-1:-1;;12460:18:1;;;12453:34;14580:13:0;::::1;::::0;14573:29:::1;::::0;12366:18:1;;14573:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13676:976;13632:1020::o:0;8095:94::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;8162:11:::1;:19:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;8162:19:0;;::::1;::::0;;;::::1;::::0;;8095:94::o;17223:461::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;17456:2:::1;17434:18:::0;17418:13;17382:33:::1;17399:16:::0;17382:14;:33:::1;:::i;:::-;:49;;;;:::i;:::-;:70;;;;:::i;:::-;:76;;17374:119;;;::::0;-1:-1:-1;;;17374:119:0;;12950:2:1;17374:119:0::1;::::0;::::1;12932:21:1::0;12989:2;12969:18;;;12962:30;13028:32;13008:18;;;13001:60;13078:18;;17374:119:0::1;12748:354:1::0;17374:119:0::1;17504:15;:32:::0;;;;17547:17:::1;:36:::0;;;;17594:15:::1;:31:::0;17636:19:::1;:40:::0;17223:461::o;17692:108::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;17766:17:::1;:26:::0;17692:108::o;14878:216::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;14976:13:::1;4260:1;14976:2;:13;:::i;:::-;14968:22;::::0;:4:::1;:22;:::i;:::-;14957:7;:33;;14949:102;;;::::0;-1:-1:-1;;;14949:102:0;;13309:2:1;14949:102:0::1;::::0;::::1;13291:21:1::0;13348:2;13328:18;;;13321:30;13387:34;13367:18;;;13360:62;13458:26;13438:18;;;13431:54;13502:19;;14949:102:0::1;13107:420:1::0;14949:102:0::1;15062:14;:24:::0;14878:216::o;14660:210::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;14755:13:::1;4260:1;14755:2;:13;:::i;:::-;14747:22;::::0;:4:::1;:22;:::i;:::-;14737:6;:32;;14729:100;;;::::0;-1:-1:-1;;;14729:100:0;;13734:2:1;14729:100:0::1;::::0;::::1;13716:21:1::0;13773:2;13753:18;;;13746:30;13812:34;13792:18;;;13785:62;13883:25;13863:18;;;13856:53;13926:19;;14729:100:0::1;13532:419:1::0;14729:100:0::1;14840:13;:22:::0;14660:210::o;21703:160::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;21797:58:::1;::::0;21761:12:::1;::::0;21805:10:::1;::::0;21829:21:::1;::::0;21761:12;21797:58;21761:12;21797:58;21829:21;21805:10;21797:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;21703:160:0:o;8197:335::-;-1:-1:-1;;;;;8290:19:0;;8282:68;;;;-1:-1:-1;;;8282:68:0;;14368:2:1;8282:68:0;;;14350:21:1;14407:2;14387:18;;;14380:30;14446:34;14426:18;;;14419:62;-1:-1:-1;;;14497:18:1;;;14490:34;14541:19;;8282:68:0;14166:400:1;8282:68:0;-1:-1:-1;;;;;8369:21:0;;8361:68;;;;-1:-1:-1;;;8361:68:0;;14773:2:1;8361:68:0;;;14755:21:1;14812:2;14792:18;;;14785:30;14851:34;14831:18;;;14824:62;-1:-1:-1;;;14902:18:1;;;14895:32;14944:19;;8361:68:0;14571:398:1;8361:68:0;-1:-1:-1;;;;;8440:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8492:32;;3133:25:1;;;8492:32:0;;3106:18:1;8492:32:0;;;;;;;;8197:335;;;:::o;8540:2117::-;-1:-1:-1;;;;;8628:18:0;;8620:68;;;;-1:-1:-1;;;8620:68:0;;15176:2:1;8620:68:0;;;15158:21:1;15215:2;15195:18;;;15188:30;15254:34;15234:18;;;15227:62;-1:-1:-1;;;15305:18:1;;;15298:35;15350:19;;8620:68:0;14974:401:1;8620:68:0;-1:-1:-1;;;;;8707:16:0;;8699:64;;;;-1:-1:-1;;;8699:64:0;;15582:2:1;8699:64:0;;;15564:21:1;15621:2;15601:18;;;15594:30;15660:34;15640:18;;;15633:62;-1:-1:-1;;;15711:18:1;;;15704:33;15754:19;;8699:64:0;15380:399:1;8699:64:0;8791:1;8782:6;:10;8774:64;;;;-1:-1:-1;;;8774:64:0;;15986:2:1;8774:64:0;;;15968:21:1;16025:2;16005:18;;;15998:30;16064:34;16044:18;;;16037:62;-1:-1:-1;;;16115:18:1;;;16108:39;16164:19;;8774:64:0;15784:405:1;8774:64:0;8849:12;8880:15;8926:7;2423;2450:6;-1:-1:-1;;;;;2450:6:0;;2385:79;8926:7;-1:-1:-1;;;;;8918:15:0;:4;-1:-1:-1;;;;;8918:15:0;;;:32;;;;-1:-1:-1;2423:7:0;2450:6;-1:-1:-1;;;;;8937:13:0;;;2450:6;;8937:13;;8918:32;:52;;;;-1:-1:-1;;;;;;8954:16:0;;;;8918:52;:77;;;;-1:-1:-1;;;;;;8974:21:0;;8988:6;8974:21;;8918:77;:90;;;;-1:-1:-1;9000:8:0;;;;;;;8999:9;8918:90;8914:1206;;;-1:-1:-1;;;;;9034:10:0;;;;;;:4;:10;;;;;;;;9033:11;:24;;;;-1:-1:-1;;;;;;9049:8:0;;;;;;:4;:8;;;;;;;;9048:9;9033:24;9025:33;;;;;;9079:15;;;;;;;9075:411;;;9133:15;;-1:-1:-1;;;;;9119:30:0;;;9133:15;;9119:30;;;;:62;;-1:-1:-1;9167:13:0;;-1:-1:-1;;;;;9153:28:0;;;9167:13;;9153:28;;9119:62;9115:356;;;9235:16;9250:1;9235:12;:16;:::i;:::-;9222:9;9213:19;;;;:8;:19;;;;;;:38;:73;;;;-1:-1:-1;9270:16:0;9285:1;9270:12;:16;:::i;:::-;-1:-1:-1;;;;;9255:12:0;;;;;;:8;:12;;;;;;:31;9213:73;9205:139;;;;-1:-1:-1;;;9205:139:0;;16526:2:1;9205:139:0;;;16508:21:1;16565:2;16545:18;;;16538:30;16604:34;16584:18;;;16577:62;-1:-1:-1;;;16655:18:1;;;16648:51;16716:19;;9205:139:0;16324:417:1;9205:139:0;9376:9;9367:19;;;;:8;:19;;;;;;9389:12;9367:34;;;;-1:-1:-1;;;;;9424:12:0;;;;;;:27;9115:356;9543:13;;9512:4;;-1:-1:-1;;;;;;9535:21:0;;;9543:13;;9535:21;:55;;;;-1:-1:-1;9574:15:0;;-1:-1:-1;;;;;9560:30:0;;;9574:15;;9560:30;;9535:55;:82;;;;-1:-1:-1;;;;;;9595:22:0;;;;;;:18;:22;;;;;;;;9594:23;9535:82;9531:310;;;9656:13;;9646:6;:23;;9638:77;;;;-1:-1:-1;;;9638:77:0;;16948:2:1;9638:77:0;;;16930:21:1;16987:2;16967:18;;;16960:30;17026:34;17006:18;;;16999:62;-1:-1:-1;;;17077:18:1;;;17070:39;17126:19;;9638:77:0;16746:405:1;9638:77:0;9768:16;;9758:6;9742:13;9752:2;-1:-1:-1;;;;;7136:16:0;7109:7;7136:16;;;:7;:16;;;;;;;7043:117;9742:13;:22;;;;:::i;:::-;:42;;9734:91;;;;-1:-1:-1;;;9734:91:0;;17358:2:1;9734:91:0;;;17340:21:1;17397:2;17377:18;;;17370:30;17436:34;17416:18;;;17409:62;-1:-1:-1;;;17487:18:1;;;17480:34;17531:19;;9734:91:0;17156:400:1;9734:91:0;9879:13;;-1:-1:-1;;;;;9873:19:0;;;9879:13;;9873:19;:55;;;;-1:-1:-1;9912:15:0;;-1:-1:-1;;;;;9896:32:0;;;9912:15;;9896:32;;9873:55;:84;;;;-1:-1:-1;;;;;;9933:24:0;;;;;;:18;:24;;;;;;;;9932:25;9873:84;9869:240;;;9996:14;;9986:6;:24;;9978:79;;;;-1:-1:-1;;;9978:79:0;;17763:2:1;9978:79:0;;;17745:21:1;17802:2;17782:18;;;17775:30;17841:34;17821:18;;;17814:62;-1:-1:-1;;;17892:18:1;;;17885:40;17942:19;;9978:79:0;17561:406:1;9978:79:0;-1:-1:-1;10089:4:0;9869:240;-1:-1:-1;;;;;10135:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;10163:22:0;;;;;;:18;:22;;;;;;;;10135:50;10132:97;;;10212:5;10202:15;;10132:97;10290:4;10241:28;7136:16;;;:7;:16;;;;;;10241:55;;10307:12;10346:18;;10323:20;:41;10322:57;;;;;10369:10;10322:57;10307:72;;10396:7;:22;;;;-1:-1:-1;10407:11:0;;;;;;;10396:22;:35;;;;-1:-1:-1;10423:8:0;;;;;;;10422:9;10396:35;:64;;;;-1:-1:-1;;;;;;10436:24:0;;;;;;:18;:24;;;;;;;;10435:25;10396:64;:91;;;;-1:-1:-1;;;;;;10465:22:0;;;;;;:18;:22;;;;;;;;10464:23;10396:91;10392:195;;;10504:8;:15;;-1:-1:-1;;10504:15:0;;;;;10534:10;:8;:10::i;:::-;10559:8;:16;;-1:-1:-1;;10559:16:0;;;10392:195;10599:50;10614:4;10619:2;10622:6;10629:7;10638:10;10599:14;:50::i;:::-;8609:2048;;;;8540:2117;;;:::o;1240:190::-;1326:7;1362:12;1354:6;;;;1346:29;;;;-1:-1:-1;;;1346:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1386:9:0;1398:5;1402:1;1398;:5;:::i;:::-;1386:17;1240:190;-1:-1:-1;;;;;1240:190:0:o;13464:156::-;13521:14;;-1:-1:-1;;;;;13521:14:0;:38;13545:13;:6;13556:1;13545:10;:13::i;:::-;13521:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13570:18:0;;-1:-1:-1;;;;;13570:18:0;:42;13598:13;:6;13609:1;13598:10;:13::i;:::-;13570:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12534:483;5968:6;:13;;-1:-1:-1;;5968:13:0;;;;;12636:16:::1;::::0;;5968:6;12636:16;;;;;::::1;::::0;;-1:-1:-1;;12636:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12636:16:0::1;12612:40;;12681:4;12663;12668:1;12663:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12663:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12707:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12707:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12663:7;;12707:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12697:4;12702:1;12697:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12697:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12772:15:::1;::::0;12740:62:::1;::::0;12757:4:::1;::::0;12772:15:::1;12790:11:::0;12740:8:::1;:62::i;:::-;12813:15;::::0;:196:::1;::::0;-1:-1:-1;;;12813:196:0;;-1:-1:-1;;;;;12813:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12894:11;;12813:15:::1;::::0;12936:4;;12963::::1;::::0;12983:15:::1;::::0;12813:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6004:6:0;:14;;-1:-1:-1;;6004:14:0;;;-1:-1:-1;;;;12534:483:0:o;10665:1861::-;10748:4;10704:23;7136:16;;;:7;:16;;;;;;10704:50;;10765:25;10852:20;;10833:16;;10814;;10793:18;;:37;;;;:::i;:::-;:56;;;;:::i;:::-;:79;;;;:::i;:::-;10765:107;-1:-1:-1;10883:12:0;10919:20;;;:46;;-1:-1:-1;10943:22:0;;10919:46;10916:60;;;10968:7;;;10665:1861::o;10916:60::-;11009:18;;:23;;11030:2;11009:23;:::i;:::-;10991:15;:41;10988:114;;;11067:18;;:23;;11088:2;11067:23;:::i;:::-;11049:41;;10988:114;11171:23;11256:1;11236:17;11215:18;;11197:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;11171:86;-1:-1:-1;11268:26:0;11297:36;:15;11171:86;11297:19;:36::i;:::-;11268:65;-1:-1:-1;11382:21:0;11416:36;11268:65;11416:16;:36::i;:::-;11474:18;11495:44;:21;11521:17;11495:25;:44::i;:::-;11474:65;;11560:20;11583:55;11620:17;11583:32;11598:16;;11583:10;:14;;:32;;;;:::i;:::-;:36;;:55::i;:::-;11560:78;;11649:21;11673:55;11710:17;11673:32;11688:16;;11673:10;:14;;:32;;;;:::i;:55::-;11649:79;;11739:25;11767:59;11808:17;11767:36;11782:20;;11767:10;:14;;:36;;;;:::i;:59::-;11739:87;-1:-1:-1;11857:23:0;11739:87;11911:13;11883:25;11896:12;11883:10;:25;:::i;:::-;:41;;;;:::i;:::-;:61;;;;:::i;:::-;11996:1;11975:18;:22;;;12008:16;:20;;;12039:16;:20;;;12070;:24;;;12128:18;;12120:62;;11857:87;;-1:-1:-1;;;;;;12128:18:0;;12160:17;;12120:62;11996:1;12120:62;12160:17;12128:18;12120:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12107:75:0;;-1:-1:-1;;12206:19:0;;;;;:42;;;12247:1;12229:15;:19;12206:42;12203:210;;;12264:46;12277:15;12294;12264:12;:46::i;:::-;12382:18;;;12330:71;;;19381:25:1;;;19422:18;;;19415:34;;;19465:18;;19458:34;12330:71:0;;19369:2:1;19354:18;12330:71:0;;;;;;;12203:210;12464:14;;12456:62;;-1:-1:-1;;;;;12464:14:0;;;;12492:21;;12456:62;;;;12492:21;12464:14;12456:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;10665:1861:0:o;19267:389::-;19392:7;19388:129;;19416:14;:12;:14::i;:::-;19388:129;;;19472:33;19482:6;19490;19498;19472:9;:33::i;:::-;19463:42;;19388:129;19529:44;19547:6;19555:9;19566:6;19529:17;:44::i;:::-;19598:7;19594:55;;19622:15;18839:22;;18822:14;:39;18891:24;;18872:16;:43;18943:22;;18926:14;:39;18997:26;;18976:18;:47;19052:23;;19034:15;:41;19106:25;;19086:17;:45;19160:23;;19142:15;:41;19216:27;;19194:19;:49;18778:473;19622:15;19267:389;;;;;:::o;1692:132::-;1750:7;1777:39;1781:1;1784;1777:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1770:46;1692:132;-1:-1:-1;;;1692:132:0:o;1096:136::-;1154:7;1181:43;1185:1;1188;1181:43;;;;;;;;;;;;;;;;;:3;:43::i;1438:246::-;1496:7;1520:6;1516:47;;-1:-1:-1;1550:1:0;1543:8;;1516:47;1573:9;1585:5;1589:1;1585;:5;:::i;:::-;1573:17;-1:-1:-1;1618:1:0;1609:5;1613:1;1573:17;1609:5;:::i;:::-;:10;1601:56;;;;-1:-1:-1;;;1601:56:0;;19705:2:1;1601:56:0;;;19687:21:1;19744:2;19724:18;;;19717:30;19783:34;19763:18;;;19756:62;-1:-1:-1;;;19834:18:1;;;19827:31;19875:19;;1601:56:0;19503:397:1;13025:423:0;13138:15;;13106:62;;13123:4;;-1:-1:-1;;;;;13138:15:0;13156:11;13106:8;:62::i;:::-;13179:15;;13383:16;;13179:261;;-1:-1:-1;;;13179:261:0;;-1:-1:-1;;;;;13179:15:0;;;;:31;;13218:9;;13179:261;;13251:4;;13271:11;;13179:15;;;;13383:16;;13414:15;;13179:261;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17808:958::-;17854:14;;:19;:44;;;;-1:-1:-1;17877:16:0;;:21;17854:44;:67;;;;-1:-1:-1;17902:14:0;;:19;17854:67;:94;;;;-1:-1:-1;17925:18:0;;:23;17854:94;:118;;;;-1:-1:-1;17952:15:0;;:20;17854:118;:144;;;;-1:-1:-1;17976:17:0;;:22;17854:144;:168;;;;-1:-1:-1;18002:15:0;;:20;17854:168;:196;;;;-1:-1:-1;18026:19:0;;:24;17854:196;17851:208;;;17808:958::o;17851:208::-;18104:14;;;18079:22;:39;18156:16;;;18129:24;:43;18208:14;;;18183:22;:39;18262:18;;;18233:26;:47;18317:15;;;18291:23;:41;18371:17;;;18343:25;:45;18425:15;;;18399:23;:41;18481:19;;;18451:27;:49;-1:-1:-1;18521:18:0;;;;18550:20;;;;18581:18;;;;18610:22;;;;18643:19;;;18673:21;;;18705:19;;;18735:23;17808:958::o;19939:1388::-;20020:7;20040:18;20069:15;20095:14;20120:16;20147:14;20217:12;20196:17;;20175:18;;:38;;;;:::i;:::-;:54;20172:696;;-1:-1:-1;20258:2:0;;-1:-1:-1;20285:2:0;;-1:-1:-1;20285:2:0;;-1:-1:-1;20339:2:0;;-1:-1:-1;20285:2:0;20172:696;;;20413:21;20427:6;20413:13;:21::i;:::-;20400:34;;20453:6;20449:408;;;20490:15;;20480:25;;20533:17;;20524:26;;20580:15;;20569:26;;20623:19;;20614:28;;20449:408;;;20693:14;;20683:24;;20735:16;;20726:25;;20781:14;;20770:25;;20823:18;;20814:27;;20449:408;20880:12;20895:31;20922:3;20895:22;:6;20906:10;20895;:22::i;:31::-;20880:46;-1:-1:-1;20975:10:0;20957:15;20964:8;20880:46;20957:15;:::i;:::-;:28;;;;:::i;:::-;20937:16;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;21033:10:0;;-1:-1:-1;21016:14:0;21023:7;21016:4;:14;:::i;:::-;:27;;;;:::i;:::-;20996:16;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;21092:10:0;;-1:-1:-1;21076:13:0;21083:6;21076:4;:13;:::i;:::-;:26;;;;:::i;:::-;21054:18;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;21153:10:0;;-1:-1:-1;21137:13:0;21144:6;21137:4;:13;:::i;:::-;:26;;;;:::i;:::-;21113:20;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;;21191:8:0;;21188:86;;21216:46;21234:6;21250:4;21257;21216:17;:46::i;:::-;21305:14;21315:4;21305:14;;:::i;:::-;;19939:1388;-1:-1:-1;;;;;;;;;;19939:1388:0:o;19664:267::-;-1:-1:-1;;;;;19780:15:0;;;;;;:7;:15;;;;;;:28;;19800:7;19780:19;:28::i;:::-;-1:-1:-1;;;;;19762:15:0;;;;;;;:7;:15;;;;;;:46;;;;19840:18;;;;;;;:31;;19863:7;19840:22;:31::i;:::-;-1:-1:-1;;;;;19819:18:0;;;;;;;:7;:18;;;;;;;:52;;;;19887:36;;;;;;;;;;19915:7;3133:25:1;;3121:2;3106:18;;2987:177;1832:189:0;1918:7;1953:12;1946:5;1938:28;;;;-1:-1:-1;;;1938:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1977:9:0;1989:5;1993:1;1989;:5;:::i;21871:294::-;21928:7;21952:6;21948:121;;;22038:19;;22020:15;;22000:17;;21982:15;;:35;;;;:::i;:::-;:53;;;;:::i;:::-;:75;;;;:::i;21948:121::-;22139:18;;22122:14;;22103:16;;22086:14;;:33;;;;:::i;909:179::-;967:7;;999:5;1003:1;999;:5;:::i;:::-;987:17;;1028:1;1023;:6;;1015:46;;;;-1:-1:-1;;;1015:46:0;;20727:2:1;1015:46:0;;;20709:21:1;20766:2;20746:18;;;20739:30;20805:29;20785:18;;;20778:57;20852:18;;1015:46:0;20525:351:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1403:127::-;1464:10;1459:3;1455:20;1452:1;1445:31;1495:4;1492:1;1485:15;1519:4;1516:1;1509:15;1535:118;1621:5;1614:13;1607:21;1600:5;1597:32;1587:60;;1643:1;1640;1633:12;1658:128;1723:20;;1752:28;1723:20;1752:28;:::i;1791:1191::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:52;;;1958:1;1955;1948:12;1910:52;1998:9;1985:23;2027:18;2068:2;2060:6;2057:14;2054:34;;;2084:1;2081;2074:12;2054:34;2122:6;2111:9;2107:22;2097:32;;2167:7;2160:4;2156:2;2152:13;2148:27;2138:55;;2189:1;2186;2179:12;2138:55;2225:2;2212:16;2247:4;2270:2;2266;2263:10;2260:36;;;2276:18;;:::i;:::-;2322:2;2319:1;2315:10;2354:2;2348:9;2417:2;2413:7;2408:2;2404;2400:11;2396:25;2388:6;2384:38;2472:6;2460:10;2457:22;2452:2;2440:10;2437:18;2434:46;2431:72;;;2483:18;;:::i;:::-;2519:2;2512:22;2569:18;;;2603:15;;;;-1:-1:-1;2645:11:1;;;2641:20;;;2673:19;;;2670:39;;;2705:1;2702;2695:12;2670:39;2729:11;;;;2749:148;2765:6;2760:3;2757:15;2749:148;;;2831:23;2850:3;2831:23;:::i;:::-;2819:36;;2782:12;;;;2875;;;;2749:148;;;2916:6;-1:-1:-1;2941:35:1;;-1:-1:-1;2957:18:1;;;2941:35;:::i;:::-;2931:45;;;;;;1791:1191;;;;;:::o;3169:456::-;3246:6;3254;3262;3315:2;3303:9;3294:7;3290:23;3286:32;3283:52;;;3331:1;3328;3321:12;3283:52;3370:9;3357:23;3389:31;3414:5;3389:31;:::i;:::-;3439:5;-1:-1:-1;3496:2:1;3481:18;;3468:32;3509:33;3468:32;3509:33;:::i;:::-;3169:456;;3561:7;;-1:-1:-1;;;3615:2:1;3600:18;;;;3587:32;;3169:456::o;3630:180::-;3689:6;3742:2;3730:9;3721:7;3717:23;3713:32;3710:52;;;3758:1;3755;3748:12;3710:52;-1:-1:-1;3781:23:1;;3630:180;-1:-1:-1;3630:180:1:o;3815:247::-;3874:6;3927:2;3915:9;3906:7;3902:23;3898:32;3895:52;;;3943:1;3940;3933:12;3895:52;3982:9;3969:23;4001:31;4026:5;4001:31;:::i;4256:241::-;4312:6;4365:2;4353:9;4344:7;4340:23;4336:32;4333:52;;;4381:1;4378;4371:12;4333:52;4420:9;4407:23;4439:28;4461:5;4439:28;:::i;4502:385::-;4588:6;4596;4604;4612;4665:3;4653:9;4644:7;4640:23;4636:33;4633:53;;;4682:1;4679;4672:12;4633:53;-1:-1:-1;;4705:23:1;;;4775:2;4760:18;;4747:32;;-1:-1:-1;4826:2:1;4811:18;;4798:32;;4877:2;4862:18;4849:32;;-1:-1:-1;4502:385:1;-1:-1:-1;4502:385:1:o;5100:388::-;5168:6;5176;5229:2;5217:9;5208:7;5204:23;5200:32;5197:52;;;5245:1;5242;5235:12;5197:52;5284:9;5271:23;5303:31;5328:5;5303:31;:::i;:::-;5353:5;-1:-1:-1;5410:2:1;5395:18;;5382:32;5423:33;5382:32;5423:33;:::i;:::-;5475:7;5465:17;;;5100:388;;;;;:::o;5493:356::-;5695:2;5677:21;;;5714:18;;;5707:30;5773:34;5768:2;5753:18;;5746:62;5840:2;5825:18;;5493:356::o;5854:127::-;5915:10;5910:3;5906:20;5903:1;5896:31;5946:4;5943:1;5936:15;5970:4;5967:1;5960:15;5986:127;6047:10;6042:3;6038:20;6035:1;6028:31;6078:4;6075:1;6068:15;6102:4;6099:1;6092:15;6118:135;6157:3;-1:-1:-1;;6178:17:1;;6175:43;;;6198:18;;:::i;:::-;-1:-1:-1;6245:1:1;6234:13;;6118:135::o;6258:422::-;6347:1;6390:5;6347:1;6404:270;6425:7;6415:8;6412:21;6404:270;;;6484:4;6480:1;6476:6;6472:17;6466:4;6463:27;6460:53;;;6493:18;;:::i;:::-;6543:7;6533:8;6529:22;6526:55;;;6563:16;;;;6526:55;6642:22;;;;6602:15;;;;6404:270;;;6408:3;6258:422;;;;;:::o;6685:806::-;6734:5;6764:8;6754:80;;-1:-1:-1;6805:1:1;6819:5;;6754:80;6853:4;6843:76;;-1:-1:-1;6890:1:1;6904:5;;6843:76;6935:4;6953:1;6948:59;;;;7021:1;7016:130;;;;6928:218;;6948:59;6978:1;6969:10;;6992:5;;;7016:130;7053:3;7043:8;7040:17;7037:43;;;7060:18;;:::i;:::-;-1:-1:-1;;7116:1:1;7102:16;;7131:5;;6928:218;;7230:2;7220:8;7217:16;7211:3;7205:4;7202:13;7198:36;7192:2;7182:8;7179:16;7174:2;7168:4;7165:12;7161:35;7158:77;7155:159;;;-1:-1:-1;7267:19:1;;;7299:5;;7155:159;7346:34;7371:8;7365:4;7346:34;:::i;:::-;7416:6;7412:1;7408:6;7404:19;7395:7;7392:32;7389:58;;;7427:18;;:::i;:::-;7465:20;;6685:806;-1:-1:-1;;;6685:806:1:o;7496:140::-;7554:5;7583:47;7624:4;7614:8;7610:19;7604:4;7583:47;:::i;7641:168::-;7681:7;7747:1;7743;7739:6;7735:14;7732:1;7729:21;7724:1;7717:9;7710:17;7706:45;7703:71;;;7754:18;;:::i;:::-;-1:-1:-1;7794:9:1;;7641:168::o;9046:128::-;9086:3;9117:1;9113:6;9110:1;9107:13;9104:39;;;9123:18;;:::i;:::-;-1:-1:-1;9159:9:1;;9046:128::o;10731:251::-;10801:6;10854:2;10842:9;10833:7;10829:23;10825:32;10822:52;;;10870:1;10867;10860:12;10822:52;10902:9;10896:16;10921:31;10946:5;10921:31;:::i;11296:607::-;-1:-1:-1;;;;;11655:15:1;;;11637:34;;11702:2;11687:18;;11680:34;;;;11745:2;11730:18;;11723:34;;;;11788:2;11773:18;;11766:34;;;;11837:15;;;11831:3;11816:19;;11809:44;11617:3;11869:19;;11862:35;;;;11586:3;11571:19;;11296:607::o;11908:306::-;11996:6;12004;12012;12065:2;12053:9;12044:7;12040:23;12036:32;12033:52;;;12081:1;12078;12071:12;12033:52;12110:9;12104:16;12094:26;;12160:2;12149:9;12145:18;12139:25;12129:35;;12204:2;12193:9;12189:18;12183:25;12173:35;;11908:306;;;;;:::o;12498:245::-;12565:6;12618:2;12606:9;12597:7;12593:23;12589:32;12586:52;;;12634:1;12631;12624:12;12586:52;12666:9;12660:16;12685:28;12707:5;12685:28;:::i;16194:125::-;16234:4;16262:1;16259;16256:8;16253:34;;;16267:18;;:::i;:::-;-1:-1:-1;16304:9:1;;16194:125::o;17972:980::-;18234:4;18282:3;18271:9;18267:19;18313:6;18302:9;18295:25;18339:2;18377:6;18372:2;18361:9;18357:18;18350:34;18420:3;18415:2;18404:9;18400:18;18393:31;18444:6;18479;18473:13;18510:6;18502;18495:22;18548:3;18537:9;18533:19;18526:26;;18587:2;18579:6;18575:15;18561:29;;18608:1;18618:195;18632:6;18629:1;18626:13;18618:195;;;18697:13;;-1:-1:-1;;;;;18693:39:1;18681:52;;18788:15;;;;18753:12;;;;18729:1;18647:9;18618:195;;;-1:-1:-1;;;;;;;18869:32:1;;;;18864:2;18849:18;;18842:60;-1:-1:-1;;;18933:3:1;18918:19;18911:35;18830:3;17972:980;-1:-1:-1;;;17972:980:1:o;18957:217::-;18997:1;19023;19013:132;;19067:10;19062:3;19058:20;19055:1;19048:31;19102:4;19099:1;19092:15;19130:4;19127:1;19120:15;19013:132;-1:-1:-1;19159:9:1;;18957:217::o

Swarm Source

ipfs://f8063c3ae259802380d6c7c9c2d842971cbba5f44bd1966d8c1fb56a5254ad95

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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