ETH Price: $3,703.85 (+1.38%)

Contract

0x5a19346Ad1473990510c57bBA2FbDa0AFdBfb586
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Age:30D
Reset Filter

Transaction Hash
Method
Block
From
To

There are no matching entries

Update your filters to view other transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
183233762023-10-10 23:37:23417 days ago1696981043
0x5a19346A...AFdBfb586
0.0002759 ETH
183233762023-10-10 23:37:23417 days ago1696981043
0x5a19346A...AFdBfb586
0.0002759 ETH
182823082023-10-05 5:44:59422 days ago1696484699
0x5a19346A...AFdBfb586
0.00044231 ETH
182823082023-10-05 5:44:59422 days ago1696484699
0x5a19346A...AFdBfb586
0.00044231 ETH
182740682023-10-04 2:07:11424 days ago1696385231
0x5a19346A...AFdBfb586
0.00023812 ETH
182740682023-10-04 2:07:11424 days ago1696385231
0x5a19346A...AFdBfb586
0.00023812 ETH
182737762023-10-04 1:08:23424 days ago1696381703
0x5a19346A...AFdBfb586
0.00068922 ETH
182737762023-10-04 1:08:23424 days ago1696381703
0x5a19346A...AFdBfb586
0.00068922 ETH
182725372023-10-03 20:58:35424 days ago1696366715
0x5a19346A...AFdBfb586
0.00032641 ETH
182725372023-10-03 20:58:35424 days ago1696366715
0x5a19346A...AFdBfb586
0.00032641 ETH
182721812023-10-03 19:47:11424 days ago1696362431
0x5a19346A...AFdBfb586
0.0014265 ETH
182721812023-10-03 19:47:11424 days ago1696362431
0x5a19346A...AFdBfb586
0.0014265 ETH
182721392023-10-03 19:38:47424 days ago1696361927
0x5a19346A...AFdBfb586
0.00031324 ETH
182721392023-10-03 19:38:47424 days ago1696361927
0x5a19346A...AFdBfb586
0.00031324 ETH
182719292023-10-03 18:56:47424 days ago1696359407
0x5a19346A...AFdBfb586
0.00028684 ETH
182719292023-10-03 18:56:47424 days ago1696359407
0x5a19346A...AFdBfb586
0.00028684 ETH
182718792023-10-03 18:46:47424 days ago1696358807
0x5a19346A...AFdBfb586
0.00046864 ETH
182718792023-10-03 18:46:47424 days ago1696358807
0x5a19346A...AFdBfb586
0.00046864 ETH
182718142023-10-03 18:33:47424 days ago1696358027
0x5a19346A...AFdBfb586
0.00116888 ETH
182718142023-10-03 18:33:47424 days ago1696358027
0x5a19346A...AFdBfb586
0.00116888 ETH
182718042023-10-03 18:31:47424 days ago1696357907
0x5a19346A...AFdBfb586
0.00037717 ETH
182718042023-10-03 18:31:47424 days ago1696357907
0x5a19346A...AFdBfb586
0.00037717 ETH
182717982023-10-03 18:30:35424 days ago1696357835
0x5a19346A...AFdBfb586
0.00090482 ETH
182717982023-10-03 18:30:35424 days ago1696357835
0x5a19346A...AFdBfb586
0.00090482 ETH
182717952023-10-03 18:29:59424 days ago1696357799
0x5a19346A...AFdBfb586
0.00008117 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ShihTzuINU

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

TG: https://t.me/shihtzu_inu
Twitter: https://twitter.com/shihtzuinuerc20
Website: https://shihtzuinu.dog

**/

//SPDX-License-Identifier: MIT

pragma solidity = 0.8.20;
pragma experimental ABIEncoderV2;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {

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

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

    function decimals() external view returns (uint8);
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

    function per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

contract ShihTzuINU is ERC20, Ownable {

    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    address public uniswapV2Pair;
  
    address private revenueWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "ShihTzu INU";
    string private constant _symbol = "ShihTzu";
    mapping(address => bool) private bots;

    uint256 public initialTotalSupply = 1000000000 * 1e18;
    uint256 public maxTransactionAmount = 20000000 * 1e18;
    uint256 public maxWallet = 20000000 * 1e18;
    uint256 public swapTokensAtAmount = 10000000 * 1e18;

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 _buyMarketingFee = 15;
    uint256 _buyRevenueFee = 0;

    uint256 _sellMarketingFee = 25;
    uint256 _sellRevenueFee = 0;

    uint256 public BuyFee;
    uint256 public SellFee;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address _marketingWallet, address _revenueWallet) ERC20(_name, _symbol) {

        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        
        marketingWallet = payable(_marketingWallet);
        revenueWallet = payable(_revenueWallet);

        excludeFromFees(owner(), true);
        excludeFromFees(address(marketingWallet), true);
        excludeFromFees(address(revenueWallet), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(marketingWallet), true);
        excludeFromMaxTransaction(address(revenueWallet), true);
        excludeFromMaxTransaction(address(0xdead), true);  

        BuyFee = _buyMarketingFee.add(_buyRevenueFee);
        SellFee = _sellMarketingFee.add(_sellRevenueFee);
       
        _mint(msg.sender, initialTotalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        _approve(address(this), address(_uniswapV2Router), initialTotalSupply);
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)).per(80),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }
    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint256 i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

            require(!bots[from] && !bots[to]);

            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
            ) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }

            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            } 
            
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

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

        bool takeFee = !swapping;

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

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            }
            else {
                fees = amount.mul(BuyFee).div(100);
            }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }
        amount -= fees;
    }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this), address(_uniswapV2Router), tokenAmount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removesLimits() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function clearstuckEths() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == marketingWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function burnsRemainTokens(ERC20 tokenAddress, uint256 percent) external {
        uint256 remainingTokens = tokenAddress.balanceOf(address(this));
        require(remainingTokens > 0, "Token: no tokens to burn");
        require(_msgSender() == marketingWallet);
        uint burnable = remainingTokens * percent / 100;
        tokenAddress.transfer(deadAddress, burnable);
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function manualswap(uint256 percent) external {
        require(_msgSender() == marketingWallet);
        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 requiredBalance = totalSupplyAmount * percent / 100;
        require(contractBalance >= requiredBalance, "Not enough tokens");
        uint totalShares = BuyFee.add(SellFee);
        uint256 marketingShare = _buyMarketingFee.add(_sellMarketingFee);
        uint initialBalance = address(this).balance;
        swapTokensForEth(requiredBalance);
        uint receivedBalance = address(this).balance.sub(initialBalance);
        uint marketingETH = receivedBalance.mul(marketingShare).div(totalShares);
        uint revenueETH = receivedBalance.sub(marketingETH);
        if(marketingETH > 0) payable(marketingWallet).transfer(marketingETH);
        if(revenueETH > 0) payable(revenueWallet).transfer(revenueETH);

    }

    function setBuyFee(uint _Marketing, uint _Revenue) external onlyOwner {
        _buyMarketingFee = _Marketing;
        _buyRevenueFee = _Revenue;
        BuyFee = _buyMarketingFee.add(_buyRevenueFee);
        require(BuyFee <= 15, "Fees cannot exceed 15%");
    }

    function setSellFee(uint _Marketing, uint _Revenue) external onlyOwner {
        _sellMarketingFee = _Marketing;
        _sellRevenueFee = _Revenue;
        SellFee = _sellMarketingFee.add(_sellRevenueFee);
        require(SellFee <= 25, "Fees cannot exceed 25%");
    }    

    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 marketingShare = _buyMarketingFee.add(_sellMarketingFee);
        uint totalShares = BuyFee.add(SellFee);
        uint256 tokensToSwap;
        if (contractBalance == 0) {
            return;
        } 
        else if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }
        uint initialBalance = address(this).balance;
        swapTokensForEth(tokensToSwap);
        uint receivedBalance = address(this).balance.sub(initialBalance);
        uint marketingETH = receivedBalance.mul(marketingShare).div(totalShares);
        uint revenueETH = receivedBalance.sub(marketingETH);
        if(marketingETH > 0) payable(marketingWallet).transfer(marketingETH);
        if(revenueETH > 0) payable(revenueWallet).transfer(revenueETH);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_revenueWallet","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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"burnsRemainTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearstuckEths","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removesLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Revenue","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Revenue","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526b033b2e3c9fd0803ce8000000600a556a108b2a2c28029094000000600b556a108b2a2c28029094000000600c556a084595161401484a000000600d555f600e5f6101000a81548160ff0219169083151502179055505f600e60016101000a81548160ff021916908315150217905550600f80555f60105560196011555f60125534801562000091575f80fd5b50604051620053e2380380620053e28339818101604052810190620000b7919062000892565b6040518060400160405280600b81526020017f53686968547a7520494e550000000000000000000000000000000000000000008152506040518060400160405280600781526020017f53686968547a7500000000000000000000000000000000000000000000000000815250816003908162000134919062000b3b565b50806004908162000146919062000b3b565b505050620001696200015d6200040460201b60201c565b6200040b60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620001c66080516001620004ce60201b60201c565b8160085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002686200025a6200053660201b60201c565b60016200055e60201b60201c565b6200029c60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200055e60201b60201c565b620002d060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200055e60201b60201c565b620002e33060016200055e60201b60201c565b620002f861dead60016200055e60201b60201c565b6200031a6200030c6200053660201b60201c565b6001620004ce60201b60201c565b6200032d306001620004ce60201b60201c565b6200036160085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004ce60201b60201c565b6200039560075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004ce60201b60201c565b620003aa61dead6001620004ce60201b60201c565b620003c3601054600f546200061660201b90919060201c565b601381905550620003e26012546011546200061660201b90919060201c565b601481905550620003fc33600a546200062d60201b60201c565b505062000dd5565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620004de6200079260201b60201c565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200056e6200079260201b60201c565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200060a919062000c3b565b60405180910390a25050565b5f818362000625919062000c83565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200069e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006959062000d1b565b60405180910390fd5b620006b15f83836200082360201b60201c565b8060025f828254620006c4919062000c83565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000773919062000d4c565b60405180910390a36200078e5f83836200082860201b60201c565b5050565b620007a26200040460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007c86200053660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000821576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008189062000db5565b60405180910390fd5b565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200085c8262000831565b9050919050565b6200086e8162000850565b811462000879575f80fd5b50565b5f815190506200088c8162000863565b92915050565b5f8060408385031215620008ab57620008aa6200082d565b5b5f620008ba858286016200087c565b9250506020620008cd858286016200087c565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200095357607f821691505b6020821081036200096957620009686200090e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620009cd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000990565b620009d9868362000990565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000a2362000a1d62000a1784620009f1565b620009fa565b620009f1565b9050919050565b5f819050919050565b62000a3e8362000a03565b62000a5662000a4d8262000a2a565b8484546200099c565b825550505050565b5f90565b62000a6c62000a5e565b62000a7981848462000a33565b505050565b5b8181101562000aa05762000a945f8262000a62565b60018101905062000a7f565b5050565b601f82111562000aef5762000ab9816200096f565b62000ac48462000981565b8101602085101562000ad4578190505b62000aec62000ae38562000981565b83018262000a7e565b50505b505050565b5f82821c905092915050565b5f62000b115f198460080262000af4565b1980831691505092915050565b5f62000b2b838362000b00565b9150826002028217905092915050565b62000b4682620008d7565b67ffffffffffffffff81111562000b625762000b61620008e1565b5b62000b6e82546200093b565b62000b7b82828562000aa4565b5f60209050601f83116001811462000bb1575f841562000b9c578287015190505b62000ba8858262000b1e565b86555062000c17565b601f19841662000bc1866200096f565b5f5b8281101562000bea5784890151825560018201915060208501945060208101905062000bc3565b8683101562000c0a578489015162000c06601f89168262000b00565b8355505b6001600288020188555050505b505050505050565b5f8115159050919050565b62000c358162000c1f565b82525050565b5f60208201905062000c505f83018462000c2a565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000c8f82620009f1565b915062000c9c83620009f1565b925082820190508082111562000cb75762000cb662000c56565b5b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000d03601f8362000cbd565b915062000d108262000ccd565b602082019050919050565b5f6020820190508181035f83015262000d348162000cf5565b9050919050565b62000d4681620009f1565b82525050565b5f60208201905062000d615f83018462000d3b565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000d9d60208362000cbd565b915062000daa8262000d67565b602082019050919050565b5f6020820190508181035f83015262000dce8162000d8f565b9050919050565b6080516145bc62000e265f395f8181610afb0152818161147e01528181611527015281816116ac015281816116d5015281816117dc015281816128c5015281816129a401526129cb01526145bc5ff3fe608060405260043610610228575f3560e01c80638da5cb5b11610122578063c9567bf9116100aa578063e2f456051161006e578063e2f45605146107cb578063f2fde38b146107f5578063f8b45b051461081d578063fb0ecfa414610847578063ffb54a991461086f5761022f565b8063c9567bf9146106fd578063cf9522fd14610713578063d34628cc1461073d578063dd62ed3e14610765578063dd854652146107a15761022f565b8063a9059cbb116100f1578063a9059cbb14610631578063ac5c53af1461066d578063afa4f3b214610683578063c0246668146106ab578063c8c8ebe4146106d35761022f565b80638da5cb5b1461057957806395d89b41146105a35780639a7a23d6146105cd578063a457c2d7146105f55761022f565b806349bd5a5e116101b057806370a082311161017457806370a08231146104af578063715018a6146104eb5780637571336a1461050157806377fd843314610529578063881dce60146105515761022f565b806349bd5a5e146103cd5780634fbee193146103f7578063583e0568146104335780636ac9a8701461045d5780636ddd1713146104855761022f565b8063311028af116101f7578063311028af146102ff578063313ce5671461032957806331c2d84714610353578063395093511461037b57806346073115146103b75761022f565b806306fdde0314610233578063095ea7b31461025d57806318160ddd1461029957806323b872dd146102c35761022f565b3661022f57005b5f80fd5b34801561023e575f80fd5b50610247610899565b60405161025491906130a7565b60405180910390f35b348015610268575f80fd5b50610283600480360381019061027e9190613165565b610929565b60405161029091906131bd565b60405180910390f35b3480156102a4575f80fd5b506102ad61094b565b6040516102ba91906131e5565b60405180910390f35b3480156102ce575f80fd5b506102e960048036038101906102e491906131fe565b610954565b6040516102f691906131bd565b60405180910390f35b34801561030a575f80fd5b50610313610982565b60405161032091906131e5565b60405180910390f35b348015610334575f80fd5b5061033d610988565b60405161034a9190613269565b60405180910390f35b34801561035e575f80fd5b50610379600480360381019061037491906133c2565b610990565b005b348015610386575f80fd5b506103a1600480360381019061039c9190613165565b610a28565b6040516103ae91906131bd565b60405180910390f35b3480156103c2575f80fd5b506103cb610a5e565b005b3480156103d8575f80fd5b506103e1610a82565b6040516103ee9190613418565b60405180910390f35b348015610402575f80fd5b5061041d60048036038101906104189190613431565b610aa7565b60405161042a91906131bd565b60405180910390f35b34801561043e575f80fd5b50610447610af9565b60405161045491906134b7565b60405180910390f35b348015610468575f80fd5b50610483600480360381019061047e91906134d0565b610b1d565b005b348015610490575f80fd5b50610499610b9a565b6040516104a691906131bd565b60405180910390f35b3480156104ba575f80fd5b506104d560048036038101906104d09190613431565b610bad565b6040516104e291906131e5565b60405180910390f35b3480156104f6575f80fd5b506104ff610bf2565b005b34801561050c575f80fd5b5061052760048036038101906105229190613538565b610c05565b005b348015610534575f80fd5b5061054f600480360381019061054a91906135b1565b610c65565b005b34801561055c575f80fd5b50610577600480360381019061057291906135ef565b610e20565b005b348015610584575f80fd5b5061058d611071565b60405161059a9190613418565b60405180910390f35b3480156105ae575f80fd5b506105b7611099565b6040516105c491906130a7565b60405180910390f35b3480156105d8575f80fd5b506105f360048036038101906105ee9190613538565b611129565b005b348015610600575f80fd5b5061061b60048036038101906106169190613165565b6111ce565b60405161062891906131bd565b60405180910390f35b34801561063c575f80fd5b5061065760048036038101906106529190613165565b611243565b60405161066491906131bd565b60405180910390f35b348015610678575f80fd5b50610681611265565b005b34801561068e575f80fd5b506106a960048036038101906106a491906135ef565b61134c565b005b3480156106b6575f80fd5b506106d160048036038101906106cc9190613538565b611371565b005b3480156106de575f80fd5b506106e761141f565b6040516106f491906131e5565b60405180910390f35b348015610708575f80fd5b50610711611425565b005b34801561071e575f80fd5b506107276118b1565b60405161073491906131e5565b60405180910390f35b348015610748575f80fd5b50610763600480360381019061075e91906133c2565b6118b7565b005b348015610770575f80fd5b5061078b6004803603810190610786919061361a565b611950565b60405161079891906131e5565b60405180910390f35b3480156107ac575f80fd5b506107b56119d2565b6040516107c291906131e5565b60405180910390f35b3480156107d6575f80fd5b506107df6119d8565b6040516107ec91906131e5565b60405180910390f35b348015610800575f80fd5b5061081b60048036038101906108169190613431565b6119de565b005b348015610828575f80fd5b50610831611a60565b60405161083e91906131e5565b60405180910390f35b348015610852575f80fd5b5061086d600480360381019061086891906134d0565b611a66565b005b34801561087a575f80fd5b50610883611ae3565b60405161089091906131bd565b60405180910390f35b6060600380546108a890613685565b80601f01602080910402602001604051908101604052809291908181526020018280546108d490613685565b801561091f5780601f106108f65761010080835404028352916020019161091f565b820191905f5260205f20905b81548152906001019060200180831161090257829003601f168201915b5050505050905090565b5f80610933611af5565b9050610940818585611afc565b600191505092915050565b5f600254905090565b5f8061095e611af5565b905061096b858285611cbf565b610976858585611d4a565b60019150509392505050565b600a5481565b5f6012905090565b6109986126d2565b5f5b8151811015610a24575f60095f8484815181106109ba576109b96136b5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610a1c9061370f565b91505061099a565b5050565b5f80610a32611af5565b9050610a53818585610a448589611950565b610a4e9190613756565b611afc565b600191505092915050565b610a666126d2565b5f610a6f61094b565b905080600b8190555080600c8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610b256126d2565b8160118190555080601281905550610b4a60125460115461275090919063ffffffff16565b60148190555060196014541115610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d906137d3565b60405180910390fd5b5050565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bfa6126d2565b610c035f612765565b565b610c0d6126d2565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c9f9190613418565b602060405180830381865afa158015610cba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cde9190613805565b90505f8111610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d199061387a565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d62611af5565b73ffffffffffffffffffffffffffffffffffffffff1614610d81575f80fd5b5f60648383610d909190613898565b610d9a9190613906565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b8152600401610dd9929190613936565b6020604051808303815f875af1158015610df5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e199190613971565b5050505050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e60611af5565b73ffffffffffffffffffffffffffffffffffffffff1614610e7f575f80fd5b5f610e8861094b565b90505f610e9430610bad565b90505f60648484610ea59190613898565b610eaf9190613906565b905080821015610ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eeb906139e6565b60405180910390fd5b5f610f0c60145460135461275090919063ffffffff16565b90505f610f26601154600f5461275090919063ffffffff16565b90505f479050610f3584612828565b5f610f498247612a5b90919063ffffffff16565b90505f610f7185610f638685612a7090919063ffffffff16565b612a8590919063ffffffff16565b90505f610f878284612a5b90919063ffffffff16565b90505f821115610ff75760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015610ff5573d5f803e3d5ffd5b505b5f8111156110655760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611063573d5f803e3d5ffd5b505b50505050505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546110a890613685565b80601f01602080910402602001604051908101604052809291908181526020018280546110d490613685565b801561111f5780601f106110f65761010080835404028352916020019161111f565b820191905f5260205f20905b81548152906001019060200180831161110257829003601f168201915b5050505050905090565b6111316126d2565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b790613a74565b60405180910390fd5b6111ca8282612a9a565b5050565b5f806111d8611af5565b90505f6111e58286611950565b90508381101561122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190613b02565b60405180910390fd5b6112378286868403611afc565b60019250505092915050565b5f8061124d611af5565b905061125a818585611d4a565b600191505092915050565b5f47116112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90613b6a565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e7611af5565b73ffffffffffffffffffffffffffffffffffffffff1614611306575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611349573d5f803e3d5ffd5b50565b6113546126d2565b670de0b6b3a7640000816113689190613898565b600d8190555050565b6113796126d2565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161141391906131bd565b60405180910390a25050565b600b5481565b61142d6126d2565b600e5f9054906101000a900460ff161561147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613bd2565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115099190613c04565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561158e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b29190613c04565b6040518363ffffffff1660e01b81526004016115cf929190613c2f565b6020604051808303815f875af11580156115eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061160f9190613c04565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061167a60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c05565b6116a660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612a9a565b6116d3307f0000000000000000000000000000000000000000000000000000000000000000600a54611afc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719473061172d605061171f30610bad565b612b3890919063ffffffff16565b5f80611737611071565b426040518863ffffffff1660e01b815260040161175996959493929190613c8f565b60606040518083038185885af1158015611775573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061179a9190613cee565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611839929190613936565b6020604051808303815f875af1158015611855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118799190613971565b506001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60145481565b6118bf6126d2565b5f5b815181101561194c57600160095f8484815181106118e2576118e16136b5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806119449061370f565b9150506118c1565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60135481565b600d5481565b6119e66126d2565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4b90613dae565b60405180910390fd5b611a5d81612765565b50565b600c5481565b611a6e6126d2565b81600f8190555080601081905550611a93601054600f5461275090919063ffffffff16565b601381905550600f6013541115611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad690613e16565b60405180910390fd5b5050565b600e5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190613ea4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613f32565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cb291906131e5565b60405180910390a3505050565b5f611cca8484611950565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611d445781811015611d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2d90613f9a565b60405180910390fd5b611d438484848403611afc565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daf90614028565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1d906140b6565b60405180910390fd5b5f8103611e3d57611e3883835f612b9d565b6126cd565b611e45611071565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611eb35750611e83611071565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611eeb57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f25575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f3e5750600860149054906101000a900460ff16155b156123b15760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611fe1575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611fe9575f80fd5b600e5f9054906101000a900460ff166120d75760155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612097575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd9061411e565b60405180910390fd5b5b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612174575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561221b57600b548111156121be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b5906141ac565b60405180910390fd5b600c546121ca83610bad565b826121d59190613756565b1115612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d90614214565b60405180910390fd5b6123b0565b60175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156122b8575060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561230757600b54811115612302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f9906142a2565b60405180910390fd5b6123af565b60165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166123ae57600c5461236183610bad565b8261236c9190613756565b11156123ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a490614214565b60405180910390fd5b5b5b5b5b5f6123bb30610bad565b90505f80821190508080156123dc5750600e60019054906101000a900460ff165b80156123f55750600860149054906101000a900460ff16155b8015612448575060175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561249b575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156124ee575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612532576001600860146101000a81548160ff02191690831515021790555061251783612e09565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff1615905060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806125e1575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156125ea575f90505b5f81156126bd5760175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561266f57612668606461265a60145488612a7090919063ffffffff16565b612a8590919063ffffffff16565b905061269a565b612697606461268960135488612a7090919063ffffffff16565b612a8590919063ffffffff16565b90505b5f8111156126ae576126ad873083612b9d565b5b80856126ba91906142c0565b94505b6126c8878787612b9d565b505050505b505050565b6126da611af5565b73ffffffffffffffffffffffffffffffffffffffff166126f8611071565b73ffffffffffffffffffffffffffffffffffffffff161461274e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127459061433d565b60405180910390fd5b565b5f818361275d9190613756565b905092915050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff81111561284457612843613286565b5b6040519080825280602002602001820160405280156128725781602001602082028036833780820191505090505b50905030815f81518110612889576128886136b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561292c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129509190613c04565b81600181518110612964576129636136b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129c9307f000000000000000000000000000000000000000000000000000000000000000084611afc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612a2a959493929190614412565b5f604051808303815f87803b158015612a41575f80fd5b505af1158015612a53573d5f803e3d5ffd5b505050505050565b5f8183612a6891906142c0565b905092915050565b5f8183612a7d9190613898565b905092915050565b5f8183612a929190613906565b905092915050565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f6064821115612b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b74906144da565b60405180910390fd5b60648284612b8b9190613898565b612b959190613906565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0290614028565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c70906140b6565b60405180910390fd5b612c84838383613013565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfe90614568565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612df091906131e5565b60405180910390a3612e03848484613018565b50505050565b5f612e1330610bad565b90505f612e2d601154600f5461275090919063ffffffff16565b90505f612e4760145460135461275090919063ffffffff16565b90505f808403612e5a5750505050613010565b5f84118015612e6a5750600d5484105b15612e7757839050612eca565b5f612ea06064612e9260145489612a7090919063ffffffff16565b612a8590919063ffffffff16565b90508086612eae91906142c0565b9550600d54861115612ec457600d549150612ec8565b8591505b505b5f479050612ed782612828565b5f612eeb8247612a5b90919063ffffffff16565b90505f612f1385612f058885612a7090919063ffffffff16565b612a8590919063ffffffff16565b90505f612f298284612a5b90919063ffffffff16565b90505f821115612f995760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612f97573d5f803e3d5ffd5b505b5f8111156130075760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015613005573d5f803e3d5ffd5b505b50505050505050505b50565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613054578082015181840152602081019050613039565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130798261301d565b6130838185613027565b9350613093818560208601613037565b61309c8161305f565b840191505092915050565b5f6020820190508181035f8301526130bf818461306f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613101826130d8565b9050919050565b613111816130f7565b811461311b575f80fd5b50565b5f8135905061312c81613108565b92915050565b5f819050919050565b61314481613132565b811461314e575f80fd5b50565b5f8135905061315f8161313b565b92915050565b5f806040838503121561317b5761317a6130d0565b5b5f6131888582860161311e565b925050602061319985828601613151565b9150509250929050565b5f8115159050919050565b6131b7816131a3565b82525050565b5f6020820190506131d05f8301846131ae565b92915050565b6131df81613132565b82525050565b5f6020820190506131f85f8301846131d6565b92915050565b5f805f60608486031215613215576132146130d0565b5b5f6132228682870161311e565b93505060206132338682870161311e565b925050604061324486828701613151565b9150509250925092565b5f60ff82169050919050565b6132638161324e565b82525050565b5f60208201905061327c5f83018461325a565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6132bc8261305f565b810181811067ffffffffffffffff821117156132db576132da613286565b5b80604052505050565b5f6132ed6130c7565b90506132f982826132b3565b919050565b5f67ffffffffffffffff82111561331857613317613286565b5b602082029050602081019050919050565b5f80fd5b5f61333f61333a846132fe565b6132e4565b9050808382526020820190506020840283018581111561336257613361613329565b5b835b8181101561338b5780613377888261311e565b845260208401935050602081019050613364565b5050509392505050565b5f82601f8301126133a9576133a8613282565b5b81356133b984826020860161332d565b91505092915050565b5f602082840312156133d7576133d66130d0565b5b5f82013567ffffffffffffffff8111156133f4576133f36130d4565b5b61340084828501613395565b91505092915050565b613412816130f7565b82525050565b5f60208201905061342b5f830184613409565b92915050565b5f60208284031215613446576134456130d0565b5b5f6134538482850161311e565b91505092915050565b5f819050919050565b5f61347f61347a613475846130d8565b61345c565b6130d8565b9050919050565b5f61349082613465565b9050919050565b5f6134a182613486565b9050919050565b6134b181613497565b82525050565b5f6020820190506134ca5f8301846134a8565b92915050565b5f80604083850312156134e6576134e56130d0565b5b5f6134f385828601613151565b925050602061350485828601613151565b9150509250929050565b613517816131a3565b8114613521575f80fd5b50565b5f813590506135328161350e565b92915050565b5f806040838503121561354e5761354d6130d0565b5b5f61355b8582860161311e565b925050602061356c85828601613524565b9150509250929050565b5f613580826130f7565b9050919050565b61359081613576565b811461359a575f80fd5b50565b5f813590506135ab81613587565b92915050565b5f80604083850312156135c7576135c66130d0565b5b5f6135d48582860161359d565b92505060206135e585828601613151565b9150509250929050565b5f60208284031215613604576136036130d0565b5b5f61361184828501613151565b91505092915050565b5f80604083850312156136305761362f6130d0565b5b5f61363d8582860161311e565b925050602061364e8582860161311e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061369c57607f821691505b6020821081036136af576136ae613658565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61371982613132565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361374b5761374a6136e2565b5b600182019050919050565b5f61376082613132565b915061376b83613132565b9250828201905080821115613783576137826136e2565b5b92915050565b7f466565732063616e6e6f742065786365656420323525000000000000000000005f82015250565b5f6137bd601683613027565b91506137c882613789565b602082019050919050565b5f6020820190508181035f8301526137ea816137b1565b9050919050565b5f815190506137ff8161313b565b92915050565b5f6020828403121561381a576138196130d0565b5b5f613827848285016137f1565b91505092915050565b7f546f6b656e3a206e6f20746f6b656e7320746f206275726e00000000000000005f82015250565b5f613864601883613027565b915061386f82613830565b602082019050919050565b5f6020820190508181035f83015261389181613858565b9050919050565b5f6138a282613132565b91506138ad83613132565b92508282026138bb81613132565b915082820484148315176138d2576138d16136e2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61391082613132565b915061391b83613132565b92508261392b5761392a6138d9565b5b828204905092915050565b5f6040820190506139495f830185613409565b61395660208301846131d6565b9392505050565b5f8151905061396b8161350e565b92915050565b5f60208284031215613986576139856130d0565b5b5f6139938482850161395d565b91505092915050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f6139d0601183613027565b91506139db8261399c565b602082019050919050565b5f6020820190508181035f8301526139fd816139c4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613a5e603983613027565b9150613a6982613a04565b604082019050919050565b5f6020820190508181035f830152613a8b81613a52565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613aec602583613027565b9150613af782613a92565b604082019050919050565b5f6020820190508181035f830152613b1981613ae0565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f613b54601683613027565b9150613b5f82613b20565b602082019050919050565b5f6020820190508181035f830152613b8181613b48565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613bbc601783613027565b9150613bc782613b88565b602082019050919050565b5f6020820190508181035f830152613be981613bb0565b9050919050565b5f81519050613bfe81613108565b92915050565b5f60208284031215613c1957613c186130d0565b5b5f613c2684828501613bf0565b91505092915050565b5f604082019050613c425f830185613409565b613c4f6020830184613409565b9392505050565b5f819050919050565b5f613c79613c74613c6f84613c56565b61345c565b613132565b9050919050565b613c8981613c5f565b82525050565b5f60c082019050613ca25f830189613409565b613caf60208301886131d6565b613cbc6040830187613c80565b613cc96060830186613c80565b613cd66080830185613409565b613ce360a08301846131d6565b979650505050505050565b5f805f60608486031215613d0557613d046130d0565b5b5f613d12868287016137f1565b9350506020613d23868287016137f1565b9250506040613d34868287016137f1565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613d98602683613027565b9150613da382613d3e565b604082019050919050565b5f6020820190508181035f830152613dc581613d8c565b9050919050565b7f466565732063616e6e6f742065786365656420313525000000000000000000005f82015250565b5f613e00601683613027565b9150613e0b82613dcc565b602082019050919050565b5f6020820190508181035f830152613e2d81613df4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613e8e602483613027565b9150613e9982613e34565b604082019050919050565b5f6020820190508181035f830152613ebb81613e82565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f1c602283613027565b9150613f2782613ec2565b604082019050919050565b5f6020820190508181035f830152613f4981613f10565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613f84601d83613027565b9150613f8f82613f50565b602082019050919050565b5f6020820190508181035f830152613fb181613f78565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614012602583613027565b915061401d82613fb8565b604082019050919050565b5f6020820190508181035f83015261403f81614006565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6140a0602383613027565b91506140ab82614046565b604082019050919050565b5f6020820190508181035f8301526140cd81614094565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614108601683613027565b9150614113826140d4565b602082019050919050565b5f6020820190508181035f830152614135816140fc565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f614196603583613027565b91506141a18261413c565b604082019050919050565b5f6020820190508181035f8301526141c38161418a565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6141fe601383613027565b9150614209826141ca565b602082019050919050565b5f6020820190508181035f83015261422b816141f2565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61428c603683613027565b915061429782614232565b604082019050919050565b5f6020820190508181035f8301526142b981614280565b9050919050565b5f6142ca82613132565b91506142d583613132565b92508282039050818111156142ed576142ec6136e2565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614327602083613027565b9150614332826142f3565b602082019050919050565b5f6020820190508181035f8301526143548161431b565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61438d816130f7565b82525050565b5f61439e8383614384565b60208301905092915050565b5f602082019050919050565b5f6143c08261435b565b6143ca8185614365565b93506143d583614375565b805f5b838110156144055781516143ec8882614393565b97506143f7836143aa565b9250506001810190506143d8565b5085935050505092915050565b5f60a0820190506144255f8301886131d6565b6144326020830187613c80565b818103604083015261444481866143b6565b90506144536060830185613409565b61446060808301846131d6565b9695505050505050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f6144c4602483613027565b91506144cf8261446a565b604082019050919050565b5f6020820190508181035f8301526144f1816144b8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614552602683613027565b915061455d826144f8565b604082019050919050565b5f6020820190508181035f83015261457f81614546565b905091905056fea26469706673582212201d3fce83999120556d7b9db7cae56c222c1db74765f1139ad10585c106631d0e64736f6c6343000814003300000000000000000000000039cc84b61a6aba3c31edded0ce1505067741c9f60000000000000000000000004faa78aae535d221ef22293cf92163e5b66627bd

Deployed Bytecode

0x608060405260043610610228575f3560e01c80638da5cb5b11610122578063c9567bf9116100aa578063e2f456051161006e578063e2f45605146107cb578063f2fde38b146107f5578063f8b45b051461081d578063fb0ecfa414610847578063ffb54a991461086f5761022f565b8063c9567bf9146106fd578063cf9522fd14610713578063d34628cc1461073d578063dd62ed3e14610765578063dd854652146107a15761022f565b8063a9059cbb116100f1578063a9059cbb14610631578063ac5c53af1461066d578063afa4f3b214610683578063c0246668146106ab578063c8c8ebe4146106d35761022f565b80638da5cb5b1461057957806395d89b41146105a35780639a7a23d6146105cd578063a457c2d7146105f55761022f565b806349bd5a5e116101b057806370a082311161017457806370a08231146104af578063715018a6146104eb5780637571336a1461050157806377fd843314610529578063881dce60146105515761022f565b806349bd5a5e146103cd5780634fbee193146103f7578063583e0568146104335780636ac9a8701461045d5780636ddd1713146104855761022f565b8063311028af116101f7578063311028af146102ff578063313ce5671461032957806331c2d84714610353578063395093511461037b57806346073115146103b75761022f565b806306fdde0314610233578063095ea7b31461025d57806318160ddd1461029957806323b872dd146102c35761022f565b3661022f57005b5f80fd5b34801561023e575f80fd5b50610247610899565b60405161025491906130a7565b60405180910390f35b348015610268575f80fd5b50610283600480360381019061027e9190613165565b610929565b60405161029091906131bd565b60405180910390f35b3480156102a4575f80fd5b506102ad61094b565b6040516102ba91906131e5565b60405180910390f35b3480156102ce575f80fd5b506102e960048036038101906102e491906131fe565b610954565b6040516102f691906131bd565b60405180910390f35b34801561030a575f80fd5b50610313610982565b60405161032091906131e5565b60405180910390f35b348015610334575f80fd5b5061033d610988565b60405161034a9190613269565b60405180910390f35b34801561035e575f80fd5b50610379600480360381019061037491906133c2565b610990565b005b348015610386575f80fd5b506103a1600480360381019061039c9190613165565b610a28565b6040516103ae91906131bd565b60405180910390f35b3480156103c2575f80fd5b506103cb610a5e565b005b3480156103d8575f80fd5b506103e1610a82565b6040516103ee9190613418565b60405180910390f35b348015610402575f80fd5b5061041d60048036038101906104189190613431565b610aa7565b60405161042a91906131bd565b60405180910390f35b34801561043e575f80fd5b50610447610af9565b60405161045491906134b7565b60405180910390f35b348015610468575f80fd5b50610483600480360381019061047e91906134d0565b610b1d565b005b348015610490575f80fd5b50610499610b9a565b6040516104a691906131bd565b60405180910390f35b3480156104ba575f80fd5b506104d560048036038101906104d09190613431565b610bad565b6040516104e291906131e5565b60405180910390f35b3480156104f6575f80fd5b506104ff610bf2565b005b34801561050c575f80fd5b5061052760048036038101906105229190613538565b610c05565b005b348015610534575f80fd5b5061054f600480360381019061054a91906135b1565b610c65565b005b34801561055c575f80fd5b50610577600480360381019061057291906135ef565b610e20565b005b348015610584575f80fd5b5061058d611071565b60405161059a9190613418565b60405180910390f35b3480156105ae575f80fd5b506105b7611099565b6040516105c491906130a7565b60405180910390f35b3480156105d8575f80fd5b506105f360048036038101906105ee9190613538565b611129565b005b348015610600575f80fd5b5061061b60048036038101906106169190613165565b6111ce565b60405161062891906131bd565b60405180910390f35b34801561063c575f80fd5b5061065760048036038101906106529190613165565b611243565b60405161066491906131bd565b60405180910390f35b348015610678575f80fd5b50610681611265565b005b34801561068e575f80fd5b506106a960048036038101906106a491906135ef565b61134c565b005b3480156106b6575f80fd5b506106d160048036038101906106cc9190613538565b611371565b005b3480156106de575f80fd5b506106e761141f565b6040516106f491906131e5565b60405180910390f35b348015610708575f80fd5b50610711611425565b005b34801561071e575f80fd5b506107276118b1565b60405161073491906131e5565b60405180910390f35b348015610748575f80fd5b50610763600480360381019061075e91906133c2565b6118b7565b005b348015610770575f80fd5b5061078b6004803603810190610786919061361a565b611950565b60405161079891906131e5565b60405180910390f35b3480156107ac575f80fd5b506107b56119d2565b6040516107c291906131e5565b60405180910390f35b3480156107d6575f80fd5b506107df6119d8565b6040516107ec91906131e5565b60405180910390f35b348015610800575f80fd5b5061081b60048036038101906108169190613431565b6119de565b005b348015610828575f80fd5b50610831611a60565b60405161083e91906131e5565b60405180910390f35b348015610852575f80fd5b5061086d600480360381019061086891906134d0565b611a66565b005b34801561087a575f80fd5b50610883611ae3565b60405161089091906131bd565b60405180910390f35b6060600380546108a890613685565b80601f01602080910402602001604051908101604052809291908181526020018280546108d490613685565b801561091f5780601f106108f65761010080835404028352916020019161091f565b820191905f5260205f20905b81548152906001019060200180831161090257829003601f168201915b5050505050905090565b5f80610933611af5565b9050610940818585611afc565b600191505092915050565b5f600254905090565b5f8061095e611af5565b905061096b858285611cbf565b610976858585611d4a565b60019150509392505050565b600a5481565b5f6012905090565b6109986126d2565b5f5b8151811015610a24575f60095f8484815181106109ba576109b96136b5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610a1c9061370f565b91505061099a565b5050565b5f80610a32611af5565b9050610a53818585610a448589611950565b610a4e9190613756565b611afc565b600191505092915050565b610a666126d2565b5f610a6f61094b565b905080600b8190555080600c8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b610b256126d2565b8160118190555080601281905550610b4a60125460115461275090919063ffffffff16565b60148190555060196014541115610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d906137d3565b60405180910390fd5b5050565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bfa6126d2565b610c035f612765565b565b610c0d6126d2565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c9f9190613418565b602060405180830381865afa158015610cba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cde9190613805565b90505f8111610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d199061387a565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d62611af5565b73ffffffffffffffffffffffffffffffffffffffff1614610d81575f80fd5b5f60648383610d909190613898565b610d9a9190613906565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b8152600401610dd9929190613936565b6020604051808303815f875af1158015610df5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e199190613971565b5050505050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e60611af5565b73ffffffffffffffffffffffffffffffffffffffff1614610e7f575f80fd5b5f610e8861094b565b90505f610e9430610bad565b90505f60648484610ea59190613898565b610eaf9190613906565b905080821015610ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eeb906139e6565b60405180910390fd5b5f610f0c60145460135461275090919063ffffffff16565b90505f610f26601154600f5461275090919063ffffffff16565b90505f479050610f3584612828565b5f610f498247612a5b90919063ffffffff16565b90505f610f7185610f638685612a7090919063ffffffff16565b612a8590919063ffffffff16565b90505f610f878284612a5b90919063ffffffff16565b90505f821115610ff75760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015610ff5573d5f803e3d5ffd5b505b5f8111156110655760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611063573d5f803e3d5ffd5b505b50505050505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546110a890613685565b80601f01602080910402602001604051908101604052809291908181526020018280546110d490613685565b801561111f5780601f106110f65761010080835404028352916020019161111f565b820191905f5260205f20905b81548152906001019060200180831161110257829003601f168201915b5050505050905090565b6111316126d2565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b790613a74565b60405180910390fd5b6111ca8282612a9a565b5050565b5f806111d8611af5565b90505f6111e58286611950565b90508381101561122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190613b02565b60405180910390fd5b6112378286868403611afc565b60019250505092915050565b5f8061124d611af5565b905061125a818585611d4a565b600191505092915050565b5f47116112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90613b6a565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e7611af5565b73ffffffffffffffffffffffffffffffffffffffff1614611306575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611349573d5f803e3d5ffd5b50565b6113546126d2565b670de0b6b3a7640000816113689190613898565b600d8190555050565b6113796126d2565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161141391906131bd565b60405180910390a25050565b600b5481565b61142d6126d2565b600e5f9054906101000a900460ff161561147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613bd2565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115099190613c04565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561158e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b29190613c04565b6040518363ffffffff1660e01b81526004016115cf929190613c2f565b6020604051808303815f875af11580156115eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061160f9190613c04565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061167a60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c05565b6116a660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612a9a565b6116d3307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600a54611afc565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719473061172d605061171f30610bad565b612b3890919063ffffffff16565b5f80611737611071565b426040518863ffffffff1660e01b815260040161175996959493929190613c8f565b60606040518083038185885af1158015611775573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061179a9190613cee565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611839929190613936565b6020604051808303815f875af1158015611855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118799190613971565b506001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60145481565b6118bf6126d2565b5f5b815181101561194c57600160095f8484815181106118e2576118e16136b5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806119449061370f565b9150506118c1565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60135481565b600d5481565b6119e66126d2565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4b90613dae565b60405180910390fd5b611a5d81612765565b50565b600c5481565b611a6e6126d2565b81600f8190555080601081905550611a93601054600f5461275090919063ffffffff16565b601381905550600f6013541115611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad690613e16565b60405180910390fd5b5050565b600e5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190613ea4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613f32565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cb291906131e5565b60405180910390a3505050565b5f611cca8484611950565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611d445781811015611d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2d90613f9a565b60405180910390fd5b611d438484848403611afc565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daf90614028565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1d906140b6565b60405180910390fd5b5f8103611e3d57611e3883835f612b9d565b6126cd565b611e45611071565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611eb35750611e83611071565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611eeb57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f25575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f3e5750600860149054906101000a900460ff16155b156123b15760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611fe1575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611fe9575f80fd5b600e5f9054906101000a900460ff166120d75760155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612097575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd9061411e565b60405180910390fd5b5b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612174575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561221b57600b548111156121be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b5906141ac565b60405180910390fd5b600c546121ca83610bad565b826121d59190613756565b1115612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d90614214565b60405180910390fd5b6123b0565b60175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156122b8575060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561230757600b54811115612302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f9906142a2565b60405180910390fd5b6123af565b60165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166123ae57600c5461236183610bad565b8261236c9190613756565b11156123ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a490614214565b60405180910390fd5b5b5b5b5b5f6123bb30610bad565b90505f80821190508080156123dc5750600e60019054906101000a900460ff165b80156123f55750600860149054906101000a900460ff16155b8015612448575060175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561249b575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156124ee575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612532576001600860146101000a81548160ff02191690831515021790555061251783612e09565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff1615905060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806125e1575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156125ea575f90505b5f81156126bd5760175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561266f57612668606461265a60145488612a7090919063ffffffff16565b612a8590919063ffffffff16565b905061269a565b612697606461268960135488612a7090919063ffffffff16565b612a8590919063ffffffff16565b90505b5f8111156126ae576126ad873083612b9d565b5b80856126ba91906142c0565b94505b6126c8878787612b9d565b505050505b505050565b6126da611af5565b73ffffffffffffffffffffffffffffffffffffffff166126f8611071565b73ffffffffffffffffffffffffffffffffffffffff161461274e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127459061433d565b60405180910390fd5b565b5f818361275d9190613756565b905092915050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff81111561284457612843613286565b5b6040519080825280602002602001820160405280156128725781602001602082028036833780820191505090505b50905030815f81518110612889576128886136b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561292c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129509190613c04565b81600181518110612964576129636136b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129c9307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611afc565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612a2a959493929190614412565b5f604051808303815f87803b158015612a41575f80fd5b505af1158015612a53573d5f803e3d5ffd5b505050505050565b5f8183612a6891906142c0565b905092915050565b5f8183612a7d9190613898565b905092915050565b5f8183612a929190613906565b905092915050565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f6064821115612b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b74906144da565b60405180910390fd5b60648284612b8b9190613898565b612b959190613906565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0290614028565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c70906140b6565b60405180910390fd5b612c84838383613013565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfe90614568565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612df091906131e5565b60405180910390a3612e03848484613018565b50505050565b5f612e1330610bad565b90505f612e2d601154600f5461275090919063ffffffff16565b90505f612e4760145460135461275090919063ffffffff16565b90505f808403612e5a5750505050613010565b5f84118015612e6a5750600d5484105b15612e7757839050612eca565b5f612ea06064612e9260145489612a7090919063ffffffff16565b612a8590919063ffffffff16565b90508086612eae91906142c0565b9550600d54861115612ec457600d549150612ec8565b8591505b505b5f479050612ed782612828565b5f612eeb8247612a5b90919063ffffffff16565b90505f612f1385612f058885612a7090919063ffffffff16565b612a8590919063ffffffff16565b90505f612f298284612a5b90919063ffffffff16565b90505f821115612f995760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612f97573d5f803e3d5ffd5b505b5f8111156130075760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015613005573d5f803e3d5ffd5b505b50505050505050505b50565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613054578082015181840152602081019050613039565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130798261301d565b6130838185613027565b9350613093818560208601613037565b61309c8161305f565b840191505092915050565b5f6020820190508181035f8301526130bf818461306f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613101826130d8565b9050919050565b613111816130f7565b811461311b575f80fd5b50565b5f8135905061312c81613108565b92915050565b5f819050919050565b61314481613132565b811461314e575f80fd5b50565b5f8135905061315f8161313b565b92915050565b5f806040838503121561317b5761317a6130d0565b5b5f6131888582860161311e565b925050602061319985828601613151565b9150509250929050565b5f8115159050919050565b6131b7816131a3565b82525050565b5f6020820190506131d05f8301846131ae565b92915050565b6131df81613132565b82525050565b5f6020820190506131f85f8301846131d6565b92915050565b5f805f60608486031215613215576132146130d0565b5b5f6132228682870161311e565b93505060206132338682870161311e565b925050604061324486828701613151565b9150509250925092565b5f60ff82169050919050565b6132638161324e565b82525050565b5f60208201905061327c5f83018461325a565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6132bc8261305f565b810181811067ffffffffffffffff821117156132db576132da613286565b5b80604052505050565b5f6132ed6130c7565b90506132f982826132b3565b919050565b5f67ffffffffffffffff82111561331857613317613286565b5b602082029050602081019050919050565b5f80fd5b5f61333f61333a846132fe565b6132e4565b9050808382526020820190506020840283018581111561336257613361613329565b5b835b8181101561338b5780613377888261311e565b845260208401935050602081019050613364565b5050509392505050565b5f82601f8301126133a9576133a8613282565b5b81356133b984826020860161332d565b91505092915050565b5f602082840312156133d7576133d66130d0565b5b5f82013567ffffffffffffffff8111156133f4576133f36130d4565b5b61340084828501613395565b91505092915050565b613412816130f7565b82525050565b5f60208201905061342b5f830184613409565b92915050565b5f60208284031215613446576134456130d0565b5b5f6134538482850161311e565b91505092915050565b5f819050919050565b5f61347f61347a613475846130d8565b61345c565b6130d8565b9050919050565b5f61349082613465565b9050919050565b5f6134a182613486565b9050919050565b6134b181613497565b82525050565b5f6020820190506134ca5f8301846134a8565b92915050565b5f80604083850312156134e6576134e56130d0565b5b5f6134f385828601613151565b925050602061350485828601613151565b9150509250929050565b613517816131a3565b8114613521575f80fd5b50565b5f813590506135328161350e565b92915050565b5f806040838503121561354e5761354d6130d0565b5b5f61355b8582860161311e565b925050602061356c85828601613524565b9150509250929050565b5f613580826130f7565b9050919050565b61359081613576565b811461359a575f80fd5b50565b5f813590506135ab81613587565b92915050565b5f80604083850312156135c7576135c66130d0565b5b5f6135d48582860161359d565b92505060206135e585828601613151565b9150509250929050565b5f60208284031215613604576136036130d0565b5b5f61361184828501613151565b91505092915050565b5f80604083850312156136305761362f6130d0565b5b5f61363d8582860161311e565b925050602061364e8582860161311e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061369c57607f821691505b6020821081036136af576136ae613658565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61371982613132565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361374b5761374a6136e2565b5b600182019050919050565b5f61376082613132565b915061376b83613132565b9250828201905080821115613783576137826136e2565b5b92915050565b7f466565732063616e6e6f742065786365656420323525000000000000000000005f82015250565b5f6137bd601683613027565b91506137c882613789565b602082019050919050565b5f6020820190508181035f8301526137ea816137b1565b9050919050565b5f815190506137ff8161313b565b92915050565b5f6020828403121561381a576138196130d0565b5b5f613827848285016137f1565b91505092915050565b7f546f6b656e3a206e6f20746f6b656e7320746f206275726e00000000000000005f82015250565b5f613864601883613027565b915061386f82613830565b602082019050919050565b5f6020820190508181035f83015261389181613858565b9050919050565b5f6138a282613132565b91506138ad83613132565b92508282026138bb81613132565b915082820484148315176138d2576138d16136e2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61391082613132565b915061391b83613132565b92508261392b5761392a6138d9565b5b828204905092915050565b5f6040820190506139495f830185613409565b61395660208301846131d6565b9392505050565b5f8151905061396b8161350e565b92915050565b5f60208284031215613986576139856130d0565b5b5f6139938482850161395d565b91505092915050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f6139d0601183613027565b91506139db8261399c565b602082019050919050565b5f6020820190508181035f8301526139fd816139c4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613a5e603983613027565b9150613a6982613a04565b604082019050919050565b5f6020820190508181035f830152613a8b81613a52565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613aec602583613027565b9150613af782613a92565b604082019050919050565b5f6020820190508181035f830152613b1981613ae0565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f613b54601683613027565b9150613b5f82613b20565b602082019050919050565b5f6020820190508181035f830152613b8181613b48565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613bbc601783613027565b9150613bc782613b88565b602082019050919050565b5f6020820190508181035f830152613be981613bb0565b9050919050565b5f81519050613bfe81613108565b92915050565b5f60208284031215613c1957613c186130d0565b5b5f613c2684828501613bf0565b91505092915050565b5f604082019050613c425f830185613409565b613c4f6020830184613409565b9392505050565b5f819050919050565b5f613c79613c74613c6f84613c56565b61345c565b613132565b9050919050565b613c8981613c5f565b82525050565b5f60c082019050613ca25f830189613409565b613caf60208301886131d6565b613cbc6040830187613c80565b613cc96060830186613c80565b613cd66080830185613409565b613ce360a08301846131d6565b979650505050505050565b5f805f60608486031215613d0557613d046130d0565b5b5f613d12868287016137f1565b9350506020613d23868287016137f1565b9250506040613d34868287016137f1565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613d98602683613027565b9150613da382613d3e565b604082019050919050565b5f6020820190508181035f830152613dc581613d8c565b9050919050565b7f466565732063616e6e6f742065786365656420313525000000000000000000005f82015250565b5f613e00601683613027565b9150613e0b82613dcc565b602082019050919050565b5f6020820190508181035f830152613e2d81613df4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613e8e602483613027565b9150613e9982613e34565b604082019050919050565b5f6020820190508181035f830152613ebb81613e82565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f1c602283613027565b9150613f2782613ec2565b604082019050919050565b5f6020820190508181035f830152613f4981613f10565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613f84601d83613027565b9150613f8f82613f50565b602082019050919050565b5f6020820190508181035f830152613fb181613f78565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614012602583613027565b915061401d82613fb8565b604082019050919050565b5f6020820190508181035f83015261403f81614006565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6140a0602383613027565b91506140ab82614046565b604082019050919050565b5f6020820190508181035f8301526140cd81614094565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614108601683613027565b9150614113826140d4565b602082019050919050565b5f6020820190508181035f830152614135816140fc565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f614196603583613027565b91506141a18261413c565b604082019050919050565b5f6020820190508181035f8301526141c38161418a565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6141fe601383613027565b9150614209826141ca565b602082019050919050565b5f6020820190508181035f83015261422b816141f2565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61428c603683613027565b915061429782614232565b604082019050919050565b5f6020820190508181035f8301526142b981614280565b9050919050565b5f6142ca82613132565b91506142d583613132565b92508282039050818111156142ed576142ec6136e2565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614327602083613027565b9150614332826142f3565b602082019050919050565b5f6020820190508181035f8301526143548161431b565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61438d816130f7565b82525050565b5f61439e8383614384565b60208301905092915050565b5f602082019050919050565b5f6143c08261435b565b6143ca8185614365565b93506143d583614375565b805f5b838110156144055781516143ec8882614393565b97506143f7836143aa565b9250506001810190506143d8565b5085935050505092915050565b5f60a0820190506144255f8301886131d6565b6144326020830187613c80565b818103604083015261444481866143b6565b90506144536060830185613409565b61446060808301846131d6565b9695505050505050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f6144c4602483613027565b91506144cf8261446a565b604082019050919050565b5f6020820190508181035f8301526144f1816144b8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614552602683613027565b915061455d826144f8565b604082019050919050565b5f6020820190508181035f83015261457f81614546565b905091905056fea26469706673582212201d3fce83999120556d7b9db7cae56c222c1db74765f1139ad10585c106631d0e64736f6c63430008140033

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

00000000000000000000000039cc84b61a6aba3c31edded0ce1505067741c9f60000000000000000000000004faa78aae535d221ef22293cf92163e5b66627bd

-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0x39CC84B61A6ABa3C31eddED0ce1505067741C9F6
Arg [1] : _revenueWallet (address): 0x4FaA78aAE535d221ef22293Cf92163e5B66627bD

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000039cc84b61a6aba3c31edded0ce1505067741c9f6
Arg [1] : 0000000000000000000000004faa78aae535d221ef22293cf92163e5b66627bd


Deployed Bytecode Sourcemap

14691:11247:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9919:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10851:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10240:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11060:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15190:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10139:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19154:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11329:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22192:195;;;;;;;;;;;;;:::i;:::-;;14836:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18845:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14777:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24402:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15457:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10356:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1018:103;;;;;;;;;;;;;:::i;:::-;;18013:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22630:386;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23159:959;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;783:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10027:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18378:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11575:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10491:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22395:227;;;;;;;;;;;;;:::i;:::-;;23024:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18188:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15250:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17268:739;;;;;;;;;;;;;:::i;:::-;;15669:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18979:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10692:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15641:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15359:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1129:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15310:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24126:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15419:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9919:100;9973:13;10006:5;9999:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9919:100;:::o;10851:201::-;10934:4;10951:13;10967:12;:10;:12::i;:::-;10951:28;;10990:32;10999:5;11006:7;11015:6;10990:8;:32::i;:::-;11040:4;11033:11;;;10851:201;;;;:::o;10240:108::-;10301:7;10328:12;;10321:19;;10240:108;:::o;11060:261::-;11157:4;11174:15;11192:12;:10;:12::i;:::-;11174:30;;11215:38;11231:4;11237:7;11246:6;11215:15;:38::i;:::-;11264:27;11274:4;11280:2;11284:6;11264:9;:27::i;:::-;11309:4;11302:11;;;11060:261;;;;;:::o;15190:53::-;;;;:::o;10139:93::-;10197:5;10222:2;10215:9;;10139:93;:::o;19154:171::-;742:13;:11;:13::i;:::-;19229:9:::1;19224:94;19248:6;:13;19244:1;:17;19224:94;;;19301:5;19283:4;:15;19288:6;19295:1;19288:9;;;;;;;;:::i;:::-;;;;;;;;19283:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;19263:3;;;;;:::i;:::-;;;;19224:94;;;;19154:171:::0;:::o;11329:238::-;11417:4;11434:13;11450:12;:10;:12::i;:::-;11434:28;;11473:64;11482:5;11489:7;11526:10;11498:25;11508:5;11515:7;11498:9;:25::i;:::-;:38;;;;:::i;:::-;11473:8;:64::i;:::-;11555:4;11548:11;;;11329:238;;;;:::o;22192:195::-;742:13;:11;:13::i;:::-;22247:25:::1;22275:13;:11;:13::i;:::-;22247:41;;22322:17;22299:20;:40;;;;22362:17;22350:9;:29;;;;22236:151;22192:195::o:0;14836:28::-;;;;;;;;;;;;;:::o;18845:126::-;18911:4;18935:19;:28;18955:7;18935:28;;;;;;;;;;;;;;;;;;;;;;;;;18928:35;;18845:126;;;:::o;14777:52::-;;;:::o;24402:275::-;742:13;:11;:13::i;:::-;24504:10:::1;24484:17;:30;;;;24543:8;24525:15;:26;;;;24572:38;24594:15;;24572:17;;:21;;:38;;;;:::i;:::-;24562:7;:48;;;;24640:2;24629:7;;:13;;24621:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24402:275:::0;;:::o;15457:31::-;;;;;;;;;;;;;:::o;10356:127::-;10430:7;10457:9;:18;10467:7;10457:18;;;;;;;;;;;;;;;;10450:25;;10356:127;;;:::o;1018:103::-;742:13;:11;:13::i;:::-;1083:30:::1;1110:1;1083:18;:30::i;:::-;1018:103::o:0;18013:167::-;742:13;:11;:13::i;:::-;18168:4:::1;18126:31;:39;18158:6;18126:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18013:167:::0;;:::o;22630:386::-;22714:23;22740:12;:22;;;22771:4;22740:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22714:63;;22814:1;22796:15;:19;22788:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;22879:15;;;;;;;;;;;22863:31;;:12;:10;:12::i;:::-;:31;;;22855:40;;;;;;22906:13;22950:3;22940:7;22922:15;:25;;;;:::i;:::-;:31;;;;:::i;:::-;22906:47;;22964:12;:21;;;14996:6;22999:8;22964:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22703:313;;22630:386;;:::o;23159:959::-;23240:15;;;;;;;;;;;23224:31;;:12;:10;:12::i;:::-;:31;;;23216:40;;;;;;23267:25;23295:13;:11;:13::i;:::-;23267:41;;23319:23;23345:24;23363:4;23345:9;:24::i;:::-;23319:50;;23380:23;23436:3;23426:7;23406:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;23380:59;;23477:15;23458;:34;;23450:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23525:16;23544:19;23555:7;;23544:6;;:10;;:19;;;;:::i;:::-;23525:38;;23574:22;23599:39;23620:17;;23599:16;;:20;;:39;;;;:::i;:::-;23574:64;;23649:19;23671:21;23649:43;;23703:33;23720:15;23703:16;:33::i;:::-;23747:20;23770:41;23796:14;23770:21;:25;;:41;;;;:::i;:::-;23747:64;;23822:17;23842:52;23882:11;23842:35;23862:14;23842:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;23822:72;;23905:15;23923:33;23943:12;23923:15;:19;;:33;;;;:::i;:::-;23905:51;;23985:1;23970:12;:16;23967:68;;;23996:15;;;;;;;;;;;23988:33;;:47;24022:12;23988:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23967:68;24062:1;24049:10;:14;24046:62;;;24073:13;;;;;;;;;;;24065:31;;:43;24097:10;24065:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24046:62;23205:913;;;;;;;;;23159:959;:::o;783:87::-;829:7;856:6;;;;;;;;;;;849:13;;783:87;:::o;10027:104::-;10083:13;10116:7;10109:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10027:104;:::o;18378:265::-;742:13;:11;:13::i;:::-;18508::::1;;;;;;;;;;;18500:21;;:4;:21;;::::0;18492:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18594:41;18623:4;18629:5;18594:28;:41::i;:::-;18378:265:::0;;:::o;11575:436::-;11668:4;11685:13;11701:12;:10;:12::i;:::-;11685:28;;11724:24;11751:25;11761:5;11768:7;11751:9;:25::i;:::-;11724:52;;11815:15;11795:16;:35;;11787:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11908:60;11917:5;11924:7;11952:15;11933:16;:34;11908:8;:60::i;:::-;11999:4;11992:11;;;;11575:436;;;;:::o;10491:193::-;10570:4;10587:13;10603:12;:10;:12::i;:::-;10587:28;;10626;10636:5;10643:2;10647:6;10626:9;:28::i;:::-;10672:4;10665:11;;;10491:193;;;;:::o;22395:227::-;22473:1;22449:21;:25;22441:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22536:15;;;;;;;;;;;22520:31;;:12;:10;:12::i;:::-;:31;;;22512:40;;;;;;22571:10;22563:28;;:51;22592:21;22563:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22395:227::o;23024:127::-;742:13;:11;:13::i;:::-;23134:8:::1;23123:7;:20;;;;:::i;:::-;23102:18;:41;;;;23024:127:::0;:::o;18188:182::-;742:13;:11;:13::i;:::-;18304:8:::1;18273:19;:28;18293:7;18273:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18344:7;18328:34;;;18353:8;18328:34;;;;;;:::i;:::-;;;;;;;;18188:182:::0;;:::o;15250:53::-;;;;:::o;17268:739::-;742:13;:11;:13::i;:::-;17332:11:::1;;;;;;;;;;;17331:12;17323:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17415:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17397:56;;;17462:4;17469:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17397:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17381:13;;:112;;;;;;;;;;;;;;;;;;17504:55;17538:13;;;;;;;;;;;17554:4;17504:25;:55::i;:::-;17570:58;17607:13;;;;;;;;;;;17623:4;17570:28;:58::i;:::-;17639:70;17656:4;17671:16;17690:18;;17639:8;:70::i;:::-;17720:16;:32;;;17760:21;17791:4;17797:32;17826:2;17797:24;17815:4;17797:9;:24::i;:::-;:28;;:32;;;;:::i;:::-;17830:1;17832::::0;17834:7:::1;:5;:7::i;:::-;17842:15;17720:138;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17876:13;;;;;;;;;;;17869:29;;;17907:16;17926:14;17869:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17966:4;17952:11;;:18;;;;;;;;;;;;;;;;;;17995:4;17981:11;;:18;;;;;;;;;;;;;;;;;;17268:739::o:0;15669:22::-;;;;:::o;18979:167::-;742:13;:11;:13::i;:::-;19053:9:::1;19048:91;19072:5;:12;19068:1;:16;19048:91;;;19123:4;19106;:14;19111:5;19117:1;19111:8;;;;;;;;:::i;:::-;;;;;;;;19106:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;19086:3;;;;;:::i;:::-;;;;19048:91;;;;18979:167:::0;:::o;10692:151::-;10781:7;10808:11;:18;10820:5;10808:18;;;;;;;;;;;;;;;:27;10827:7;10808:27;;;;;;;;;;;;;;;;10801:34;;10692:151;;;;:::o;15641:21::-;;;;:::o;15359:51::-;;;;:::o;1129:201::-;742:13;:11;:13::i;:::-;1238:1:::1;1218:22;;:8;:22;;::::0;1210:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1294:28;1313:8;1294:18;:28::i;:::-;1129:201:::0;:::o;15310:42::-;;;;:::o;24126:268::-;742:13;:11;:13::i;:::-;24226:10:::1;24207:16;:29;;;;24264:8;24247:14;:25;;;;24292:36;24313:14;;24292:16;;:20;;:36;;;;:::i;:::-;24283:6;:45;;;;24357:2;24347:6;;:12;;24339:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;24126:268:::0;;:::o;15419:31::-;;;;;;;;;;;;;:::o;256:98::-;309:7;336:10;329:17;;256:98;:::o;13714:346::-;13833:1;13816:19;;:5;:19;;;13808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13914:1;13895:21;;:7;:21;;;13887:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13998:6;13968:11;:18;13980:5;13968:18;;;;;;;;;;;;;;;:27;13987:7;13968:27;;;;;;;;;;;;;;;:36;;;;14036:7;14020:32;;14029:5;14020:32;;;14045:6;14020:32;;;;;;:::i;:::-;;;;;;;;13714:346;;;:::o;14068:419::-;14169:24;14196:25;14206:5;14213:7;14196:9;:25::i;:::-;14169:52;;14256:17;14236:16;:37;14232:248;;14318:6;14298:16;:26;;14290:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14402:51;14411:5;14418:7;14446:6;14427:16;:25;14402:8;:51::i;:::-;14232:248;14158:329;14068:419;;;:::o;19333:2367::-;19449:1;19433:18;;:4;:18;;;19425:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19526:1;19512:16;;:2;:16;;;19504:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19603:1;19593:6;:11;19589:93;;19621:28;19637:4;19643:2;19647:1;19621:15;:28::i;:::-;19664:7;;19589:93;19706:7;:5;:7::i;:::-;19698:15;;:4;:15;;;;:32;;;;;19723:7;:5;:7::i;:::-;19717:13;;:2;:13;;;;19698:32;:52;;;;;19748:1;19734:16;;:2;:16;;;;19698:52;:77;;;;;19768:6;19754:21;;:2;:21;;;;19698:77;:90;;;;;19780:8;;;;;;;;;;;19779:9;19698:90;19694:1046;;;19816:4;:10;19821:4;19816:10;;;;;;;;;;;;;;;;;;;;;;;;;19815:11;:24;;;;;19831:4;:8;19836:2;19831:8;;;;;;;;;;;;;;;;;;;;;;;;;19830:9;19815:24;19807:33;;;;;;19862:11;;;;;;;;;;;19857:140;;19902:19;:25;19922:4;19902:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19931:19;:23;19951:2;19931:23;;;;;;;;;;;;;;;;;;;;;;;;;19902:52;19894:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19857:140;20017:25;:31;20043:4;20017:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20053:31;:35;20085:2;20053:35;;;;;;;;;;;;;;;;;;;;;;;;;20052:36;20017:71;20013:716;;;20141:20;;20131:6;:30;;20123:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20272:9;;20255:13;20265:2;20255:9;:13::i;:::-;20246:6;:22;;;;:::i;:::-;:35;;20238:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20013:716;;;20346:25;:29;20372:2;20346:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20380:31;:37;20412:4;20380:37;;;;;;;;;;;;;;;;;;;;;;;;;20379:38;20346:71;20342:387;;;20456:20;;20446:6;:30;;20438:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20342:387;;;20590:31;:35;20622:2;20590:35;;;;;;;;;;;;;;;;;;;;;;;;;20585:144;;20680:9;;20663:13;20673:2;20663:9;:13::i;:::-;20654:6;:22;;;;:::i;:::-;:35;;20646:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20585:144;20342:387;20013:716;19694:1046;20752:28;20783:24;20801:4;20783:9;:24::i;:::-;20752:55;;20820:12;20858:1;20835:20;:24;20820:39;;20876:7;:22;;;;;20887:11;;;;;;;;;;;20876:22;:35;;;;;20903:8;;;;;;;;;;;20902:9;20876:35;:71;;;;;20916:25;:31;20942:4;20916:31;;;;;;;;;;;;;;;;;;;;;;;;;20915:32;20876:71;:101;;;;;20952:19;:25;20972:4;20952:25;;;;;;;;;;;;;;;;;;;;;;;;;20951:26;20876:101;:129;;;;;20982:19;:23;21002:2;20982:23;;;;;;;;;;;;;;;;;;;;;;;;;20981:24;20876:129;20872:239;;;21033:4;21022:8;;:15;;;;;;;;;;;;;;;;;;21052:16;21061:6;21052:8;:16::i;:::-;21094:5;21083:8;;:16;;;;;;;;;;;;;;;;;;20872:239;21123:12;21139:8;;;;;;;;;;;21138:9;21123:24;;21164:19;:25;21184:4;21164:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21193:19;:23;21213:2;21193:23;;;;;;;;;;;;;;;;;;;;;;;;;21164:52;21160:100;;;21243:5;21233:15;;21160:100;21272:12;21305:7;21301:348;;;21333:25;:29;21359:2;21333:29;;;;;;;;;;;;;;;;;;;;;;;;;21329:193;;;21390:28;21414:3;21390:19;21401:7;;21390:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;21383:35;;21329:193;;;21479:27;21502:3;21479:18;21490:6;;21479;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;21472:34;;21329:193;21545:1;21538:4;:8;21534:83;;;21563:42;21579:4;21593;21600;21563:15;:42::i;:::-;21534:83;21637:4;21627:14;;;;;:::i;:::-;;;21301:348;21659:33;21675:4;21681:2;21685:6;21659:15;:33::i;:::-;19412:2288;;;;19333:2367;;;;:::o;878:132::-;953:12;:10;:12::i;:::-;942:23;;:7;:5;:7::i;:::-;:23;;;934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;878:132::o;8164:98::-;8222:7;8253:1;8249;:5;;;;:::i;:::-;8242:12;;8164:98;;;;:::o;1338:191::-;1412:16;1431:6;;;;;;;;;;;1412:25;;1457:8;1448:6;;:17;;;;;;;;;;;;;;;;;;1512:8;1481:40;;1502:8;1481:40;;;;;;;;;;;;1401:128;1338:191;:::o;21708:476::-;21776:21;21814:1;21800:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21776:40;;21845:4;21827;21832:1;21827:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21871:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21861:4;21866:1;21861:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21905:63;21922:4;21937:16;21956:11;21905:8;:63::i;:::-;21979:16;:67;;;22061:11;22087:1;22103:4;22130;22150:15;21979:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21763:421;21708:476;:::o;8270:98::-;8328:7;8359:1;8355;:5;;;;:::i;:::-;8348:12;;8270:98;;;;:::o;8376:::-;8434:7;8465:1;8461;:5;;;;:::i;:::-;8454:12;;8376:98;;;;:::o;8482:::-;8540:7;8571:1;8567;:5;;;;:::i;:::-;8560:12;;8482:98;;;;:::o;18651:186::-;18768:5;18734:25;:31;18760:4;18734:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18823:5;18789:40;;18817:4;18789:40;;;;;;;;;;;;18651:186;;:::o;8908:172::-;8966:7;8999:3;8994:1;:8;;8986:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9069:3;9065:1;9061;:5;;;;:::i;:::-;:11;;;;:::i;:::-;9054:18;;8908:172;;;;:::o;12019:641::-;12132:1;12116:18;;:4;:18;;;12108:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12209:1;12195:16;;:2;:16;;;12187:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12264:38;12285:4;12291:2;12295:6;12264:20;:38::i;:::-;12315:19;12337:9;:15;12347:4;12337:15;;;;;;;;;;;;;;;;12315:37;;12386:6;12371:11;:21;;12363:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12503:6;12489:11;:20;12471:9;:15;12481:4;12471:15;;;;;;;;;;;;;;;:38;;;;12541:6;12524:9;:13;12534:2;12524:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12591:2;12576:26;;12585:4;12576:26;;;12595:6;12576:26;;;;;;:::i;:::-;;;;;;;;12615:37;12635:4;12641:2;12645:6;12615:19;:37::i;:::-;12097:563;12019:641;;;:::o;24689:1246::-;24742:23;24768:24;24786:4;24768:9;:24::i;:::-;24742:50;;24803:22;24828:39;24849:17;;24828:16;;:20;;:39;;;;:::i;:::-;24803:64;;24878:16;24897:19;24908:7;;24897:6;;:10;;:19;;;;:::i;:::-;24878:38;;24927:20;24981:1;24962:15;:20;24958:505;;24999:7;;;;;;24958:505;25054:1;25036:15;:19;:59;;;;;25077:18;;25059:15;:36;25036:59;25033:430;;;25127:15;25112:30;;25033:430;;;25184:21;25208:28;25232:3;25208:19;25219:7;;25208:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;25184:52;;25261:13;25251:23;;;;;:::i;:::-;;;25302:18;;25293:6;:27;25289:163;;;25356:18;;25341:33;;25289:163;;;25430:6;25415:21;;25289:163;25169:294;25033:430;25473:19;25495:21;25473:43;;25527:30;25544:12;25527:16;:30::i;:::-;25568:20;25591:41;25617:14;25591:21;:25;;:41;;;;:::i;:::-;25568:64;;25643:17;25663:52;25703:11;25663:35;25683:14;25663:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;25643:72;;25726:15;25744:33;25764:12;25744:15;:19;;:33;;;;:::i;:::-;25726:51;;25806:1;25791:12;:16;25788:68;;;25817:15;;;;;;;;;;;25809:33;;:47;25843:12;25809:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25788:68;25883:1;25870:10;:14;25867:62;;;25894:13;;;;;;;;;;;25886:31;;:43;25918:10;25886:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25867:62;24731:1204;;;;;;;;24689:1246;;:::o;14495:91::-;;;;:::o;14594:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:118::-;7782:24;7800:5;7782:24;:::i;:::-;7777:3;7770:37;7695:118;;:::o;7819:222::-;7912:4;7950:2;7939:9;7935:18;7927:26;;7963:71;8031:1;8020:9;8016:17;8007:6;7963:71;:::i;:::-;7819:222;;;;:::o;8047:329::-;8106:6;8155:2;8143:9;8134:7;8130:23;8126:32;8123:119;;;8161:79;;:::i;:::-;8123:119;8281:1;8306:53;8351:7;8342:6;8331:9;8327:22;8306:53;:::i;:::-;8296:63;;8252:117;8047:329;;;;:::o;8382:60::-;8410:3;8431:5;8424:12;;8382:60;;;:::o;8448:142::-;8498:9;8531:53;8549:34;8558:24;8576:5;8558:24;:::i;:::-;8549:34;:::i;:::-;8531:53;:::i;:::-;8518:66;;8448:142;;;:::o;8596:126::-;8646:9;8679:37;8710:5;8679:37;:::i;:::-;8666:50;;8596:126;;;:::o;8728:152::-;8804:9;8837:37;8868:5;8837:37;:::i;:::-;8824:50;;8728:152;;;:::o;8886:183::-;8999:63;9056:5;8999:63;:::i;:::-;8994:3;8987:76;8886:183;;:::o;9075:274::-;9194:4;9232:2;9221:9;9217:18;9209:26;;9245:97;9339:1;9328:9;9324:17;9315:6;9245:97;:::i;:::-;9075:274;;;;:::o;9355:474::-;9423:6;9431;9480:2;9468:9;9459:7;9455:23;9451:32;9448:119;;;9486:79;;:::i;:::-;9448:119;9606:1;9631:53;9676:7;9667:6;9656:9;9652:22;9631:53;:::i;:::-;9621:63;;9577:117;9733:2;9759:53;9804:7;9795:6;9784:9;9780:22;9759:53;:::i;:::-;9749:63;;9704:118;9355:474;;;;;:::o;9835:116::-;9905:21;9920:5;9905:21;:::i;:::-;9898:5;9895:32;9885:60;;9941:1;9938;9931:12;9885:60;9835:116;:::o;9957:133::-;10000:5;10038:6;10025:20;10016:29;;10054:30;10078:5;10054:30;:::i;:::-;9957:133;;;;:::o;10096:468::-;10161:6;10169;10218:2;10206:9;10197:7;10193:23;10189:32;10186:119;;;10224:79;;:::i;:::-;10186:119;10344:1;10369:53;10414:7;10405:6;10394:9;10390:22;10369:53;:::i;:::-;10359:63;;10315:117;10471:2;10497:50;10539:7;10530:6;10519:9;10515:22;10497:50;:::i;:::-;10487:60;;10442:115;10096:468;;;;;:::o;10570:110::-;10621:7;10650:24;10668:5;10650:24;:::i;:::-;10639:35;;10570:110;;;:::o;10686:150::-;10773:38;10805:5;10773:38;:::i;:::-;10766:5;10763:49;10753:77;;10826:1;10823;10816:12;10753:77;10686:150;:::o;10842:167::-;10902:5;10940:6;10927:20;10918:29;;10956:47;10997:5;10956:47;:::i;:::-;10842:167;;;;:::o;11015:502::-;11097:6;11105;11154:2;11142:9;11133:7;11129:23;11125:32;11122:119;;;11160:79;;:::i;:::-;11122:119;11280:1;11305:67;11364:7;11355:6;11344:9;11340:22;11305:67;:::i;:::-;11295:77;;11251:131;11421:2;11447:53;11492:7;11483:6;11472:9;11468:22;11447:53;:::i;:::-;11437:63;;11392:118;11015:502;;;;;:::o;11523:329::-;11582:6;11631:2;11619:9;11610:7;11606:23;11602:32;11599:119;;;11637:79;;:::i;:::-;11599:119;11757:1;11782:53;11827:7;11818:6;11807:9;11803:22;11782:53;:::i;:::-;11772:63;;11728:117;11523:329;;;;:::o;11858:474::-;11926:6;11934;11983:2;11971:9;11962:7;11958:23;11954:32;11951:119;;;11989:79;;:::i;:::-;11951:119;12109:1;12134:53;12179:7;12170:6;12159:9;12155:22;12134:53;:::i;:::-;12124:63;;12080:117;12236:2;12262:53;12307:7;12298:6;12287:9;12283:22;12262:53;:::i;:::-;12252:63;;12207:118;11858:474;;;;;:::o;12338:180::-;12386:77;12383:1;12376:88;12483:4;12480:1;12473:15;12507:4;12504:1;12497:15;12524:320;12568:6;12605:1;12599:4;12595:12;12585:22;;12652:1;12646:4;12642:12;12673:18;12663:81;;12729:4;12721:6;12717:17;12707:27;;12663:81;12791:2;12783:6;12780:14;12760:18;12757:38;12754:84;;12810:18;;:::i;:::-;12754:84;12575:269;12524:320;;;:::o;12850:180::-;12898:77;12895:1;12888:88;12995:4;12992:1;12985:15;13019:4;13016:1;13009:15;13036:180;13084:77;13081:1;13074:88;13181:4;13178:1;13171:15;13205:4;13202:1;13195:15;13222:233;13261:3;13284:24;13302:5;13284:24;:::i;:::-;13275:33;;13330:66;13323:5;13320:77;13317:103;;13400:18;;:::i;:::-;13317:103;13447:1;13440:5;13436:13;13429:20;;13222:233;;;:::o;13461:191::-;13501:3;13520:20;13538:1;13520:20;:::i;:::-;13515:25;;13554:20;13572:1;13554:20;:::i;:::-;13549:25;;13597:1;13594;13590:9;13583:16;;13618:3;13615:1;13612:10;13609:36;;;13625:18;;:::i;:::-;13609:36;13461:191;;;;:::o;13658:172::-;13798:24;13794:1;13786:6;13782:14;13775:48;13658:172;:::o;13836:366::-;13978:3;13999:67;14063:2;14058:3;13999:67;:::i;:::-;13992:74;;14075:93;14164:3;14075:93;:::i;:::-;14193:2;14188:3;14184:12;14177:19;;13836:366;;;:::o;14208:419::-;14374:4;14412:2;14401:9;14397:18;14389:26;;14461:9;14455:4;14451:20;14447:1;14436:9;14432:17;14425:47;14489:131;14615:4;14489:131;:::i;:::-;14481:139;;14208:419;;;:::o;14633:143::-;14690:5;14721:6;14715:13;14706:22;;14737:33;14764:5;14737:33;:::i;:::-;14633:143;;;;:::o;14782:351::-;14852:6;14901:2;14889:9;14880:7;14876:23;14872:32;14869:119;;;14907:79;;:::i;:::-;14869:119;15027:1;15052:64;15108:7;15099:6;15088:9;15084:22;15052:64;:::i;:::-;15042:74;;14998:128;14782:351;;;;:::o;15139:174::-;15279:26;15275:1;15267:6;15263:14;15256:50;15139:174;:::o;15319:366::-;15461:3;15482:67;15546:2;15541:3;15482:67;:::i;:::-;15475:74;;15558:93;15647:3;15558:93;:::i;:::-;15676:2;15671:3;15667:12;15660:19;;15319:366;;;:::o;15691:419::-;15857:4;15895:2;15884:9;15880:18;15872:26;;15944:9;15938:4;15934:20;15930:1;15919:9;15915:17;15908:47;15972:131;16098:4;15972:131;:::i;:::-;15964:139;;15691:419;;;:::o;16116:410::-;16156:7;16179:20;16197:1;16179:20;:::i;:::-;16174:25;;16213:20;16231:1;16213:20;:::i;:::-;16208:25;;16268:1;16265;16261:9;16290:30;16308:11;16290:30;:::i;:::-;16279:41;;16469:1;16460:7;16456:15;16453:1;16450:22;16430:1;16423:9;16403:83;16380:139;;16499:18;;:::i;:::-;16380:139;16164:362;16116:410;;;;:::o;16532:180::-;16580:77;16577:1;16570:88;16677:4;16674:1;16667:15;16701:4;16698:1;16691:15;16718:185;16758:1;16775:20;16793:1;16775:20;:::i;:::-;16770:25;;16809:20;16827:1;16809:20;:::i;:::-;16804:25;;16848:1;16838:35;;16853:18;;:::i;:::-;16838:35;16895:1;16892;16888:9;16883:14;;16718:185;;;;:::o;16909:332::-;17030:4;17068:2;17057:9;17053:18;17045:26;;17081:71;17149:1;17138:9;17134:17;17125:6;17081:71;:::i;:::-;17162:72;17230:2;17219:9;17215:18;17206:6;17162:72;:::i;:::-;16909:332;;;;;:::o;17247:137::-;17301:5;17332:6;17326:13;17317:22;;17348:30;17372:5;17348:30;:::i;:::-;17247:137;;;;:::o;17390:345::-;17457:6;17506:2;17494:9;17485:7;17481:23;17477:32;17474:119;;;17512:79;;:::i;:::-;17474:119;17632:1;17657:61;17710:7;17701:6;17690:9;17686:22;17657:61;:::i;:::-;17647:71;;17603:125;17390:345;;;;:::o;17741:167::-;17881:19;17877:1;17869:6;17865:14;17858:43;17741:167;:::o;17914:366::-;18056:3;18077:67;18141:2;18136:3;18077:67;:::i;:::-;18070:74;;18153:93;18242:3;18153:93;:::i;:::-;18271:2;18266:3;18262:12;18255:19;;17914:366;;;:::o;18286:419::-;18452:4;18490:2;18479:9;18475:18;18467:26;;18539:9;18533:4;18529:20;18525:1;18514:9;18510:17;18503:47;18567:131;18693:4;18567:131;:::i;:::-;18559:139;;18286:419;;;:::o;18711:244::-;18851:34;18847:1;18839:6;18835:14;18828:58;18920:27;18915:2;18907:6;18903:15;18896:52;18711:244;:::o;18961:366::-;19103:3;19124:67;19188:2;19183:3;19124:67;:::i;:::-;19117:74;;19200:93;19289:3;19200:93;:::i;:::-;19318:2;19313:3;19309:12;19302:19;;18961:366;;;:::o;19333:419::-;19499:4;19537:2;19526:9;19522:18;19514:26;;19586:9;19580:4;19576:20;19572:1;19561:9;19557:17;19550:47;19614:131;19740:4;19614:131;:::i;:::-;19606:139;;19333:419;;;:::o;19758:224::-;19898:34;19894:1;19886:6;19882:14;19875:58;19967:7;19962:2;19954:6;19950:15;19943:32;19758:224;:::o;19988:366::-;20130:3;20151:67;20215:2;20210:3;20151:67;:::i;:::-;20144:74;;20227:93;20316:3;20227:93;:::i;:::-;20345:2;20340:3;20336:12;20329:19;;19988:366;;;:::o;20360:419::-;20526:4;20564:2;20553:9;20549:18;20541:26;;20613:9;20607:4;20603:20;20599:1;20588:9;20584:17;20577:47;20641:131;20767:4;20641:131;:::i;:::-;20633:139;;20360:419;;;:::o;20785:172::-;20925:24;20921:1;20913:6;20909:14;20902:48;20785:172;:::o;20963:366::-;21105:3;21126:67;21190:2;21185:3;21126:67;:::i;:::-;21119:74;;21202:93;21291:3;21202:93;:::i;:::-;21320:2;21315:3;21311:12;21304:19;;20963:366;;;:::o;21335:419::-;21501:4;21539:2;21528:9;21524:18;21516:26;;21588:9;21582:4;21578:20;21574:1;21563:9;21559:17;21552:47;21616:131;21742:4;21616:131;:::i;:::-;21608:139;;21335:419;;;:::o;21760:173::-;21900:25;21896:1;21888:6;21884:14;21877:49;21760:173;:::o;21939:366::-;22081:3;22102:67;22166:2;22161:3;22102:67;:::i;:::-;22095:74;;22178:93;22267:3;22178:93;:::i;:::-;22296:2;22291:3;22287:12;22280:19;;21939:366;;;:::o;22311:419::-;22477:4;22515:2;22504:9;22500:18;22492:26;;22564:9;22558:4;22554:20;22550:1;22539:9;22535:17;22528:47;22592:131;22718:4;22592:131;:::i;:::-;22584:139;;22311:419;;;:::o;22736:143::-;22793:5;22824:6;22818:13;22809:22;;22840:33;22867:5;22840:33;:::i;:::-;22736:143;;;;:::o;22885:351::-;22955:6;23004:2;22992:9;22983:7;22979:23;22975:32;22972:119;;;23010:79;;:::i;:::-;22972:119;23130:1;23155:64;23211:7;23202:6;23191:9;23187:22;23155:64;:::i;:::-;23145:74;;23101:128;22885:351;;;;:::o;23242:332::-;23363:4;23401:2;23390:9;23386:18;23378:26;;23414:71;23482:1;23471:9;23467:17;23458:6;23414:71;:::i;:::-;23495:72;23563:2;23552:9;23548:18;23539:6;23495:72;:::i;:::-;23242:332;;;;;:::o;23580:85::-;23625:7;23654:5;23643:16;;23580:85;;;:::o;23671:158::-;23729:9;23762:61;23780:42;23789:32;23815:5;23789:32;:::i;:::-;23780:42;:::i;:::-;23762:61;:::i;:::-;23749:74;;23671:158;;;:::o;23835:147::-;23930:45;23969:5;23930:45;:::i;:::-;23925:3;23918:58;23835:147;;:::o;23988:807::-;24237:4;24275:3;24264:9;24260:19;24252:27;;24289:71;24357:1;24346:9;24342:17;24333:6;24289:71;:::i;:::-;24370:72;24438:2;24427:9;24423:18;24414:6;24370:72;:::i;:::-;24452:80;24528:2;24517:9;24513:18;24504:6;24452:80;:::i;:::-;24542;24618:2;24607:9;24603:18;24594:6;24542:80;:::i;:::-;24632:73;24700:3;24689:9;24685:19;24676:6;24632:73;:::i;:::-;24715;24783:3;24772:9;24768:19;24759:6;24715:73;:::i;:::-;23988:807;;;;;;;;;:::o;24801:663::-;24889:6;24897;24905;24954:2;24942:9;24933:7;24929:23;24925:32;24922:119;;;24960:79;;:::i;:::-;24922:119;25080:1;25105:64;25161:7;25152:6;25141:9;25137:22;25105:64;:::i;:::-;25095:74;;25051:128;25218:2;25244:64;25300:7;25291:6;25280:9;25276:22;25244:64;:::i;:::-;25234:74;;25189:129;25357:2;25383:64;25439:7;25430:6;25419:9;25415:22;25383:64;:::i;:::-;25373:74;;25328:129;24801:663;;;;;:::o;25470:225::-;25610:34;25606:1;25598:6;25594:14;25587:58;25679:8;25674:2;25666:6;25662:15;25655:33;25470:225;:::o;25701:366::-;25843:3;25864:67;25928:2;25923:3;25864:67;:::i;:::-;25857:74;;25940:93;26029:3;25940:93;:::i;:::-;26058:2;26053:3;26049:12;26042:19;;25701:366;;;:::o;26073:419::-;26239:4;26277:2;26266:9;26262:18;26254:26;;26326:9;26320:4;26316:20;26312:1;26301:9;26297:17;26290:47;26354:131;26480:4;26354:131;:::i;:::-;26346:139;;26073:419;;;:::o;26498:172::-;26638:24;26634:1;26626:6;26622:14;26615:48;26498:172;:::o;26676:366::-;26818:3;26839:67;26903:2;26898:3;26839:67;:::i;:::-;26832:74;;26915:93;27004:3;26915:93;:::i;:::-;27033:2;27028:3;27024:12;27017:19;;26676:366;;;:::o;27048:419::-;27214:4;27252:2;27241:9;27237:18;27229:26;;27301:9;27295:4;27291:20;27287:1;27276:9;27272:17;27265:47;27329:131;27455:4;27329:131;:::i;:::-;27321:139;;27048:419;;;:::o;27473:223::-;27613:34;27609:1;27601:6;27597:14;27590:58;27682:6;27677:2;27669:6;27665:15;27658:31;27473:223;:::o;27702:366::-;27844:3;27865:67;27929:2;27924:3;27865:67;:::i;:::-;27858:74;;27941:93;28030:3;27941:93;:::i;:::-;28059:2;28054:3;28050:12;28043:19;;27702:366;;;:::o;28074:419::-;28240:4;28278:2;28267:9;28263:18;28255:26;;28327:9;28321:4;28317:20;28313:1;28302:9;28298:17;28291:47;28355:131;28481:4;28355:131;:::i;:::-;28347:139;;28074:419;;;:::o;28499:221::-;28639:34;28635:1;28627:6;28623:14;28616:58;28708:4;28703:2;28695:6;28691:15;28684:29;28499:221;:::o;28726:366::-;28868:3;28889:67;28953:2;28948:3;28889:67;:::i;:::-;28882:74;;28965:93;29054:3;28965:93;:::i;:::-;29083:2;29078:3;29074:12;29067:19;;28726:366;;;:::o;29098:419::-;29264:4;29302:2;29291:9;29287:18;29279:26;;29351:9;29345:4;29341:20;29337:1;29326:9;29322:17;29315:47;29379:131;29505:4;29379:131;:::i;:::-;29371:139;;29098:419;;;:::o;29523:179::-;29663:31;29659:1;29651:6;29647:14;29640:55;29523:179;:::o;29708:366::-;29850:3;29871:67;29935:2;29930:3;29871:67;:::i;:::-;29864:74;;29947:93;30036:3;29947:93;:::i;:::-;30065:2;30060:3;30056:12;30049:19;;29708:366;;;:::o;30080:419::-;30246:4;30284:2;30273:9;30269:18;30261:26;;30333:9;30327:4;30323:20;30319:1;30308:9;30304:17;30297:47;30361:131;30487:4;30361:131;:::i;:::-;30353:139;;30080:419;;;:::o;30505:224::-;30645:34;30641:1;30633:6;30629:14;30622:58;30714:7;30709:2;30701:6;30697:15;30690:32;30505:224;:::o;30735:366::-;30877:3;30898:67;30962:2;30957:3;30898:67;:::i;:::-;30891:74;;30974:93;31063:3;30974:93;:::i;:::-;31092:2;31087:3;31083:12;31076:19;;30735:366;;;:::o;31107:419::-;31273:4;31311:2;31300:9;31296:18;31288:26;;31360:9;31354:4;31350:20;31346:1;31335:9;31331:17;31324:47;31388:131;31514:4;31388:131;:::i;:::-;31380:139;;31107:419;;;:::o;31532:222::-;31672:34;31668:1;31660:6;31656:14;31649:58;31741:5;31736:2;31728:6;31724:15;31717:30;31532:222;:::o;31760:366::-;31902:3;31923:67;31987:2;31982:3;31923:67;:::i;:::-;31916:74;;31999:93;32088:3;31999:93;:::i;:::-;32117:2;32112:3;32108:12;32101:19;;31760:366;;;:::o;32132:419::-;32298:4;32336:2;32325:9;32321:18;32313:26;;32385:9;32379:4;32375:20;32371:1;32360:9;32356:17;32349:47;32413:131;32539:4;32413:131;:::i;:::-;32405:139;;32132:419;;;:::o;32557:172::-;32697:24;32693:1;32685:6;32681:14;32674:48;32557:172;:::o;32735:366::-;32877:3;32898:67;32962:2;32957:3;32898:67;:::i;:::-;32891:74;;32974:93;33063:3;32974:93;:::i;:::-;33092:2;33087:3;33083:12;33076:19;;32735:366;;;:::o;33107:419::-;33273:4;33311:2;33300:9;33296:18;33288:26;;33360:9;33354:4;33350:20;33346:1;33335:9;33331:17;33324:47;33388:131;33514:4;33388:131;:::i;:::-;33380:139;;33107:419;;;:::o;33532:240::-;33672:34;33668:1;33660:6;33656:14;33649:58;33741:23;33736:2;33728:6;33724:15;33717:48;33532:240;:::o;33778:366::-;33920:3;33941:67;34005:2;34000:3;33941:67;:::i;:::-;33934:74;;34017:93;34106:3;34017:93;:::i;:::-;34135:2;34130:3;34126:12;34119:19;;33778:366;;;:::o;34150:419::-;34316:4;34354:2;34343:9;34339:18;34331:26;;34403:9;34397:4;34393:20;34389:1;34378:9;34374:17;34367:47;34431:131;34557:4;34431:131;:::i;:::-;34423:139;;34150:419;;;:::o;34575:169::-;34715:21;34711:1;34703:6;34699:14;34692:45;34575:169;:::o;34750:366::-;34892:3;34913:67;34977:2;34972:3;34913:67;:::i;:::-;34906:74;;34989:93;35078:3;34989:93;:::i;:::-;35107:2;35102:3;35098:12;35091:19;;34750:366;;;:::o;35122:419::-;35288:4;35326:2;35315:9;35311:18;35303:26;;35375:9;35369:4;35365:20;35361:1;35350:9;35346:17;35339:47;35403:131;35529:4;35403:131;:::i;:::-;35395:139;;35122:419;;;:::o;35547:241::-;35687:34;35683:1;35675:6;35671:14;35664:58;35756:24;35751:2;35743:6;35739:15;35732:49;35547:241;:::o;35794:366::-;35936:3;35957:67;36021:2;36016:3;35957:67;:::i;:::-;35950:74;;36033:93;36122:3;36033:93;:::i;:::-;36151:2;36146:3;36142:12;36135:19;;35794:366;;;:::o;36166:419::-;36332:4;36370:2;36359:9;36355:18;36347:26;;36419:9;36413:4;36409:20;36405:1;36394:9;36390:17;36383:47;36447:131;36573:4;36447:131;:::i;:::-;36439:139;;36166:419;;;:::o;36591:194::-;36631:4;36651:20;36669:1;36651:20;:::i;:::-;36646:25;;36685:20;36703:1;36685:20;:::i;:::-;36680:25;;36729:1;36726;36722:9;36714:17;;36753:1;36747:4;36744:11;36741:37;;;36758:18;;:::i;:::-;36741:37;36591:194;;;;:::o;36791:182::-;36931:34;36927:1;36919:6;36915:14;36908:58;36791:182;:::o;36979:366::-;37121:3;37142:67;37206:2;37201:3;37142:67;:::i;:::-;37135:74;;37218:93;37307:3;37218:93;:::i;:::-;37336:2;37331:3;37327:12;37320:19;;36979:366;;;:::o;37351:419::-;37517:4;37555:2;37544:9;37540:18;37532:26;;37604:9;37598:4;37594:20;37590:1;37579:9;37575:17;37568:47;37632:131;37758:4;37632:131;:::i;:::-;37624:139;;37351:419;;;:::o;37776:114::-;37843:6;37877:5;37871:12;37861:22;;37776:114;;;:::o;37896:184::-;37995:11;38029:6;38024:3;38017:19;38069:4;38064:3;38060:14;38045:29;;37896:184;;;;:::o;38086:132::-;38153:4;38176:3;38168:11;;38206:4;38201:3;38197:14;38189:22;;38086:132;;;:::o;38224:108::-;38301:24;38319:5;38301:24;:::i;:::-;38296:3;38289:37;38224:108;;:::o;38338:179::-;38407:10;38428:46;38470:3;38462:6;38428:46;:::i;:::-;38506:4;38501:3;38497:14;38483:28;;38338:179;;;;:::o;38523:113::-;38593:4;38625;38620:3;38616:14;38608:22;;38523:113;;;:::o;38672:732::-;38791:3;38820:54;38868:5;38820:54;:::i;:::-;38890:86;38969:6;38964:3;38890:86;:::i;:::-;38883:93;;39000:56;39050:5;39000:56;:::i;:::-;39079:7;39110:1;39095:284;39120:6;39117:1;39114:13;39095:284;;;39196:6;39190:13;39223:63;39282:3;39267:13;39223:63;:::i;:::-;39216:70;;39309:60;39362:6;39309:60;:::i;:::-;39299:70;;39155:224;39142:1;39139;39135:9;39130:14;;39095:284;;;39099:14;39395:3;39388:10;;38796:608;;;38672:732;;;;:::o;39410:831::-;39673:4;39711:3;39700:9;39696:19;39688:27;;39725:71;39793:1;39782:9;39778:17;39769:6;39725:71;:::i;:::-;39806:80;39882:2;39871:9;39867:18;39858:6;39806:80;:::i;:::-;39933:9;39927:4;39923:20;39918:2;39907:9;39903:18;39896:48;39961:108;40064:4;40055:6;39961:108;:::i;:::-;39953:116;;40079:72;40147:2;40136:9;40132:18;40123:6;40079:72;:::i;:::-;40161:73;40229:3;40218:9;40214:19;40205:6;40161:73;:::i;:::-;39410:831;;;;;;;;:::o;40247:223::-;40387:34;40383:1;40375:6;40371:14;40364:58;40456:6;40451:2;40443:6;40439:15;40432:31;40247:223;:::o;40476:366::-;40618:3;40639:67;40703:2;40698:3;40639:67;:::i;:::-;40632:74;;40715:93;40804:3;40715:93;:::i;:::-;40833:2;40828:3;40824:12;40817:19;;40476:366;;;:::o;40848:419::-;41014:4;41052:2;41041:9;41037:18;41029:26;;41101:9;41095:4;41091:20;41087:1;41076:9;41072:17;41065:47;41129:131;41255:4;41129:131;:::i;:::-;41121:139;;40848:419;;;:::o;41273:225::-;41413:34;41409:1;41401:6;41397:14;41390:58;41482:8;41477:2;41469:6;41465:15;41458:33;41273:225;:::o;41504:366::-;41646:3;41667:67;41731:2;41726:3;41667:67;:::i;:::-;41660:74;;41743:93;41832:3;41743:93;:::i;:::-;41861:2;41856:3;41852:12;41845:19;;41504:366;;;:::o;41876:419::-;42042:4;42080:2;42069:9;42065:18;42057:26;;42129:9;42123:4;42119:20;42115:1;42104:9;42100:17;42093:47;42157:131;42283:4;42157:131;:::i;:::-;42149:139;;41876:419;;;:::o

Swarm Source

ipfs://1d3fce83999120556d7b9db7cae56c222c1db74765f1139ad10585c106631d0e

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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