ETH Price: $3,561.98 (-1.80%)

Contract

0x4a071Ec2727d634889a79D4B2E91FD4c0104E7BE
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer183351102023-10-12 15:03:47418 days ago1697123027IN
0x4a071Ec2...c0104E7BE
0 ETH0.0010016415.13682697
Approve179159232023-08-14 21:58:59476 days ago1692050339IN
0x4a071Ec2...c0104E7BE
0 ETH0.000532917.87005737
Transfer179159142023-08-14 21:57:11476 days ago1692050231IN
0x4a071Ec2...c0104E7BE
0 ETH0.0007497820
Approve178794092023-08-09 19:24:35481 days ago1691609075IN
0x4a071Ec2...c0104E7BE
0 ETH0.0009654320.43974905
Approve178792032023-08-09 18:42:59481 days ago1691606579IN
0x4a071Ec2...c0104E7BE
0 ETH0.0011903825.37001268
Approve178726862023-08-08 20:49:11482 days ago1691527751IN
0x4a071Ec2...c0104E7BE
0 ETH0.0014700731.29874405
Approve178497552023-08-05 15:46:59486 days ago1691250419IN
0x4a071Ec2...c0104E7BE
0 ETH0.0011871425.16585691
Approve178419152023-08-04 13:27:47487 days ago1691155667IN
0x4a071Ec2...c0104E7BE
0 ETH0.0011462924.41786955
Approve178359332023-08-03 17:23:11487 days ago1691083391IN
0x4a071Ec2...c0104E7BE
0 ETH0.0023240149.26570364
Approve178098962023-07-31 2:05:35491 days ago1690769135IN
0x4a071Ec2...c0104E7BE
0 ETH0.0006362613.47069246
Approve178098742023-07-31 2:01:11491 days ago1690768871IN
0x4a071Ec2...c0104E7BE
0 ETH0.000761416.14079179
Approve177970632023-07-29 6:58:59493 days ago1690613939IN
0x4a071Ec2...c0104E7BE
0 ETH0.0008001116.961226
Approve177871832023-07-27 21:48:59494 days ago1690494539IN
0x4a071Ec2...c0104E7BE
0 ETH0.0012453426.36607378
Approve177724522023-07-25 20:20:59496 days ago1690316459IN
0x4a071Ec2...c0104E7BE
0 ETH0.0011975225.38586498
Approve177689482023-07-25 8:33:23497 days ago1690274003IN
0x4a071Ec2...c0104E7BE
0 ETH0.0010592622.4548341
Approve177684442023-07-25 6:51:47497 days ago1690267907IN
0x4a071Ec2...c0104E7BE
0 ETH0.0009918921
Approve177598072023-07-24 1:52:35498 days ago1690163555IN
0x4a071Ec2...c0104E7BE
0 ETH0.0008872618.9
Approve177584132023-07-23 21:11:47498 days ago1690146707IN
0x4a071Ec2...c0104E7BE
0 ETH0.0011169723.64808559
Approve177582332023-07-23 20:35:35498 days ago1690144535IN
0x4a071Ec2...c0104E7BE
0 ETH0.0007050923.4460451
Approve177582282023-07-23 20:34:35498 days ago1690144475IN
0x4a071Ec2...c0104E7BE
0 ETH0.0010650222.71560043
Enable Public Tr...177580322023-07-23 19:54:59498 days ago1690142099IN
0x4a071Ec2...c0104E7BE
0 ETH0.0008997831.20019206
Set Whitelist Wa...177529602023-07-23 2:52:35499 days ago1690080755IN
0x4a071Ec2...c0104E7BE
0 ETH0.0006232613.07652646
Set Whitelist Wa...177529452023-07-23 2:49:35499 days ago1690080575IN
0x4a071Ec2...c0104E7BE
0 ETH0.0006664213.97847385
Set Whitelist Wa...177447622023-07-21 23:21:47500 days ago1689981707IN
0x4a071Ec2...c0104E7BE
0 ETH0.0009595420.13192746
Approve177438292023-07-21 20:13:35500 days ago1689970415IN
0x4a071Ec2...c0104E7BE
0 ETH0.0018705539.60267003
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:
QuestCrossChain

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-06
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;

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

    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(uint) external view returns (address pair);

    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function WETH() external pure returns (address);

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

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

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountToken, uint amountETH);

    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactETHForTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);

    function swapTokensForExactETH(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactTokensForETH(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapETHForExactTokens(
        uint amountOut,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);

    function quote(
        uint amountA,
        uint reserveA,
        uint reserveB
    ) external pure returns (uint amountB);

    function getAmountOut(
        uint amountIn,
        uint reserveIn,
        uint reserveOut
    ) external pure returns (uint amountOut);

    function getAmountIn(
        uint amountOut,
        uint reserveIn,
        uint reserveOut
    ) external pure returns (uint amountIn);

    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory amounts);

    function getAmountsIn(
        uint amountOut,
        address[] calldata path
    ) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

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

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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;
        _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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

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

contract QuestCrossChain is ERC20, Ownable {
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedFromMaxWallet;
    mapping(address => bool) private _isWhitelisted;

    uint256 public sellFee;
    uint256 public buyFee;
    uint256 public maxWalletAmount;

    uint256 public walletToWalletTransferFee;
    address public marketingWallet;

    bool public enableTrading;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SellFeeUpdated(uint256 sellFee);
    event BuyFeeUpdated(uint256 buyFee);
    event WalletToWalletTransferFeeUpdated(uint256 walletToWalletTransferFee);

    event MarketingWalletChanged(address marketingWallet);

    constructor() ERC20("Quest Cross-Chain", "$QUEST") {
        address newOwner = 0xE0682d31266229C8aB90CF2beA2E3121C8d1568D;
        transferOwnership(newOwner);

        address router;
        if (block.chainid == 56) {
            router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC Pancake Mainnet Router
        } else if (block.chainid == 97) {
            router = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; // BSC Pancake Testnet Router
        } else if (block.chainid == 1 || block.chainid == 5) {
            router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Uniswap Mainnet & Testnet
        } else {
            revert();
        }

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        sellFee = 6;
        buyFee = 6;
        walletToWalletTransferFee = 6;

        marketingWallet = 0x41FCC1d384368fcD4036B8ec63Ef7064E56D2b93;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[marketingWallet] = true;
        _isWhitelisted[owner()] = true;
        _isWhitelisted[marketingWallet] = true;
        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[marketingWallet] = true;

        _mint(owner(), 200_000_000 * 10 ** 18);
        emit Transfer(address(0), owner(), totalSupply());
        maxWalletAmount = totalSupply() / 1000;
    }

    receive() external payable {}

    function EnablePublicTrading() public onlyOwner {
        require(enableTrading == false, "Public Trading is already enabled");
        enableTrading = true;
    }

    function claimStuckTokens(address token) external onlyOwner {
        if (token == address(0x0)) {
            (bool success, ) = msg.sender.call{value: address(this).balance}(
                ""
            );
            require(success, "Claim failed");
            return;
        }
        IERC20 ERC20token = IERC20(token);
        uint256 balance = ERC20token.balanceOf(address(this));
        ERC20token.transfer(msg.sender, balance);
    }

    function excludeFromFees(
        address account,
        bool excluded
    ) external onlyOwner {
        require(
            _isExcludedFromFees[account] != excluded,
            "Account is already the value of 'excluded'"
        );
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

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

    function setWhitelistWallets(address[] memory wallets) external onlyOwner {
        for (uint256 i = 0; i < wallets.length; i++) {
            _isWhitelisted[wallets[i]] = true;
        }
    }

    function isWhitelisted(address account) public view returns (bool) {
        return _isWhitelisted[account];
    }

    function excludeFromMaxWallet(
        address account,
        bool excluded
    ) external onlyOwner {
        require(
            _isExcludedFromMaxWallet[account] != excluded,
            "Account is already the value of 'excluded'"
        );
        _isExcludedFromMaxWallet[account] = excluded;
    }

    function isExcludedFromMaxWallet(
        address account
    ) public view returns (bool) {
        return _isExcludedFromMaxWallet[account];
    }

    function setSellFee(uint256 _sellFee) external onlyOwner {
        require(_sellFee <= 6, "Sell Fee cannot be more than 6%");
        sellFee = _sellFee;
        emit SellFeeUpdated(sellFee);
    }

    function setBuyFee(uint256 _buyFee) external onlyOwner {
        require(_buyFee <= 6, "Buy Fee cannot be more than 6%");
        buyFee = _buyFee;
        emit BuyFeeUpdated(buyFee);
    }

    function setWalletToWalletTransferFee(
        uint256 _walletToWalletTransferFee
    ) external onlyOwner {
        require(
            _walletToWalletTransferFee <= 6,
            "Wallet to Wallet Transfer Fee cannot be more than 6%"
        );
        walletToWalletTransferFee = _walletToWalletTransferFee;
        emit WalletToWalletTransferFeeUpdated(walletToWalletTransferFee);
    }

    function setMaxWalletAmount(uint256 _maxWalletAmount) external onlyOwner {
        require(
            _maxWalletAmount >= totalSupply() / 10000,
            "Max wallet amount cannot be less than 0.01% of total supply"
        );
        maxWalletAmount = _maxWalletAmount;
    }

    function changeMarketingWallet(
        address _marketingWallet
    ) external onlyOwner {
        require(
            _marketingWallet != marketingWallet,
            "Marketing wallet is already that address"
        );
        require(
            _marketingWallet != address(0),
            "Marketing wallet cannot be the zero address"
        );
        marketingWallet = _marketingWallet;
        emit MarketingWalletChanged(marketingWallet);
    }

    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 (!_isWhitelisted[from] && !_isWhitelisted[to]) {
            require(enableTrading, "Trading is not public yet");
        }

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        uint256 _totalFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            _totalFees = buyFee;
        } else if (to == uniswapV2Pair) {
            _totalFees = sellFee;
        } else {
            _totalFees = walletToWalletTransferFee;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, marketingWallet, fees);
        }

        if (
            !_isExcludedFromMaxWallet[from] &&
            !_isExcludedFromMaxWallet[to] &&
            to != uniswapV2Pair
        ) {
            require(
                balanceOf(to) + amount <= maxWalletAmount,
                "Transfer amount exceeds the maxWalletAmount."
            );
        }

        super._transfer(from, to, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"}],"name":"BuyFeeUpdated","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":false,"internalType":"address","name":"marketingWallet","type":"address"}],"name":"MarketingWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"SellFeeUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"walletToWalletTransferFee","type":"uint256"}],"name":"WalletToWalletTransferFeeUpdated","type":"event"},{"inputs":[],"name":"EnablePublicTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxWallet","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_walletToWalletTransferFee","type":"uint256"}],"name":"setWalletToWalletTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}],"name":"setWhitelistWallets","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"walletToWalletTransferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040518060400160405280601181526020017f51756573742043726f73732d436861696e0000000000000000000000000000008152506040518060400160405280600681526020017f245155455354000000000000000000000000000000000000000000000000000081525081600390816200008f9190620010cc565b508060049081620000a19190620010cc565b5050506000620000b6620008ef60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600073e0682d31266229c8ab90cf2bea2e3121c8d1568d90506200017f81620008f760201b60201c565b600060384603620001a7577310ed43c718714eb63d5aa57b78b54704e256024e905062000207565b60614603620001cd5773d99d1c33f9fc3444f8101754abc46c52416550d1905062000206565b6001461480620001dd5750600546145b156200020057737a250d5630b4cf539739df2c5dacb4c659f2488d905062000205565b600080fd5b5b5b600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028091906200121d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e91906200121d565b6040518363ffffffff1660e01b81526004016200032d92919062001260565b6020604051808303816000875af11580156200034d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037391906200121d565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200044c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000acb60201b60201c565b6006600b819055506006600c819055506006600e819055507341fcc1d384368fcd4036b8ec63ef7064e56d2b93600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000620004cf62000c9c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006200066262000c9c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960006200074362000c9c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200083a6200082262000c9c60201b60201c565b6aa56fa5b99019a5c800000062000cc660201b60201c565b6200084a62000c9c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620008a962000e3e60201b60201c565b604051620008b891906200129e565b60405180910390a36103e8620008d362000e3e60201b60201c565b620008df919062001319565b600d819055505050505062001649565b600033905090565b62000907620008ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000999576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200099090620013b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000a0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a02906200144a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000b3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b3490620014e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000baf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ba6906200157a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000c8f91906200129e565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000d38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d2f90620015ec565b60405180910390fd5b62000d4c6000838362000e4860201b60201c565b806002600082825462000d6091906200160e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000db791906200160e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000e1e91906200129e565b60405180910390a362000e3a6000838362000e4d60201b60201c565b5050565b6000600254905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ed457607f821691505b60208210810362000eea5762000ee962000e8c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000f547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f15565b62000f60868362000f15565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000fad62000fa762000fa18462000f78565b62000f82565b62000f78565b9050919050565b6000819050919050565b62000fc98362000f8c565b62000fe162000fd88262000fb4565b84845462000f22565b825550505050565b600090565b62000ff862000fe9565b6200100581848462000fbe565b505050565b5b818110156200102d576200102160008262000fee565b6001810190506200100b565b5050565b601f8211156200107c57620010468162000ef0565b620010518462000f05565b8101602085101562001061578190505b62001079620010708562000f05565b8301826200100a565b50505b505050565b600082821c905092915050565b6000620010a16000198460080262001081565b1980831691505092915050565b6000620010bc83836200108e565b9150826002028217905092915050565b620010d78262000e52565b67ffffffffffffffff811115620010f357620010f262000e5d565b5b620010ff825462000ebb565b6200110c82828562001031565b600060209050601f8311600181146200114457600084156200112f578287015190505b6200113b8582620010ae565b865550620011ab565b601f198416620011548662000ef0565b60005b828110156200117e5784890151825560018201915060208501945060208101905062001157565b868310156200119e57848901516200119a601f8916826200108e565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011e582620011b8565b9050919050565b620011f781620011d8565b81146200120357600080fd5b50565b6000815190506200121781620011ec565b92915050565b600060208284031215620012365762001235620011b3565b5b6000620012468482850162001206565b91505092915050565b6200125a81620011d8565b82525050565b60006040820190506200127760008301856200124f565b6200128660208301846200124f565b9392505050565b620012988162000f78565b82525050565b6000602082019050620012b560008301846200128d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620013268262000f78565b9150620013338362000f78565b925082620013465762001345620012bb565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200139a60208362001351565b9150620013a78262001362565b602082019050919050565b60006020820190508181036000830152620013cd816200138b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200143260268362001351565b91506200143f82620013d4565b604082019050919050565b60006020820190508181036000830152620014658162001423565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000620014ca60248362001351565b9150620014d7826200146c565b604082019050919050565b60006020820190508181036000830152620014fd81620014bb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200156260228362001351565b91506200156f8262001504565b604082019050919050565b60006020820190508181036000830152620015958162001553565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620015d4601f8362001351565b9150620015e1826200159c565b602082019050919050565b600060208201905081810360008301526200160781620015c5565b9050919050565b60006200161b8262000f78565b9150620016288362000f78565b9250828201905080821115620016435762001642620012ea565b5b92915050565b613e1580620016596000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063a9059cbb116100a0578063d2fcc0011161006f578063d2fcc0011461079e578063dd62ed3e146107c7578063e2477f8f14610804578063f2fde38b1461081b578063f9d0831a146108445761020f565b8063a9059cbb146106e4578063aa4bde2814610721578063bb85c6d11461074c578063c0246668146107755761020f565b80638b4cee08116100e75780638b4cee08146105ff5780638da5cb5b1461062857806395d89b4114610653578063a457c2d71461067e578063a6f14f6c146106bb5761020f565b806370a0823114610555578063715018a61461059257806375f0a874146105a95780638a8c523c146105d45761020f565b8063313ce5671161019b57806349bd5a5e1161016a57806349bd5a5e1461045c5780634fbee19314610487578063524feed5146104c45780636dd3d39f146104ed578063702509fd1461052a5761020f565b8063313ce5671461038c57806339509351146103b75780633af32abf146103f457806347062402146104315761020f565b806318160ddd116101d757806318160ddd146102d057806323b872dd146102fb57806327a14fc2146103385780632b14ca56146103615761020f565b806306fdde0314610214578063095ea7b31461023f5780630cc835a31461027c5780631694505e146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961086d565b6040516102369190612b03565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612bcd565b6108ff565b6040516102739190612c28565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190612c43565b61091d565b005b3480156102b157600080fd5b506102ba610a3b565b6040516102c79190612ccf565b60405180910390f35b3480156102dc57600080fd5b506102e5610a61565b6040516102f29190612cf9565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190612d14565b610a6b565b60405161032f9190612c28565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190612c43565b610b8a565b005b34801561036d57600080fd5b50610376610c82565b6040516103839190612cf9565b60405180910390f35b34801561039857600080fd5b506103a1610c88565b6040516103ae9190612d83565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190612bcd565b610c91565b6040516103eb9190612c28565b60405180910390f35b34801561040057600080fd5b5061041b60048036038101906104169190612d9e565b610d3d565b6040516104289190612c28565b60405180910390f35b34801561043d57600080fd5b50610446610d93565b6040516104539190612cf9565b60405180910390f35b34801561046857600080fd5b50610471610d99565b60405161047e9190612dda565b60405180910390f35b34801561049357600080fd5b506104ae60048036038101906104a99190612d9e565b610dbf565b6040516104bb9190612c28565b60405180910390f35b3480156104d057600080fd5b506104eb60048036038101906104e69190612f3d565b610e15565b005b3480156104f957600080fd5b50610514600480360381019061050f9190612d9e565b610f41565b6040516105219190612c28565b60405180910390f35b34801561053657600080fd5b5061053f610f97565b60405161054c9190612cf9565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190612d9e565b610f9d565b6040516105899190612cf9565b60405180910390f35b34801561059e57600080fd5b506105a7610fe5565b005b3480156105b557600080fd5b506105be61113d565b6040516105cb9190612dda565b60405180910390f35b3480156105e057600080fd5b506105e9611163565b6040516105f69190612c28565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190612c43565b611176565b005b34801561063457600080fd5b5061063d611294565b60405161064a9190612dda565b60405180910390f35b34801561065f57600080fd5b506106686112be565b6040516106759190612b03565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a09190612bcd565b611350565b6040516106b29190612c28565b60405180910390f35b3480156106c757600080fd5b506106e260048036038101906106dd9190612c43565b61143b565b005b3480156106f057600080fd5b5061070b60048036038101906107069190612bcd565b611559565b6040516107189190612c28565b60405180910390f35b34801561072d57600080fd5b50610736611577565b6040516107439190612cf9565b60405180910390f35b34801561075857600080fd5b50610773600480360381019061076e9190612d9e565b61157d565b005b34801561078157600080fd5b5061079c60048036038101906107979190612fb2565b6117b0565b005b3480156107aa57600080fd5b506107c560048036038101906107c09190612fb2565b611982565b005b3480156107d357600080fd5b506107ee60048036038101906107e99190612ff2565b611b06565b6040516107fb9190612cf9565b60405180910390f35b34801561081057600080fd5b50610819611b8d565b005b34801561082757600080fd5b50610842600480360381019061083d9190612d9e565b611c97565b005b34801561085057600080fd5b5061086b60048036038101906108669190612d9e565b611e5d565b005b60606003805461087c90613061565b80601f01602080910402602001604051908101604052809291908181526020018280546108a890613061565b80156108f55780601f106108ca576101008083540402835291602001916108f5565b820191906000526020600020905b8154815290600101906020018083116108d857829003601f168201915b5050505050905090565b600061091361090c6120e2565b84846120ea565b6001905092915050565b6109256120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab906130de565b60405180910390fd5b60068111156109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef9061314a565b60405180910390fd5b80600c819055507f7c1445c98b278c9970d007fca6048704bcb25af7cc4a04eb56565d9a9f149ca3600c54604051610a309190612cf9565b60405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ab76120e2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b735782811015610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b55906131dc565b60405180910390fd5b610b7285610b6a6120e2565b8584036120ea565b5b610b7e8585856122b3565b60019150509392505050565b610b926120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c18906130de565b60405180910390fd5b612710610c2c610a61565b610c36919061325a565b811015610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f906132fd565b60405180910390fd5b80600d8190555050565b600b5481565b60006012905090565b6000610d33610c9e6120e2565b848460016000610cac6120e2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d2e919061331d565b6120ea565b6001905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600c5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e1d6120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea3906130de565b60405180910390fd5b60005b8151811015610f3d576001600a6000848481518110610ed157610ed0613351565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f3590613380565b915050610eaf565b5050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fed6120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461107c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611073906130de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60149054906101000a900460ff1681565b61117e6120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611204906130de565b60405180910390fd5b6006811115611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890613414565b60405180910390fd5b80600b819055507f495ee53ee22006979ebc689a00ed737d7c13b6419142f82dcaea4ed95ac1e780600b546040516112899190612cf9565b60405180910390a150565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112cd90613061565b80601f01602080910402602001604051908101604052809291908181526020018280546112f990613061565b80156113465780601f1061131b57610100808354040283529160200191611346565b820191906000526020600020905b81548152906001019060200180831161132957829003601f168201915b5050505050905090565b6000806001600061135f6120e2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561141c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611413906134a6565b60405180910390fd5b6114306114276120e2565b858584036120ea565b600191505092915050565b6114436120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c9906130de565b60405180910390fd5b6006811115611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90613538565b60405180910390fd5b80600e819055507f55a18e0066d4ca4f044c3c7bff35c003f6b02ad8a7c71b6d33ae71d262833251600e5460405161154e9190612cf9565b60405180910390a150565b600061156d6115666120e2565b84846122b3565b6001905092915050565b600d5481565b6115856120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160b906130de565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b906135ca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170a9061365c565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516117a59190612dda565b60405180910390a150565b6117b86120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183e906130de565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d0906136ee565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516119769190612c28565b60405180910390a25050565b61198a6120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a10906130de565b60405180910390fd5b801515600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa2906136ee565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b956120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1b906130de565b60405180910390fd5b60001515600f60149054906101000a900460ff16151514611c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7190613780565b60405180910390fd5b6001600f60146101000a81548160ff021916908315150217905550565b611c9f6120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d25906130de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9490613812565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611e656120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb906130de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fda5760003373ffffffffffffffffffffffffffffffffffffffff1647604051611f4e90613863565b60006040518083038185875af1925050503d8060008114611f8b576040519150601f19603f3d011682016040523d82523d6000602084013e611f90565b606091505b5050905080611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb906138c4565b60405180910390fd5b506120df565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161201a9190612dda565b602060405180830381865afa158015612037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205b91906138f9565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612098929190613926565b6020604051808303816000875af11580156120b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120db9190613964565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215090613a03565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bf90613a95565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122a69190612cf9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231990613b27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238890613bb9565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124355750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561248a57600f60149054906101000a900460ff16612489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248090613c25565b60405180910390fd5b5b600081036124a35761249e838360006127ea565b6127e5565b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125465750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612554576000905061261a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036125b357600c549050612619565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361261257600b549050612618565b600e5490505b5b5b600081111561267c576000606482846126339190613c45565b61263d919061325a565b9050808361264b9190613c87565b925061267a85600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836127ea565b505b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127205750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561277a5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156127d857600d548261278c85610f9d565b612796919061331d565b11156127d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ce90613d2d565b60405180910390fd5b5b6127e38484846127ea565b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285090613b27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128bf90613bb9565b60405180910390fd5b6128d3838383612a69565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295090613dbf565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129ec919061331d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a509190612cf9565b60405180910390a3612a63848484612a6e565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612aad578082015181840152602081019050612a92565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ad582612a73565b612adf8185612a7e565b9350612aef818560208601612a8f565b612af881612ab9565b840191505092915050565b60006020820190508181036000830152612b1d8184612aca565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b6482612b39565b9050919050565b612b7481612b59565b8114612b7f57600080fd5b50565b600081359050612b9181612b6b565b92915050565b6000819050919050565b612baa81612b97565b8114612bb557600080fd5b50565b600081359050612bc781612ba1565b92915050565b60008060408385031215612be457612be3612b2f565b5b6000612bf285828601612b82565b9250506020612c0385828601612bb8565b9150509250929050565b60008115159050919050565b612c2281612c0d565b82525050565b6000602082019050612c3d6000830184612c19565b92915050565b600060208284031215612c5957612c58612b2f565b5b6000612c6784828501612bb8565b91505092915050565b6000819050919050565b6000612c95612c90612c8b84612b39565b612c70565b612b39565b9050919050565b6000612ca782612c7a565b9050919050565b6000612cb982612c9c565b9050919050565b612cc981612cae565b82525050565b6000602082019050612ce46000830184612cc0565b92915050565b612cf381612b97565b82525050565b6000602082019050612d0e6000830184612cea565b92915050565b600080600060608486031215612d2d57612d2c612b2f565b5b6000612d3b86828701612b82565b9350506020612d4c86828701612b82565b9250506040612d5d86828701612bb8565b9150509250925092565b600060ff82169050919050565b612d7d81612d67565b82525050565b6000602082019050612d986000830184612d74565b92915050565b600060208284031215612db457612db3612b2f565b5b6000612dc284828501612b82565b91505092915050565b612dd481612b59565b82525050565b6000602082019050612def6000830184612dcb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e3282612ab9565b810181811067ffffffffffffffff82111715612e5157612e50612dfa565b5b80604052505050565b6000612e64612b25565b9050612e708282612e29565b919050565b600067ffffffffffffffff821115612e9057612e8f612dfa565b5b602082029050602081019050919050565b600080fd5b6000612eb9612eb484612e75565b612e5a565b90508083825260208201905060208402830185811115612edc57612edb612ea1565b5b835b81811015612f055780612ef18882612b82565b845260208401935050602081019050612ede565b5050509392505050565b600082601f830112612f2457612f23612df5565b5b8135612f34848260208601612ea6565b91505092915050565b600060208284031215612f5357612f52612b2f565b5b600082013567ffffffffffffffff811115612f7157612f70612b34565b5b612f7d84828501612f0f565b91505092915050565b612f8f81612c0d565b8114612f9a57600080fd5b50565b600081359050612fac81612f86565b92915050565b60008060408385031215612fc957612fc8612b2f565b5b6000612fd785828601612b82565b9250506020612fe885828601612f9d565b9150509250929050565b6000806040838503121561300957613008612b2f565b5b600061301785828601612b82565b925050602061302885828601612b82565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061307957607f821691505b60208210810361308c5761308b613032565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130c8602083612a7e565b91506130d382613092565b602082019050919050565b600060208201905081810360008301526130f7816130bb565b9050919050565b7f427579204665652063616e6e6f74206265206d6f7265207468616e2036250000600082015250565b6000613134601e83612a7e565b915061313f826130fe565b602082019050919050565b6000602082019050818103600083015261316381613127565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006131c6602883612a7e565b91506131d18261316a565b604082019050919050565b600060208201905081810360008301526131f5816131b9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061326582612b97565b915061327083612b97565b9250826132805761327f6131fc565b5b828204905092915050565b7f4d61782077616c6c657420616d6f756e742063616e6e6f74206265206c65737360008201527f207468616e20302e303125206f6620746f74616c20737570706c790000000000602082015250565b60006132e7603b83612a7e565b91506132f28261328b565b604082019050919050565b60006020820190508181036000830152613316816132da565b9050919050565b600061332882612b97565b915061333383612b97565b925082820190508082111561334b5761334a61322b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061338b82612b97565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133bd576133bc61322b565b5b600182019050919050565b7f53656c6c204665652063616e6e6f74206265206d6f7265207468616e20362500600082015250565b60006133fe601f83612a7e565b9150613409826133c8565b602082019050919050565b6000602082019050818103600083015261342d816133f1565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613490602583612a7e565b915061349b82613434565b604082019050919050565b600060208201905081810360008301526134bf81613483565b9050919050565b7f57616c6c657420746f2057616c6c6574205472616e736665722046656520636160008201527f6e6e6f74206265206d6f7265207468616e203625000000000000000000000000602082015250565b6000613522603483612a7e565b915061352d826134c6565b604082019050919050565b6000602082019050818103600083015261355181613515565b9050919050565b7f4d61726b6574696e672077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b60006135b4602883612a7e565b91506135bf82613558565b604082019050919050565b600060208201905081810360008301526135e3816135a7565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000613646602b83612a7e565b9150613651826135ea565b604082019050919050565b6000602082019050818103600083015261367581613639565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b60006136d8602a83612a7e565b91506136e38261367c565b604082019050919050565b60006020820190508181036000830152613707816136cb565b9050919050565b7f5075626c69632054726164696e6720697320616c726561647920656e61626c6560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b600061376a602183612a7e565b91506137758261370e565b604082019050919050565b600060208201905081810360008301526137998161375d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137fc602683612a7e565b9150613807826137a0565b604082019050919050565b6000602082019050818103600083015261382b816137ef565b9050919050565b600081905092915050565b50565b600061384d600083613832565b91506138588261383d565b600082019050919050565b600061386e82613840565b9150819050919050565b7f436c61696d206661696c65640000000000000000000000000000000000000000600082015250565b60006138ae600c83612a7e565b91506138b982613878565b602082019050919050565b600060208201905081810360008301526138dd816138a1565b9050919050565b6000815190506138f381612ba1565b92915050565b60006020828403121561390f5761390e612b2f565b5b600061391d848285016138e4565b91505092915050565b600060408201905061393b6000830185612dcb565b6139486020830184612cea565b9392505050565b60008151905061395e81612f86565b92915050565b60006020828403121561397a57613979612b2f565b5b60006139888482850161394f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139ed602483612a7e565b91506139f882613991565b604082019050919050565b60006020820190508181036000830152613a1c816139e0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a7f602283612a7e565b9150613a8a82613a23565b604082019050919050565b60006020820190508181036000830152613aae81613a72565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b11602583612a7e565b9150613b1c82613ab5565b604082019050919050565b60006020820190508181036000830152613b4081613b04565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ba3602383612a7e565b9150613bae82613b47565b604082019050919050565b60006020820190508181036000830152613bd281613b96565b9050919050565b7f54726164696e67206973206e6f74207075626c69632079657400000000000000600082015250565b6000613c0f601983612a7e565b9150613c1a82613bd9565b602082019050919050565b60006020820190508181036000830152613c3e81613c02565b9050919050565b6000613c5082612b97565b9150613c5b83612b97565b9250828202613c6981612b97565b91508282048414831517613c8057613c7f61322b565b5b5092915050565b6000613c9282612b97565b9150613c9d83612b97565b9250828203905081811115613cb557613cb461322b565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b6000613d17602c83612a7e565b9150613d2282613cbb565b604082019050919050565b60006020820190508181036000830152613d4681613d0a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613da9602683612a7e565b9150613db482613d4d565b604082019050919050565b60006020820190508181036000830152613dd881613d9c565b905091905056fea2646970667358221220ef7373d86cb6faa5e06683507ff017c95351d3f3db8f057b44d8a9fc7dc9850d64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806370a0823111610118578063a9059cbb116100a0578063d2fcc0011161006f578063d2fcc0011461079e578063dd62ed3e146107c7578063e2477f8f14610804578063f2fde38b1461081b578063f9d0831a146108445761020f565b8063a9059cbb146106e4578063aa4bde2814610721578063bb85c6d11461074c578063c0246668146107755761020f565b80638b4cee08116100e75780638b4cee08146105ff5780638da5cb5b1461062857806395d89b4114610653578063a457c2d71461067e578063a6f14f6c146106bb5761020f565b806370a0823114610555578063715018a61461059257806375f0a874146105a95780638a8c523c146105d45761020f565b8063313ce5671161019b57806349bd5a5e1161016a57806349bd5a5e1461045c5780634fbee19314610487578063524feed5146104c45780636dd3d39f146104ed578063702509fd1461052a5761020f565b8063313ce5671461038c57806339509351146103b75780633af32abf146103f457806347062402146104315761020f565b806318160ddd116101d757806318160ddd146102d057806323b872dd146102fb57806327a14fc2146103385780632b14ca56146103615761020f565b806306fdde0314610214578063095ea7b31461023f5780630cc835a31461027c5780631694505e146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961086d565b6040516102369190612b03565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612bcd565b6108ff565b6040516102739190612c28565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190612c43565b61091d565b005b3480156102b157600080fd5b506102ba610a3b565b6040516102c79190612ccf565b60405180910390f35b3480156102dc57600080fd5b506102e5610a61565b6040516102f29190612cf9565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190612d14565b610a6b565b60405161032f9190612c28565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190612c43565b610b8a565b005b34801561036d57600080fd5b50610376610c82565b6040516103839190612cf9565b60405180910390f35b34801561039857600080fd5b506103a1610c88565b6040516103ae9190612d83565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190612bcd565b610c91565b6040516103eb9190612c28565b60405180910390f35b34801561040057600080fd5b5061041b60048036038101906104169190612d9e565b610d3d565b6040516104289190612c28565b60405180910390f35b34801561043d57600080fd5b50610446610d93565b6040516104539190612cf9565b60405180910390f35b34801561046857600080fd5b50610471610d99565b60405161047e9190612dda565b60405180910390f35b34801561049357600080fd5b506104ae60048036038101906104a99190612d9e565b610dbf565b6040516104bb9190612c28565b60405180910390f35b3480156104d057600080fd5b506104eb60048036038101906104e69190612f3d565b610e15565b005b3480156104f957600080fd5b50610514600480360381019061050f9190612d9e565b610f41565b6040516105219190612c28565b60405180910390f35b34801561053657600080fd5b5061053f610f97565b60405161054c9190612cf9565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190612d9e565b610f9d565b6040516105899190612cf9565b60405180910390f35b34801561059e57600080fd5b506105a7610fe5565b005b3480156105b557600080fd5b506105be61113d565b6040516105cb9190612dda565b60405180910390f35b3480156105e057600080fd5b506105e9611163565b6040516105f69190612c28565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190612c43565b611176565b005b34801561063457600080fd5b5061063d611294565b60405161064a9190612dda565b60405180910390f35b34801561065f57600080fd5b506106686112be565b6040516106759190612b03565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a09190612bcd565b611350565b6040516106b29190612c28565b60405180910390f35b3480156106c757600080fd5b506106e260048036038101906106dd9190612c43565b61143b565b005b3480156106f057600080fd5b5061070b60048036038101906107069190612bcd565b611559565b6040516107189190612c28565b60405180910390f35b34801561072d57600080fd5b50610736611577565b6040516107439190612cf9565b60405180910390f35b34801561075857600080fd5b50610773600480360381019061076e9190612d9e565b61157d565b005b34801561078157600080fd5b5061079c60048036038101906107979190612fb2565b6117b0565b005b3480156107aa57600080fd5b506107c560048036038101906107c09190612fb2565b611982565b005b3480156107d357600080fd5b506107ee60048036038101906107e99190612ff2565b611b06565b6040516107fb9190612cf9565b60405180910390f35b34801561081057600080fd5b50610819611b8d565b005b34801561082757600080fd5b50610842600480360381019061083d9190612d9e565b611c97565b005b34801561085057600080fd5b5061086b60048036038101906108669190612d9e565b611e5d565b005b60606003805461087c90613061565b80601f01602080910402602001604051908101604052809291908181526020018280546108a890613061565b80156108f55780601f106108ca576101008083540402835291602001916108f5565b820191906000526020600020905b8154815290600101906020018083116108d857829003601f168201915b5050505050905090565b600061091361090c6120e2565b84846120ea565b6001905092915050565b6109256120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab906130de565b60405180910390fd5b60068111156109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef9061314a565b60405180910390fd5b80600c819055507f7c1445c98b278c9970d007fca6048704bcb25af7cc4a04eb56565d9a9f149ca3600c54604051610a309190612cf9565b60405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ab76120e2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b735782811015610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b55906131dc565b60405180910390fd5b610b7285610b6a6120e2565b8584036120ea565b5b610b7e8585856122b3565b60019150509392505050565b610b926120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c18906130de565b60405180910390fd5b612710610c2c610a61565b610c36919061325a565b811015610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f906132fd565b60405180910390fd5b80600d8190555050565b600b5481565b60006012905090565b6000610d33610c9e6120e2565b848460016000610cac6120e2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d2e919061331d565b6120ea565b6001905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600c5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e1d6120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea3906130de565b60405180910390fd5b60005b8151811015610f3d576001600a6000848481518110610ed157610ed0613351565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f3590613380565b915050610eaf565b5050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fed6120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461107c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611073906130de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60149054906101000a900460ff1681565b61117e6120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611204906130de565b60405180910390fd5b6006811115611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890613414565b60405180910390fd5b80600b819055507f495ee53ee22006979ebc689a00ed737d7c13b6419142f82dcaea4ed95ac1e780600b546040516112899190612cf9565b60405180910390a150565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112cd90613061565b80601f01602080910402602001604051908101604052809291908181526020018280546112f990613061565b80156113465780601f1061131b57610100808354040283529160200191611346565b820191906000526020600020905b81548152906001019060200180831161132957829003601f168201915b5050505050905090565b6000806001600061135f6120e2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561141c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611413906134a6565b60405180910390fd5b6114306114276120e2565b858584036120ea565b600191505092915050565b6114436120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c9906130de565b60405180910390fd5b6006811115611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90613538565b60405180910390fd5b80600e819055507f55a18e0066d4ca4f044c3c7bff35c003f6b02ad8a7c71b6d33ae71d262833251600e5460405161154e9190612cf9565b60405180910390a150565b600061156d6115666120e2565b84846122b3565b6001905092915050565b600d5481565b6115856120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160b906130de565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b906135ca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170a9061365c565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516117a59190612dda565b60405180910390a150565b6117b86120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183e906130de565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d0906136ee565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516119769190612c28565b60405180910390a25050565b61198a6120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a10906130de565b60405180910390fd5b801515600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa2906136ee565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b956120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1b906130de565b60405180910390fd5b60001515600f60149054906101000a900460ff16151514611c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7190613780565b60405180910390fd5b6001600f60146101000a81548160ff021916908315150217905550565b611c9f6120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d25906130de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9490613812565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611e656120e2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb906130de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fda5760003373ffffffffffffffffffffffffffffffffffffffff1647604051611f4e90613863565b60006040518083038185875af1925050503d8060008114611f8b576040519150601f19603f3d011682016040523d82523d6000602084013e611f90565b606091505b5050905080611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb906138c4565b60405180910390fd5b506120df565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161201a9190612dda565b602060405180830381865afa158015612037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205b91906138f9565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612098929190613926565b6020604051808303816000875af11580156120b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120db9190613964565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215090613a03565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bf90613a95565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122a69190612cf9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231990613b27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238890613bb9565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124355750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561248a57600f60149054906101000a900460ff16612489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248090613c25565b60405180910390fd5b5b600081036124a35761249e838360006127ea565b6127e5565b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125465750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612554576000905061261a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036125b357600c549050612619565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361261257600b549050612618565b600e5490505b5b5b600081111561267c576000606482846126339190613c45565b61263d919061325a565b9050808361264b9190613c87565b925061267a85600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836127ea565b505b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127205750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561277a5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156127d857600d548261278c85610f9d565b612796919061331d565b11156127d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ce90613d2d565b60405180910390fd5b5b6127e38484846127ea565b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285090613b27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128bf90613bb9565b60405180910390fd5b6128d3838383612a69565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295090613dbf565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129ec919061331d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a509190612cf9565b60405180910390a3612a63848484612a6e565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612aad578082015181840152602081019050612a92565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ad582612a73565b612adf8185612a7e565b9350612aef818560208601612a8f565b612af881612ab9565b840191505092915050565b60006020820190508181036000830152612b1d8184612aca565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b6482612b39565b9050919050565b612b7481612b59565b8114612b7f57600080fd5b50565b600081359050612b9181612b6b565b92915050565b6000819050919050565b612baa81612b97565b8114612bb557600080fd5b50565b600081359050612bc781612ba1565b92915050565b60008060408385031215612be457612be3612b2f565b5b6000612bf285828601612b82565b9250506020612c0385828601612bb8565b9150509250929050565b60008115159050919050565b612c2281612c0d565b82525050565b6000602082019050612c3d6000830184612c19565b92915050565b600060208284031215612c5957612c58612b2f565b5b6000612c6784828501612bb8565b91505092915050565b6000819050919050565b6000612c95612c90612c8b84612b39565b612c70565b612b39565b9050919050565b6000612ca782612c7a565b9050919050565b6000612cb982612c9c565b9050919050565b612cc981612cae565b82525050565b6000602082019050612ce46000830184612cc0565b92915050565b612cf381612b97565b82525050565b6000602082019050612d0e6000830184612cea565b92915050565b600080600060608486031215612d2d57612d2c612b2f565b5b6000612d3b86828701612b82565b9350506020612d4c86828701612b82565b9250506040612d5d86828701612bb8565b9150509250925092565b600060ff82169050919050565b612d7d81612d67565b82525050565b6000602082019050612d986000830184612d74565b92915050565b600060208284031215612db457612db3612b2f565b5b6000612dc284828501612b82565b91505092915050565b612dd481612b59565b82525050565b6000602082019050612def6000830184612dcb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e3282612ab9565b810181811067ffffffffffffffff82111715612e5157612e50612dfa565b5b80604052505050565b6000612e64612b25565b9050612e708282612e29565b919050565b600067ffffffffffffffff821115612e9057612e8f612dfa565b5b602082029050602081019050919050565b600080fd5b6000612eb9612eb484612e75565b612e5a565b90508083825260208201905060208402830185811115612edc57612edb612ea1565b5b835b81811015612f055780612ef18882612b82565b845260208401935050602081019050612ede565b5050509392505050565b600082601f830112612f2457612f23612df5565b5b8135612f34848260208601612ea6565b91505092915050565b600060208284031215612f5357612f52612b2f565b5b600082013567ffffffffffffffff811115612f7157612f70612b34565b5b612f7d84828501612f0f565b91505092915050565b612f8f81612c0d565b8114612f9a57600080fd5b50565b600081359050612fac81612f86565b92915050565b60008060408385031215612fc957612fc8612b2f565b5b6000612fd785828601612b82565b9250506020612fe885828601612f9d565b9150509250929050565b6000806040838503121561300957613008612b2f565b5b600061301785828601612b82565b925050602061302885828601612b82565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061307957607f821691505b60208210810361308c5761308b613032565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130c8602083612a7e565b91506130d382613092565b602082019050919050565b600060208201905081810360008301526130f7816130bb565b9050919050565b7f427579204665652063616e6e6f74206265206d6f7265207468616e2036250000600082015250565b6000613134601e83612a7e565b915061313f826130fe565b602082019050919050565b6000602082019050818103600083015261316381613127565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006131c6602883612a7e565b91506131d18261316a565b604082019050919050565b600060208201905081810360008301526131f5816131b9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061326582612b97565b915061327083612b97565b9250826132805761327f6131fc565b5b828204905092915050565b7f4d61782077616c6c657420616d6f756e742063616e6e6f74206265206c65737360008201527f207468616e20302e303125206f6620746f74616c20737570706c790000000000602082015250565b60006132e7603b83612a7e565b91506132f28261328b565b604082019050919050565b60006020820190508181036000830152613316816132da565b9050919050565b600061332882612b97565b915061333383612b97565b925082820190508082111561334b5761334a61322b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061338b82612b97565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133bd576133bc61322b565b5b600182019050919050565b7f53656c6c204665652063616e6e6f74206265206d6f7265207468616e20362500600082015250565b60006133fe601f83612a7e565b9150613409826133c8565b602082019050919050565b6000602082019050818103600083015261342d816133f1565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613490602583612a7e565b915061349b82613434565b604082019050919050565b600060208201905081810360008301526134bf81613483565b9050919050565b7f57616c6c657420746f2057616c6c6574205472616e736665722046656520636160008201527f6e6e6f74206265206d6f7265207468616e203625000000000000000000000000602082015250565b6000613522603483612a7e565b915061352d826134c6565b604082019050919050565b6000602082019050818103600083015261355181613515565b9050919050565b7f4d61726b6574696e672077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b60006135b4602883612a7e565b91506135bf82613558565b604082019050919050565b600060208201905081810360008301526135e3816135a7565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000613646602b83612a7e565b9150613651826135ea565b604082019050919050565b6000602082019050818103600083015261367581613639565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b60006136d8602a83612a7e565b91506136e38261367c565b604082019050919050565b60006020820190508181036000830152613707816136cb565b9050919050565b7f5075626c69632054726164696e6720697320616c726561647920656e61626c6560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b600061376a602183612a7e565b91506137758261370e565b604082019050919050565b600060208201905081810360008301526137998161375d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137fc602683612a7e565b9150613807826137a0565b604082019050919050565b6000602082019050818103600083015261382b816137ef565b9050919050565b600081905092915050565b50565b600061384d600083613832565b91506138588261383d565b600082019050919050565b600061386e82613840565b9150819050919050565b7f436c61696d206661696c65640000000000000000000000000000000000000000600082015250565b60006138ae600c83612a7e565b91506138b982613878565b602082019050919050565b600060208201905081810360008301526138dd816138a1565b9050919050565b6000815190506138f381612ba1565b92915050565b60006020828403121561390f5761390e612b2f565b5b600061391d848285016138e4565b91505092915050565b600060408201905061393b6000830185612dcb565b6139486020830184612cea565b9392505050565b60008151905061395e81612f86565b92915050565b60006020828403121561397a57613979612b2f565b5b60006139888482850161394f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139ed602483612a7e565b91506139f882613991565b604082019050919050565b60006020820190508181036000830152613a1c816139e0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a7f602283612a7e565b9150613a8a82613a23565b604082019050919050565b60006020820190508181036000830152613aae81613a72565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b11602583612a7e565b9150613b1c82613ab5565b604082019050919050565b60006020820190508181036000830152613b4081613b04565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ba3602383612a7e565b9150613bae82613b47565b604082019050919050565b60006020820190508181036000830152613bd281613b96565b9050919050565b7f54726164696e67206973206e6f74207075626c69632079657400000000000000600082015250565b6000613c0f601983612a7e565b9150613c1a82613bd9565b602082019050919050565b60006020820190508181036000830152613c3e81613c02565b9050919050565b6000613c5082612b97565b9150613c5b83612b97565b9250828202613c6981612b97565b91508282048414831517613c8057613c7f61322b565b5b5092915050565b6000613c9282612b97565b9150613c9d83612b97565b9250828203905081811115613cb557613cb461322b565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b6000613d17602c83612a7e565b9150613d2282613cbb565b604082019050919050565b60006020820190508181036000830152613d4681613d0a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613da9602683612a7e565b9150613db482613d4d565b604082019050919050565b60006020820190508181036000830152613dd881613d9c565b905091905056fea2646970667358221220ef7373d86cb6faa5e06683507ff017c95351d3f3db8f057b44d8a9fc7dc9850d64736f6c63430008120033

Deployed Bytecode Sourcemap

13933:7681:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8904:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9884:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18768:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13983:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9225:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10086:622;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19378:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14247:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9124:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10716:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17950:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14276:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14031:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17611:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17745:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18399:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14343:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9341:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8054:148;;;;;;;;;;;;;:::i;:::-;;14390:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14429:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18559:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7840:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9012:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11014:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18969:401;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9492:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14304:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19673:470;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17249:354;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18074:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9700:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16608:166;;;;;;;;;;;;;:::i;:::-;;8210:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16782:459;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8904:100;8958:13;8991:5;8984:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8904:100;:::o;9884:194::-;9992:4;10009:39;10018:12;:10;:12::i;:::-;10032:7;10041:6;10009:8;:39::i;:::-;10066:4;10059:11;;9884:194;;;;:::o;18768:193::-;7977:12;:10;:12::i;:::-;7967:22;;:6;;;;;;;;;;;:22;;;7959:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18853:1:::1;18842:7;:12;;18834:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18909:7;18900:6;:16;;;;18932:21;18946:6;;18932:21;;;;;;:::i;:::-;;;;;;;;18768:193:::0;:::o;13983:41::-;;;;;;;;;;;;;:::o;9225:108::-;9286:7;9313:12;;9306:19;;9225:108;:::o;10086:622::-;10226:4;10243:24;10270:11;:19;10282:6;10270:19;;;;;;;;;;;;;;;:33;10290:12;:10;:12::i;:::-;10270:33;;;;;;;;;;;;;;;;10243:60;;10338:17;10318:16;:37;10314:314;;10418:6;10398:16;:26;;10372:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;10544:57;10553:6;10561:12;:10;:12::i;:::-;10594:6;10575:16;:25;10544:8;:57::i;:::-;10314:314;10640:36;10650:6;10658:9;10669:6;10640:9;:36::i;:::-;10696:4;10689:11;;;10086:622;;;;;:::o;19378:287::-;7977:12;:10;:12::i;:::-;7967:22;;:6;;;;;;;;;;;:22;;;7959:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19520:5:::1;19504:13;:11;:13::i;:::-;:21;;;;:::i;:::-;19484:16;:41;;19462:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;19641:16;19623:15;:34;;;;19378:287:::0;:::o;14247:22::-;;;;:::o;9124:93::-;9182:5;9207:2;9200:9;;9124:93;:::o;10716:290::-;10829:4;10846:130;10869:12;:10;:12::i;:::-;10896:7;10955:10;10918:11;:25;10930:12;:10;:12::i;:::-;10918:25;;;;;;;;;;;;;;;:34;10944:7;10918:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10846:8;:130::i;:::-;10994:4;10987:11;;10716:290;;;;:::o;17950:116::-;18011:4;18035:14;:23;18050:7;18035:23;;;;;;;;;;;;;;;;;;;;;;;;;18028:30;;17950:116;;;:::o;14276:21::-;;;;:::o;14031:28::-;;;;;;;;;;;;;:::o;17611:126::-;17677:4;17701:19;:28;17721:7;17701:28;;;;;;;;;;;;;;;;;;;;;;;;;17694:35;;17611:126;;;:::o;17745:197::-;7977:12;:10;:12::i;:::-;7967:22;;:6;;;;;;;;;;;:22;;;7959:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17835:9:::1;17830:105;17854:7;:14;17850:1;:18;17830:105;;;17919:4;17890:14;:26;17905:7;17913:1;17905:10;;;;;;;;:::i;:::-;;;;;;;;17890:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;17870:3;;;;;:::i;:::-;;;;17830:105;;;;17745:197:::0;:::o;18399:152::-;18486:4;18510:24;:33;18535:7;18510:33;;;;;;;;;;;;;;;;;;;;;;;;;18503:40;;18399:152;;;:::o;14343:40::-;;;;:::o;9341:143::-;9431:7;9458:9;:18;9468:7;9458:18;;;;;;;;;;;;;;;;9451:25;;9341:143;;;:::o;8054:148::-;7977:12;:10;:12::i;:::-;7967:22;;:6;;;;;;;;;;;:22;;;7959:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8161:1:::1;8124:40;;8145:6;;;;;;;;;;;8124:40;;;;;;;;;;;;8192:1;8175:6;;:19;;;;;;;;;;;;;;;;;;8054:148::o:0;14390:30::-;;;;;;;;;;;;;:::o;14429:25::-;;;;;;;;;;;;;:::o;18559:201::-;7977:12;:10;:12::i;:::-;7967:22;;:6;;;;;;;;;;;:22;;;7959:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18647:1:::1;18635:8;:13;;18627:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;18705:8;18695:7;:18;;;;18729:23;18744:7;;18729:23;;;;;;:::i;:::-;;;;;;;;18559:201:::0;:::o;7840:79::-;7878:7;7905:6;;;;;;;;;;;7898:13;;7840:79;:::o;9012:104::-;9068:13;9101:7;9094:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9012:104;:::o;11014:475::-;11132:4;11149:24;11176:11;:25;11188:12;:10;:12::i;:::-;11176:25;;;;;;;;;;;;;;;:34;11202:7;11176:34;;;;;;;;;;;;;;;;11149:61;;11263:15;11243:16;:35;;11221:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;11379:67;11388:12;:10;:12::i;:::-;11402:7;11430:15;11411:16;:34;11379:8;:67::i;:::-;11477:4;11470:11;;;11014:475;;;;:::o;18969:401::-;7977:12;:10;:12::i;:::-;7967:22;;:6;;;;;;;;;;;:22;;;7959:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19141:1:::1;19111:26;:31;;19089:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;19261:26;19233:25;:54;;;;19303:59;19336:25;;19303:59;;;;;;:::i;:::-;;;;;;;;18969:401:::0;:::o;9492:200::-;9603:4;9620:42;9630:12;:10;:12::i;:::-;9644:9;9655:6;9620:9;:42::i;:::-;9680:4;9673:11;;9492:200;;;;:::o;14304:30::-;;;;:::o;19673:470::-;7977:12;:10;:12::i;:::-;7967:22;;:6;;;;;;;;;;;:22;;;7959:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19818:15:::1;;;;;;;;;;;19798:35;;:16;:35;;::::0;19776:125:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19962:1;19934:30;;:16;:30;;::::0;19912:123:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20064:16;20046:15;;:34;;;;;;;;;;;;;;;;;;20096:39;20119:15;;;;;;;;;;;20096:39;;;;;;:::i;:::-;;;;;;;;19673:470:::0;:::o;17249:354::-;7977:12;:10;:12::i;:::-;7967:22;;:6;;;;;;;;;;;:22;;;7959:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17415:8:::1;17383:40;;:19;:28;17403:7;17383:28;;;;;;;;;;;;;;;;;;;;;;;;;:40;;::::0;17361:132:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17535:8;17504:19;:28;17524:7;17504:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17577:7;17561:34;;;17586:8;17561:34;;;;;;:::i;:::-;;;;;;;;17249:354:::0;;:::o;18074:317::-;7977:12;:10;:12::i;:::-;7967:22;;:6;;;;;;;;;;;:22;;;7959:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18250:8:::1;18213:45;;:24;:33;18238:7;18213:33;;;;;;;;;;;;;;;;;;;;;;;;;:45;;::::0;18191:137:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18375:8;18339:24;:33;18364:7;18339:33;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;18074:317:::0;;:::o;9700:176::-;9814:7;9841:11;:18;9853:5;9841:18;;;;;;;;;;;;;;;:27;9860:7;9841:27;;;;;;;;;;;;;;;;9834:34;;9700:176;;;;:::o;16608:166::-;7977:12;:10;:12::i;:::-;7967:22;;:6;;;;;;;;;;;:22;;;7959:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16692:5:::1;16675:22;;:13;;;;;;;;;;;:22;;;16667:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16762:4;16746:13;;:20;;;;;;;;;;;;;;;;;;16608:166::o:0;8210:281::-;7977:12;:10;:12::i;:::-;7967:22;;:6;;;;;;;;;;;:22;;;7959:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8333:1:::1;8313:22;;:8;:22;;::::0;8291:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8446:8;8417:38;;8438:6;;;;;;;;;;;8417:38;;;;;;;;;;;;8475:8;8466:6;;:17;;;;;;;;;;;;;;;;;;8210:281:::0;:::o;16782:459::-;7977:12;:10;:12::i;:::-;7967:22;;:6;;;;;;;;;;;:22;;;7959:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16874:3:::1;16857:21;;:5;:21;;::::0;16853:222:::1;;16896:12;16914:10;:15;;16937:21;16914:81;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16895:100;;;17018:7;17010:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;17057:7;;;16853:222;17085:17;17112:5;17085:33;;17129:15;17147:10;:20;;;17176:4;17147:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17129:53;;17193:10;:19;;;17213:10;17225:7;17193:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16842:399;;8037:1;16782:459:::0;:::o;7139:98::-;7192:7;7219:10;7212:17;;7139:98;:::o;13281:380::-;13434:1;13417:19;;:5;:19;;;13409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13515:1;13496:21;;:7;:21;;;13488:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13599:6;13569:11;:18;13581:5;13569:18;;;;;;;;;;;;;;;:27;13588:7;13569:27;;;;;;;;;;;;;;;:36;;;;13637:7;13621:32;;13630:5;13621:32;;;13646:6;13621:32;;;;;;:::i;:::-;;;;;;;;13281:380;;;:::o;20151:1460::-;20299:1;20283:18;;:4;:18;;;20275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20376:1;20362:16;;:2;:16;;;20354:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20436:14;:20;20451:4;20436:20;;;;;;;;;;;;;;;;;;;;;;;;;20435:21;:44;;;;;20461:14;:18;20476:2;20461:18;;;;;;;;;;;;;;;;;;;;;;;;;20460:19;20435:44;20431:128;;;20504:13;;;;;;;;;;;20496:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;20431:128;20585:1;20575:6;:11;20571:93;;20603:28;20619:4;20625:2;20629:1;20603:15;:28::i;:::-;20646:7;;20571:93;20676:18;20709:19;:25;20729:4;20709:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20738:19;:23;20758:2;20738:23;;;;;;;;;;;;;;;;;;;;;;;;;20709:52;20705:327;;;20791:1;20778:14;;20705:327;;;20822:13;;;;;;;;;;;20814:21;;:4;:21;;;20810:222;;20865:6;;20852:19;;20810:222;;;20899:13;;;;;;;;;;;20893:19;;:2;:19;;;20889:143;;20942:7;;20929:20;;20889:143;;;20995:25;;20982:38;;20889:143;20810:222;20705:327;21061:1;21048:10;:14;21044:185;;;21079:12;21118:3;21104:10;21095:6;:19;;;;:::i;:::-;21094:27;;;;:::i;:::-;21079:42;;21154:4;21145:6;:13;;;;:::i;:::-;21136:22;;21173:44;21189:4;21195:15;;;;;;;;;;;21212:4;21173:15;:44::i;:::-;21064:165;21044:185;21260:24;:30;21285:4;21260:30;;;;;;;;;;;;;;;;;;;;;;;;;21259:31;:77;;;;;21308:24;:28;21333:2;21308:28;;;;;;;;;;;;;;;;;;;;;;;;;21307:29;21259:77;:113;;;;;21359:13;;;;;;;;;;;21353:19;;:2;:19;;;;21259:113;21241:317;;;21451:15;;21441:6;21425:13;21435:2;21425:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;21399:147;;;;;;;;;;;;:::i;:::-;;;;;;;;;21241:317;21570:33;21586:4;21592:2;21596:6;21570:15;:33::i;:::-;20264:1347;20151:1460;;;;:::o;11497:770::-;11655:1;11637:20;;:6;:20;;;11629:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11739:1;11718:23;;:9;:23;;;11710:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11794:47;11815:6;11823:9;11834:6;11794:20;:47::i;:::-;11854:21;11878:9;:17;11888:6;11878:17;;;;;;;;;;;;;;;;11854:41;;11945:6;11928:13;:23;;11906:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;12089:6;12073:13;:22;12053:9;:17;12063:6;12053:17;;;;;;;;;;;;;;;:42;;;;12141:6;12117:9;:20;12127:9;12117:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12182:9;12165:35;;12174:6;12165:35;;;12193:6;12165:35;;;;;;:::i;:::-;;;;;;;;12213:46;12233:6;12241:9;12252:6;12213:19;:46::i;:::-;11618:649;11497:770;;;:::o;13669:125::-;;;;:::o;13802:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:152::-;4203:9;4236:37;4267:5;4236:37;:::i;:::-;4223:50;;4127:152;;;:::o;4285:183::-;4398:63;4455:5;4398:63;:::i;:::-;4393:3;4386:76;4285:183;;:::o;4474:274::-;4593:4;4631:2;4620:9;4616:18;4608:26;;4644:97;4738:1;4727:9;4723:17;4714:6;4644:97;:::i;:::-;4474:274;;;;:::o;4754:118::-;4841:24;4859:5;4841:24;:::i;:::-;4836:3;4829:37;4754:118;;:::o;4878:222::-;4971:4;5009:2;4998:9;4994:18;4986:26;;5022:71;5090:1;5079:9;5075:17;5066:6;5022:71;:::i;:::-;4878:222;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:86::-;5766:7;5806:4;5799:5;5795:16;5784:27;;5731:86;;;:::o;5823:112::-;5906:22;5922:5;5906:22;:::i;:::-;5901:3;5894:35;5823:112;;:::o;5941:214::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:67;6145:1;6134:9;6130:17;6121:6;6081:67;:::i;:::-;5941:214;;;;:::o;6161:329::-;6220:6;6269:2;6257:9;6248:7;6244:23;6240:32;6237:119;;;6275:79;;:::i;:::-;6237:119;6395:1;6420:53;6465:7;6456:6;6445:9;6441:22;6420:53;:::i;:::-;6410:63;;6366:117;6161:329;;;;:::o;6496:118::-;6583:24;6601:5;6583:24;:::i;:::-;6578:3;6571:37;6496:118;;:::o;6620:222::-;6713:4;6751:2;6740:9;6736:18;6728:26;;6764:71;6832:1;6821:9;6817:17;6808:6;6764:71;:::i;:::-;6620:222;;;;:::o;6848:117::-;6957:1;6954;6947:12;6971:180;7019:77;7016:1;7009:88;7116:4;7113:1;7106:15;7140:4;7137:1;7130:15;7157:281;7240:27;7262:4;7240:27;:::i;:::-;7232:6;7228:40;7370:6;7358:10;7355:22;7334:18;7322:10;7319:34;7316:62;7313:88;;;7381:18;;:::i;:::-;7313:88;7421:10;7417:2;7410:22;7200:238;7157:281;;:::o;7444:129::-;7478:6;7505:20;;:::i;:::-;7495:30;;7534:33;7562:4;7554:6;7534:33;:::i;:::-;7444:129;;;:::o;7579:311::-;7656:4;7746:18;7738:6;7735:30;7732:56;;;7768:18;;:::i;:::-;7732:56;7818:4;7810:6;7806:17;7798:25;;7878:4;7872;7868:15;7860:23;;7579:311;;;:::o;7896:117::-;8005:1;8002;7995:12;8036:710;8132:5;8157:81;8173:64;8230:6;8173:64;:::i;:::-;8157:81;:::i;:::-;8148:90;;8258:5;8287:6;8280:5;8273:21;8321:4;8314:5;8310:16;8303:23;;8374:4;8366:6;8362:17;8354:6;8350:30;8403:3;8395:6;8392:15;8389:122;;;8422:79;;:::i;:::-;8389:122;8537:6;8520:220;8554:6;8549:3;8546:15;8520:220;;;8629:3;8658:37;8691:3;8679:10;8658:37;:::i;:::-;8653:3;8646:50;8725:4;8720:3;8716:14;8709:21;;8596:144;8580:4;8575:3;8571:14;8564:21;;8520:220;;;8524:21;8138:608;;8036:710;;;;;:::o;8769:370::-;8840:5;8889:3;8882:4;8874:6;8870:17;8866:27;8856:122;;8897:79;;:::i;:::-;8856:122;9014:6;9001:20;9039:94;9129:3;9121:6;9114:4;9106:6;9102:17;9039:94;:::i;:::-;9030:103;;8846:293;8769:370;;;;:::o;9145:539::-;9229:6;9278:2;9266:9;9257:7;9253:23;9249:32;9246:119;;;9284:79;;:::i;:::-;9246:119;9432:1;9421:9;9417:17;9404:31;9462:18;9454:6;9451:30;9448:117;;;9484:79;;:::i;:::-;9448:117;9589:78;9659:7;9650:6;9639:9;9635:22;9589:78;:::i;:::-;9579:88;;9375:302;9145:539;;;;:::o;9690:116::-;9760:21;9775:5;9760:21;:::i;:::-;9753:5;9750:32;9740:60;;9796:1;9793;9786:12;9740:60;9690:116;:::o;9812:133::-;9855:5;9893:6;9880:20;9871:29;;9909:30;9933:5;9909:30;:::i;:::-;9812:133;;;;:::o;9951:468::-;10016:6;10024;10073:2;10061:9;10052:7;10048:23;10044:32;10041:119;;;10079:79;;:::i;:::-;10041:119;10199:1;10224:53;10269:7;10260:6;10249:9;10245:22;10224:53;:::i;:::-;10214:63;;10170:117;10326:2;10352:50;10394:7;10385:6;10374:9;10370:22;10352:50;:::i;:::-;10342:60;;10297:115;9951:468;;;;;:::o;10425:474::-;10493:6;10501;10550:2;10538:9;10529:7;10525:23;10521:32;10518:119;;;10556:79;;:::i;:::-;10518:119;10676:1;10701:53;10746:7;10737:6;10726:9;10722:22;10701:53;:::i;:::-;10691:63;;10647:117;10803:2;10829:53;10874:7;10865:6;10854:9;10850:22;10829:53;:::i;:::-;10819:63;;10774:118;10425:474;;;;;:::o;10905:180::-;10953:77;10950:1;10943:88;11050:4;11047:1;11040:15;11074:4;11071:1;11064:15;11091:320;11135:6;11172:1;11166:4;11162:12;11152:22;;11219:1;11213:4;11209:12;11240:18;11230:81;;11296:4;11288:6;11284:17;11274:27;;11230:81;11358:2;11350:6;11347:14;11327:18;11324:38;11321:84;;11377:18;;:::i;:::-;11321:84;11142:269;11091:320;;;:::o;11417:182::-;11557:34;11553:1;11545:6;11541:14;11534:58;11417:182;:::o;11605:366::-;11747:3;11768:67;11832:2;11827:3;11768:67;:::i;:::-;11761:74;;11844:93;11933:3;11844:93;:::i;:::-;11962:2;11957:3;11953:12;11946:19;;11605:366;;;:::o;11977:419::-;12143:4;12181:2;12170:9;12166:18;12158:26;;12230:9;12224:4;12220:20;12216:1;12205:9;12201:17;12194:47;12258:131;12384:4;12258:131;:::i;:::-;12250:139;;11977:419;;;:::o;12402:180::-;12542:32;12538:1;12530:6;12526:14;12519:56;12402:180;:::o;12588:366::-;12730:3;12751:67;12815:2;12810:3;12751:67;:::i;:::-;12744:74;;12827:93;12916:3;12827:93;:::i;:::-;12945:2;12940:3;12936:12;12929:19;;12588:366;;;:::o;12960:419::-;13126:4;13164:2;13153:9;13149:18;13141:26;;13213:9;13207:4;13203:20;13199:1;13188:9;13184:17;13177:47;13241:131;13367:4;13241:131;:::i;:::-;13233:139;;12960:419;;;:::o;13385:227::-;13525:34;13521:1;13513:6;13509:14;13502:58;13594:10;13589:2;13581:6;13577:15;13570:35;13385:227;:::o;13618:366::-;13760:3;13781:67;13845:2;13840:3;13781:67;:::i;:::-;13774:74;;13857:93;13946:3;13857:93;:::i;:::-;13975:2;13970:3;13966:12;13959:19;;13618:366;;;:::o;13990:419::-;14156:4;14194:2;14183:9;14179:18;14171:26;;14243:9;14237:4;14233:20;14229:1;14218:9;14214:17;14207:47;14271:131;14397:4;14271:131;:::i;:::-;14263:139;;13990:419;;;:::o;14415:180::-;14463:77;14460:1;14453:88;14560:4;14557:1;14550:15;14584:4;14581:1;14574:15;14601:180;14649:77;14646:1;14639:88;14746:4;14743:1;14736:15;14770:4;14767:1;14760:15;14787:185;14827:1;14844:20;14862:1;14844:20;:::i;:::-;14839:25;;14878:20;14896:1;14878:20;:::i;:::-;14873:25;;14917:1;14907:35;;14922:18;;:::i;:::-;14907:35;14964:1;14961;14957:9;14952:14;;14787:185;;;;:::o;14978:246::-;15118:34;15114:1;15106:6;15102:14;15095:58;15187:29;15182:2;15174:6;15170:15;15163:54;14978:246;:::o;15230:366::-;15372:3;15393:67;15457:2;15452:3;15393:67;:::i;:::-;15386:74;;15469:93;15558:3;15469:93;:::i;:::-;15587:2;15582:3;15578:12;15571:19;;15230:366;;;:::o;15602:419::-;15768:4;15806:2;15795:9;15791:18;15783:26;;15855:9;15849:4;15845:20;15841:1;15830:9;15826:17;15819:47;15883:131;16009:4;15883:131;:::i;:::-;15875:139;;15602:419;;;:::o;16027:191::-;16067:3;16086:20;16104:1;16086:20;:::i;:::-;16081:25;;16120:20;16138:1;16120:20;:::i;:::-;16115:25;;16163:1;16160;16156:9;16149:16;;16184:3;16181:1;16178:10;16175:36;;;16191:18;;:::i;:::-;16175:36;16027:191;;;;:::o;16224:180::-;16272:77;16269:1;16262:88;16369:4;16366:1;16359:15;16393:4;16390:1;16383:15;16410:233;16449:3;16472:24;16490:5;16472:24;:::i;:::-;16463:33;;16518:66;16511:5;16508:77;16505:103;;16588:18;;:::i;:::-;16505:103;16635:1;16628:5;16624:13;16617:20;;16410:233;;;:::o;16649:181::-;16789:33;16785:1;16777:6;16773:14;16766:57;16649:181;:::o;16836:366::-;16978:3;16999:67;17063:2;17058:3;16999:67;:::i;:::-;16992:74;;17075:93;17164:3;17075:93;:::i;:::-;17193:2;17188:3;17184:12;17177:19;;16836:366;;;:::o;17208:419::-;17374:4;17412:2;17401:9;17397:18;17389:26;;17461:9;17455:4;17451:20;17447:1;17436:9;17432:17;17425:47;17489:131;17615:4;17489:131;:::i;:::-;17481:139;;17208:419;;;:::o;17633:224::-;17773:34;17769:1;17761:6;17757:14;17750:58;17842:7;17837:2;17829:6;17825:15;17818:32;17633:224;:::o;17863:366::-;18005:3;18026:67;18090:2;18085:3;18026:67;:::i;:::-;18019:74;;18102:93;18191:3;18102:93;:::i;:::-;18220:2;18215:3;18211:12;18204:19;;17863:366;;;:::o;18235:419::-;18401:4;18439:2;18428:9;18424:18;18416:26;;18488:9;18482:4;18478:20;18474:1;18463:9;18459:17;18452:47;18516:131;18642:4;18516:131;:::i;:::-;18508:139;;18235:419;;;:::o;18660:239::-;18800:34;18796:1;18788:6;18784:14;18777:58;18869:22;18864:2;18856:6;18852:15;18845:47;18660:239;:::o;18905:366::-;19047:3;19068:67;19132:2;19127:3;19068:67;:::i;:::-;19061:74;;19144:93;19233:3;19144:93;:::i;:::-;19262:2;19257:3;19253:12;19246:19;;18905:366;;;:::o;19277:419::-;19443:4;19481:2;19470:9;19466:18;19458:26;;19530:9;19524:4;19520:20;19516:1;19505:9;19501:17;19494:47;19558:131;19684:4;19558:131;:::i;:::-;19550:139;;19277:419;;;:::o;19702:227::-;19842:34;19838:1;19830:6;19826:14;19819:58;19911:10;19906:2;19898:6;19894:15;19887:35;19702:227;:::o;19935:366::-;20077:3;20098:67;20162:2;20157:3;20098:67;:::i;:::-;20091:74;;20174:93;20263:3;20174:93;:::i;:::-;20292:2;20287:3;20283:12;20276:19;;19935:366;;;:::o;20307:419::-;20473:4;20511:2;20500:9;20496:18;20488:26;;20560:9;20554:4;20550:20;20546:1;20535:9;20531:17;20524:47;20588:131;20714:4;20588:131;:::i;:::-;20580:139;;20307:419;;;:::o;20732:230::-;20872:34;20868:1;20860:6;20856:14;20849:58;20941:13;20936:2;20928:6;20924:15;20917:38;20732:230;:::o;20968:366::-;21110:3;21131:67;21195:2;21190:3;21131:67;:::i;:::-;21124:74;;21207:93;21296:3;21207:93;:::i;:::-;21325:2;21320:3;21316:12;21309:19;;20968:366;;;:::o;21340:419::-;21506:4;21544:2;21533:9;21529:18;21521:26;;21593:9;21587:4;21583:20;21579:1;21568:9;21564:17;21557:47;21621:131;21747:4;21621:131;:::i;:::-;21613:139;;21340:419;;;:::o;21765:229::-;21905:34;21901:1;21893:6;21889:14;21882:58;21974:12;21969:2;21961:6;21957:15;21950:37;21765:229;:::o;22000:366::-;22142:3;22163:67;22227:2;22222:3;22163:67;:::i;:::-;22156:74;;22239:93;22328:3;22239:93;:::i;:::-;22357:2;22352:3;22348:12;22341:19;;22000:366;;;:::o;22372:419::-;22538:4;22576:2;22565:9;22561:18;22553:26;;22625:9;22619:4;22615:20;22611:1;22600:9;22596:17;22589:47;22653:131;22779:4;22653:131;:::i;:::-;22645:139;;22372:419;;;:::o;22797:220::-;22937:34;22933:1;22925:6;22921:14;22914:58;23006:3;23001:2;22993:6;22989:15;22982:28;22797:220;:::o;23023:366::-;23165:3;23186:67;23250:2;23245:3;23186:67;:::i;:::-;23179:74;;23262:93;23351:3;23262:93;:::i;:::-;23380:2;23375:3;23371:12;23364:19;;23023:366;;;:::o;23395:419::-;23561:4;23599:2;23588:9;23584:18;23576:26;;23648:9;23642:4;23638:20;23634:1;23623:9;23619:17;23612:47;23676:131;23802:4;23676:131;:::i;:::-;23668:139;;23395:419;;;:::o;23820:225::-;23960:34;23956:1;23948:6;23944:14;23937:58;24029:8;24024:2;24016:6;24012:15;24005:33;23820:225;:::o;24051:366::-;24193:3;24214:67;24278:2;24273:3;24214:67;:::i;:::-;24207:74;;24290:93;24379:3;24290:93;:::i;:::-;24408:2;24403:3;24399:12;24392:19;;24051:366;;;:::o;24423:419::-;24589:4;24627:2;24616:9;24612:18;24604:26;;24676:9;24670:4;24666:20;24662:1;24651:9;24647:17;24640:47;24704:131;24830:4;24704:131;:::i;:::-;24696:139;;24423:419;;;:::o;24848:147::-;24949:11;24986:3;24971:18;;24848:147;;;;:::o;25001:114::-;;:::o;25121:398::-;25280:3;25301:83;25382:1;25377:3;25301:83;:::i;:::-;25294:90;;25393:93;25482:3;25393:93;:::i;:::-;25511:1;25506:3;25502:11;25495:18;;25121:398;;;:::o;25525:379::-;25709:3;25731:147;25874:3;25731:147;:::i;:::-;25724:154;;25895:3;25888:10;;25525:379;;;:::o;25910:162::-;26050:14;26046:1;26038:6;26034:14;26027:38;25910:162;:::o;26078:366::-;26220:3;26241:67;26305:2;26300:3;26241:67;:::i;:::-;26234:74;;26317:93;26406:3;26317:93;:::i;:::-;26435:2;26430:3;26426:12;26419:19;;26078:366;;;:::o;26450:419::-;26616:4;26654:2;26643:9;26639:18;26631:26;;26703:9;26697:4;26693:20;26689:1;26678:9;26674:17;26667:47;26731:131;26857:4;26731:131;:::i;:::-;26723:139;;26450:419;;;:::o;26875:143::-;26932:5;26963:6;26957:13;26948:22;;26979:33;27006:5;26979:33;:::i;:::-;26875:143;;;;:::o;27024:351::-;27094:6;27143:2;27131:9;27122:7;27118:23;27114:32;27111:119;;;27149:79;;:::i;:::-;27111:119;27269:1;27294:64;27350:7;27341:6;27330:9;27326:22;27294:64;:::i;:::-;27284:74;;27240:128;27024:351;;;;:::o;27381:332::-;27502:4;27540:2;27529:9;27525:18;27517:26;;27553:71;27621:1;27610:9;27606:17;27597:6;27553:71;:::i;:::-;27634:72;27702:2;27691:9;27687:18;27678:6;27634:72;:::i;:::-;27381:332;;;;;:::o;27719:137::-;27773:5;27804:6;27798:13;27789:22;;27820:30;27844:5;27820:30;:::i;:::-;27719:137;;;;:::o;27862:345::-;27929:6;27978:2;27966:9;27957:7;27953:23;27949:32;27946:119;;;27984:79;;:::i;:::-;27946:119;28104:1;28129:61;28182:7;28173:6;28162:9;28158:22;28129:61;:::i;:::-;28119:71;;28075:125;27862:345;;;;:::o;28213:223::-;28353:34;28349:1;28341:6;28337:14;28330:58;28422:6;28417:2;28409:6;28405:15;28398:31;28213:223;:::o;28442:366::-;28584:3;28605:67;28669:2;28664:3;28605:67;:::i;:::-;28598:74;;28681:93;28770:3;28681:93;:::i;:::-;28799:2;28794:3;28790:12;28783:19;;28442:366;;;:::o;28814:419::-;28980:4;29018:2;29007:9;29003:18;28995:26;;29067:9;29061:4;29057:20;29053:1;29042:9;29038:17;29031:47;29095:131;29221:4;29095:131;:::i;:::-;29087:139;;28814:419;;;:::o;29239:221::-;29379:34;29375:1;29367:6;29363:14;29356:58;29448:4;29443:2;29435:6;29431:15;29424:29;29239:221;:::o;29466:366::-;29608:3;29629:67;29693:2;29688:3;29629:67;:::i;:::-;29622:74;;29705:93;29794:3;29705:93;:::i;:::-;29823:2;29818:3;29814:12;29807:19;;29466:366;;;:::o;29838:419::-;30004:4;30042:2;30031:9;30027:18;30019:26;;30091:9;30085:4;30081:20;30077:1;30066:9;30062:17;30055:47;30119:131;30245:4;30119:131;:::i;:::-;30111:139;;29838:419;;;:::o;30263:224::-;30403:34;30399:1;30391:6;30387:14;30380:58;30472:7;30467:2;30459:6;30455:15;30448:32;30263:224;:::o;30493:366::-;30635:3;30656:67;30720:2;30715:3;30656:67;:::i;:::-;30649:74;;30732:93;30821:3;30732:93;:::i;:::-;30850:2;30845:3;30841:12;30834:19;;30493:366;;;:::o;30865:419::-;31031:4;31069:2;31058:9;31054:18;31046:26;;31118:9;31112:4;31108:20;31104:1;31093:9;31089:17;31082:47;31146:131;31272:4;31146:131;:::i;:::-;31138:139;;30865:419;;;:::o;31290:222::-;31430:34;31426:1;31418:6;31414:14;31407:58;31499:5;31494:2;31486:6;31482:15;31475:30;31290:222;:::o;31518:366::-;31660:3;31681:67;31745:2;31740:3;31681:67;:::i;:::-;31674:74;;31757:93;31846:3;31757:93;:::i;:::-;31875:2;31870:3;31866:12;31859:19;;31518:366;;;:::o;31890:419::-;32056:4;32094:2;32083:9;32079:18;32071:26;;32143:9;32137:4;32133:20;32129:1;32118:9;32114:17;32107:47;32171:131;32297:4;32171:131;:::i;:::-;32163:139;;31890:419;;;:::o;32315:175::-;32455:27;32451:1;32443:6;32439:14;32432:51;32315:175;:::o;32496:366::-;32638:3;32659:67;32723:2;32718:3;32659:67;:::i;:::-;32652:74;;32735:93;32824:3;32735:93;:::i;:::-;32853:2;32848:3;32844:12;32837:19;;32496:366;;;:::o;32868:419::-;33034:4;33072:2;33061:9;33057:18;33049:26;;33121:9;33115:4;33111:20;33107:1;33096:9;33092:17;33085:47;33149:131;33275:4;33149:131;:::i;:::-;33141:139;;32868:419;;;:::o;33293:410::-;33333:7;33356:20;33374:1;33356:20;:::i;:::-;33351:25;;33390:20;33408:1;33390:20;:::i;:::-;33385:25;;33445:1;33442;33438:9;33467:30;33485:11;33467:30;:::i;:::-;33456:41;;33646:1;33637:7;33633:15;33630:1;33627:22;33607:1;33600:9;33580:83;33557:139;;33676:18;;:::i;:::-;33557:139;33341:362;33293:410;;;;:::o;33709:194::-;33749:4;33769:20;33787:1;33769:20;:::i;:::-;33764:25;;33803:20;33821:1;33803:20;:::i;:::-;33798:25;;33847:1;33844;33840:9;33832:17;;33871:1;33865:4;33862:11;33859:37;;;33876:18;;:::i;:::-;33859:37;33709:194;;;;:::o;33909:231::-;34049:34;34045:1;34037:6;34033:14;34026:58;34118:14;34113:2;34105:6;34101:15;34094:39;33909:231;:::o;34146:366::-;34288:3;34309:67;34373:2;34368:3;34309:67;:::i;:::-;34302:74;;34385:93;34474:3;34385:93;:::i;:::-;34503:2;34498:3;34494:12;34487:19;;34146:366;;;:::o;34518:419::-;34684:4;34722:2;34711:9;34707:18;34699:26;;34771:9;34765:4;34761:20;34757:1;34746:9;34742:17;34735:47;34799:131;34925:4;34799:131;:::i;:::-;34791:139;;34518:419;;;:::o;34943:225::-;35083:34;35079:1;35071:6;35067:14;35060:58;35152:8;35147:2;35139:6;35135:15;35128:33;34943:225;:::o;35174:366::-;35316:3;35337:67;35401:2;35396:3;35337:67;:::i;:::-;35330:74;;35413:93;35502:3;35413:93;:::i;:::-;35531:2;35526:3;35522:12;35515:19;;35174:366;;;:::o;35546:419::-;35712:4;35750:2;35739:9;35735:18;35727:26;;35799:9;35793:4;35789:20;35785:1;35774:9;35770:17;35763:47;35827:131;35953:4;35827:131;:::i;:::-;35819:139;;35546:419;;;:::o

Swarm Source

ipfs://ef7373d86cb6faa5e06683507ff017c95351d3f3db8f057b44d8a9fc7dc9850d

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.