ETH Price: $1,592.30 (+1.56%)

Token

BurnVault Cash (BURN)

Overview

Max Total Supply

72,349,524.828611319844967367 BURN

Holders

42

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
862.63814837580439536 BURN

Value
$0.00
0xfeeacce884bc21b53dbe79abc5279029f78d1b44
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
BurnVaultToken

Compiler Version
v0.8.10+commit.fc410830

ZkSolc Version
v1.5.12

Optimization Enabled:
Yes with Mode 3

Other Settings:
default evmVersion
File 1 of 14 : BurnVaultToken.sol
// Burn the Token and Unlock the Vault on @AbstractChain

// Web: https://burnvault.cash
// X: https://x.com/burnvault_cash
// TG: https://t.me/burnvault_cash

// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import {IUniswapV2Router02} from "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol";
import {IUniswapV2Factory} from "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol";
import {Vault} from "./Vault.sol";
import {TwoTierReferral} from "./TwoTierReferral.sol";

contract BurnVaultToken is Ownable, ERC20 {
    using TwoTierReferral for TwoTierReferral.ReferralData;

    event EnableTrading();
    event DisableLimits();
    event SwapBack(uint256 amount);
    event ExcludedFromFees(address wallet, bool value);
    event UpdateRewardAddress(address newAddress);
    event UpdateSwapBackDelay(uint256 delay);
    event UpdateMaxSwapBackAmount(uint256 amount);

    event ReferralReward(
        address indexed referrer,
        address indexed user,
        uint256 amount,
        uint8 level
    );
    event Burn2Vault(
        address indexed user,
        uint256 burnAmount,
        uint256 dividendAmount
    );
    event Referral(address indexed user, address indexed referrer);

    IUniswapV2Router02 constant router =
        IUniswapV2Router02(0xad1eCa41E6F772bE3cb5A48A6141f9bcc1AF9F7c);
    uint256 private constant INITIAL_SUPPLY = 100_000_000 ether;
    uint256 private constant TAX = 5;

    uint256 private constant LEVEL1_REFERRAL_PERCENT = 5;
    uint256 private constant LEVEL2_REFERRAL_PERCENT = 2;
    uint256 private constant PERCENT_DENOMINATOR = 100;
    address private DEFAULT_1 = 0x0e5f79df48505D56331b4827c1E5c98b8eFD12b5;
    address private DEFAULT_2 = 0xEf37aB0743F37A32E279B26546D31D9989BEE014;

    bool private _enabled;
    uint256 private _maxSwapBackAmount = 50_000 ether;
    uint256 private _swapbackDelay = 3 seconds;
    uint256 private _latestSwapback;
    mapping(address => bool) private _excludedFromFees;
    bool private _swaping = false;
    TwoTierReferral.ReferralData private referralData;

    address public immutable pair;
    bool public claimEnabled;
    Vault public vault;

    mapping(address => uint256) public burneds;
    mapping(address => uint256) public totalLevel1Rewards;
    mapping(address => uint256) public totalLevel2Rewards;

    constructor() ERC20("BurnVault Cash", "BURN") {
        pair = IUniswapV2Factory(router.factory()).createPair(
            address(this),
            router.WETH()
        );
        vault = new Vault();
        _excludedFromFees[_msgSender()] = true;
        _excludedFromFees[address(this)] = true;
        _excludedFromFees[address(router)] = true;

        vault.excludeFromDividends(address(vault), true);
        vault.excludeFromDividends(address(pair), true);
        vault.excludeFromDividends(address(this), true);
        vault.excludeFromDividends(address(router), true);

        _mint(_msgSender(), INITIAL_SUPPLY);
    }

    modifier onSwap() {
        _swaping = true;
        _;
        _swaping = false;
    }

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

    function enableTrading() external onlyOwner {
        require(!_enabled, "enabled!");
        _enabled = true;
        emit EnableTrading();
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        if (
            _excludedFromFees[from] ||
            _excludedFromFees[to] ||
            (to != pair && from != pair) ||
            _swaping
        ) {
            super._transfer(from, to, amount);
            return;
        }

        require(_enabled, "Trading is not open");

        if (_shouldSwapBack() && to == pair) {
            uint256 clog = balanceOf(address(this));
            _swapTokenForETH(_min(clog, _maxSwapBackAmount));
        }

        uint256 _totalFees = (amount * TAX) / PERCENT_DENOMINATOR;

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

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

    function _min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }

    function _shouldSwapBack() internal view returns (bool) {
        return
            block.timestamp - _latestSwapback > _swapbackDelay &&
            balanceOf(address(this)) > 0;
    }

    function _swapTokenForETH(uint256 amount) private onSwap {
        _latestSwapback = block.timestamp;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), amount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(vault),
            block.timestamp
        );

        emit SwapBack(amount);
    }

    function burn2vault(uint256 amountBurnt, address referrer) external {
        require(amountBurnt > 0, "Burn amount must be greater than 0");

        uint256 amountDividend = (amountBurnt * INITIAL_SUPPLY) /
            (totalSupply() - amountBurnt);

        _burn(_msgSender(), amountBurnt);

        burneds[_msgSender()] += amountBurnt;

        vault.setBalance(
            _msgSender(),
            vault.balanceOf(_msgSender()) + amountDividend
        );

        _processReferral(_msgSender(), referrer, amountDividend);

        emit Burn2Vault(_msgSender(), amountBurnt, amountDividend);
    }

    function _processReferral(
        address user,
        address referrer,
        uint256 amountDividend
    ) internal {
        uint256 level1Reward = (amountDividend * LEVEL1_REFERRAL_PERCENT) /
            PERCENT_DENOMINATOR;

        uint256 level2Reward = (amountDividend * LEVEL2_REFERRAL_PERCENT) /
            PERCENT_DENOMINATOR;

        if (
            referrer == address(0) &&
            referralData.getReferrer(user) == address(0)
        ) {
            vault.setBalance(
                DEFAULT_1,
                vault.balanceOf(DEFAULT_1) + level1Reward
            );
            vault.setBalance(
                DEFAULT_2,
                vault.balanceOf(DEFAULT_2) + level2Reward
            );
            return;
        }

        if (!referralData.isUserRegistered(user)) {
            referralData.registerUser(user);
        }

        if (
            referrer != address(0) && !referralData.isUserRegistered(referrer)
        ) {
            referralData.registerUser(referrer);
        }

        address currentRef = referralData.getReferrer(user);

        if (currentRef == address(0)) {
            referralData.registerReferral(user, referrer);
            emit Referral(user, referrer);
        } else {
            referrer = currentRef;
        }

        if (referrer != address(0)) {
            if (level1Reward > 0) {
                vault.setBalance(
                    referrer,
                    vault.balanceOf(referrer) + level1Reward
                );

                totalLevel1Rewards[referrer] += level1Reward;

                emit ReferralReward(referrer, user, level1Reward, 1);
            }

            address level2Referrer = referralData.getReferrer(referrer);
            if (level2Referrer != address(0)) {
                if (level2Reward > 0) {
                    vault.setBalance(
                        level2Referrer,
                        vault.balanceOf(level2Referrer) + level2Reward
                    );

                    totalLevel2Rewards[level2Referrer] += level2Reward;

                    emit ReferralReward(level2Referrer, user, level2Reward, 2);
                }
            } else {
                vault.setBalance(
                    DEFAULT_2,
                    vault.balanceOf(DEFAULT_2) + level2Reward
                );
            }
        }
    }

    function getTotalLv1(address user) external view returns (uint256) {
        return referralData.getDirectReferralCount(user);
    }

    function getTotalLv2(address user) external view returns (uint256) {
        return referralData.getIndirectReferralCount(user);
    }

    function getDirectReferrals(
        address user
    ) external view returns (address[] memory) {
        return referralData.getDirectReferrals(user);
    }

    function getReferrer(address user) external view returns (address) {
        return referralData.getReferrer(user);
    }

    function setClaimEnabled(bool enabled) external onlyOwner {
        claimEnabled = enabled;
    }

    function excludeFromDividends(
        address account,
        bool value
    ) public onlyOwner {
        vault.excludeFromDividends(account, value);
    }

    function updateVault(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Zero address");
        vault = Vault(payable(newAddress));
        vault.excludeFromDividends(address(vault), true);
        vault.excludeFromDividends(address(pair), true);
        vault.excludeFromDividends(address(this), true);
        vault.excludeFromDividends(owner(), true);
        vault.excludeFromDividends(address(router), true);
    }

    function updateSwapBackDelay(uint256 delay) external onlyOwner {
        _swapbackDelay = delay;
        emit UpdateSwapBackDelay(delay);
    }

    function updateMaxSwapBackAmount(uint256 amount) external onlyOwner {
        require(amount > 0 && amount < INITIAL_SUPPLY / 50, "Invalid amount");
        _maxSwapBackAmount = amount;
        emit UpdateMaxSwapBackAmount(amount);
    }

    function changeDefaultReferral(
        address default1,
        address default2
    ) external onlyOwner {
        DEFAULT_1 = default1;
        DEFAULT_2 = default2;
    }

    function isExcludedFromFees(address wallet) external view returns (bool) {
        return _excludedFromFees[wallet];
    }

    function excludedFromFees(address wallet, bool value) external onlyOwner {
        _excludedFromFees[wallet] = value;
        emit ExcludedFromFees(wallet, value);
    }

    function trackerRescueETH20Tokens(
        address tokenAddress,
        uint256 amount
    ) external onlyOwner {
        vault.trackerRescueETH20Tokens(_msgSender(), tokenAddress, amount);
    }

    function getAccountInfo(
        address account
    ) external view returns (uint256, uint256, uint256) {
        // withdrawableDividends
        // totalDividends
        // lastClaimTime
        return vault.getAccount(account);
    }

    function getTotalDistributed() external view returns (uint256) {
        return vault.totalDividendsDistributed();
    }

    function claimable(address account) public view returns (uint256) {
        return vault.withdrawableDividendOf(account);
    }

    function claim() external {
        require(claimEnabled, "Claim not enabled");
        vault.processAccount(payable(msg.sender));
    }

    receive() external payable {}
}

File 2 of 14 : Vault.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
import {DividendPayingToken, IERC20} from "./DividendPayingToken.sol";

contract Vault is Ownable, DividendPayingToken {
    struct AccountInfo {
        address account;
        uint256 withdrawableDividends;
        uint256 totalDividends;
        uint256 lastClaimTime;
    }

    mapping(address => bool) public excludedFromDividends;

    mapping(address => uint256) public lastClaimTimes;

    event ExcludeFromDividends(address indexed account, bool value);
    event Claim(address indexed account, uint256 amount);

    constructor() DividendPayingToken("VAULTDividend", "VAULTDividend") {}

    function trackerRescueETH20Tokens(
        address recipient,
        address tokenAddress,
        uint256 amount
    ) external onlyOwner {
        if (tokenAddress == address(0)) {
            (bool success, ) = recipient.call{value: amount}("");
            require(success, "Failed to send Ether");
        } else {
            IERC20(tokenAddress).transfer(recipient, amount);
        }
    }

    function _transfer(address, address, uint256) internal pure override {
        require(false, "Dividend_Tracker: No transfers allowed");
    }

    function excludeFromDividends(
        address account,
        bool value
    ) external onlyOwner {
        require(excludedFromDividends[account] != value);
        excludedFromDividends[account] = value;
        if (value == true) {
            _setBalance(account, 0);
        } else {
            _setBalance(account, balanceOf(account));
        }
        emit ExcludeFromDividends(account, value);
    }

    function getAccount(
        address account
    ) public view returns (uint256, uint256, uint256) {
        AccountInfo memory info;
        info.withdrawableDividends = withdrawableDividendOf(account);
        info.totalDividends = accumulativeDividendOf(account);
        info.lastClaimTime = lastClaimTimes[account];
        return (
            info.withdrawableDividends,
            info.totalDividends,
            info.lastClaimTime
        );
    }

    function setBalance(
        address account,
        uint256 newBalance
    ) external onlyOwner {
        if (excludedFromDividends[account]) {
            return;
        }
        _setBalance(account, newBalance);
    }

    function processAccount(
        address payable account
    ) external onlyOwner returns (bool) {
        uint256 amount = _withdrawDividendOfUser(account);

        if (amount > 0) {
            lastClaimTimes[account] = block.timestamp;
            emit Claim(account, amount);
            return true;
        }
        return false;
    }
}

File 3 of 14 : TwoTierReferral.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

library TwoTierReferral {
    struct ReferralData {
        mapping(address => address) referrers;
        mapping(address => address[]) referrals;
        mapping(address => uint256) directReferralCount;
        mapping(address => uint256) indirectReferralCount;
        mapping(address => bool) isRegistered;
    }

    function registerReferral(
        ReferralData storage self,
        address user,
        address referrer
    ) internal returns (bool success) {
        require(user != referrer, "Cannot refer yourself");

        self.isRegistered[user] = true;

        if (referrer != address(0)) {
            self.referrers[user] = referrer;

            self.referrals[referrer].push(user);

            self.directReferralCount[referrer]++;

            address secondTierReferrer = self.referrers[referrer];
            if (secondTierReferrer != address(0)) {
                self.indirectReferralCount[secondTierReferrer]++;
            }
        }

        return true;
    }

    function registerUser(
        ReferralData storage self,
        address user
    ) internal returns (bool success) {
        self.isRegistered[user] = true;

        return true;
    }

    function getReferrer(
        ReferralData storage self,
        address user
    ) internal view returns (address) {
        return self.referrers[user];
    }

    function getSecondTierReferrer(
        ReferralData storage self,
        address user
    ) internal view returns (address) {
        address directReferrer = self.referrers[user];
        if (directReferrer != address(0)) {
            return self.referrers[directReferrer];
        }
        return address(0);
    }

    function getDirectReferrals(
        ReferralData storage self,
        address referrer
    ) internal view returns (address[] memory) {
        return self.referrals[referrer];
    }

    function getDirectReferralCount(
        ReferralData storage self,
        address referrer
    ) internal view returns (uint256) {
        return self.directReferralCount[referrer];
    }

    function getIndirectReferralCount(
        ReferralData storage self,
        address referrer
    ) internal view returns (uint256) {
        return self.indirectReferralCount[referrer];
    }

    function isUserRegistered(
        ReferralData storage self,
        address user
    ) internal view returns (bool) {
        return self.isRegistered[user];
    }

    function isDirectReferrer(
        ReferralData storage self,
        address referrer,
        address user
    ) internal view returns (bool) {
        return self.referrers[user] == referrer;
    }

    function isSecondTierReferrer(
        ReferralData storage self,
        address referrer,
        address user
    ) internal view returns (bool) {
        address directReferrer = self.referrers[user];
        if (directReferrer != address(0)) {
            return self.referrers[directReferrer] == referrer;
        }
        return false;
    }
}

File 4 of 14 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 5 of 14 : IUniswapV2Factory.sol
pragma solidity >=0.5.0;

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

File 6 of 14 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
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;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the default value returned by this function, unless
     * it's overridden.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

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

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    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;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

File 7 of 14 : IUniswapV2Router02.sol
pragma solidity >=0.6.2;

import './IUniswapV2Router01.sol';

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

File 8 of 14 : DividendPayingToken.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
import {ERC20, IERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import {DividendPayingTokenInterface} from "./DividendPayingTokenInterface.sol";
import "./SafeMath.sol";

contract DividendPayingToken is ERC20, DividendPayingTokenInterface, Ownable {
    using SafeMath for uint256;
    using SafeMathUint for uint256;
    using SafeMathInt for int256;

    // With `magnitude`, we can properly distribute dividends even if the amount of received ether is small.
    // For more discussion about choosing the value of `magnitude`,
    //  see https://github.com/ethereum/EIPs/issues/1726#issuecomment-472352728
    uint256 internal constant magnitude = 2 ** 128;

    uint256 internal magnifiedDividendPerShare;

    // About dividendCorrection:
    // If the token balance of a `_user` is never changed, the dividend of `_user` can be computed with:
    //   `dividendOf(_user) = dividendPerShare * balanceOf(_user)`.
    // When `balanceOf(_user)` is changed (via minting/burning/transferring tokens),
    //   `dividendOf(_user)` should not be changed,
    //   but the computed value of `dividendPerShare * balanceOf(_user)` is changed.
    // To keep the `dividendOf(_user)` unchanged, we add a correction term:
    //   `dividendOf(_user) = dividendPerShare * balanceOf(_user) + dividendCorrectionOf(_user)`,
    //   where `dividendCorrectionOf(_user)` is updated whenever `balanceOf(_user)` is changed:
    //   `dividendCorrectionOf(_user) = dividendPerShare * (old balanceOf(_user)) - (new balanceOf(_user))`.
    // So now `dividendOf(_user)` returns the same value before and after `balanceOf(_user)` is changed.
    mapping(address => int256) internal magnifiedDividendCorrections;
    mapping(address => uint256) internal withdrawnDividends;

    uint256 public totalDividendsDistributed;
    uint256 public totalDividendsWithdrawn;

    constructor(
        string memory _name,
        string memory _symbol
    ) ERC20(_name, _symbol) {}

    receive() external payable {
        distributeLPDividends(msg.value);
    }

    function distributeLPDividends(uint256 amount) internal {
        if (amount > 0 && totalSupply() > 0) {
            magnifiedDividendPerShare = magnifiedDividendPerShare.add(
                (amount).mul(magnitude) / totalSupply()
            );
            emit DividendsDistributed(msg.sender, amount);

            totalDividendsDistributed = totalDividendsDistributed.add(amount);
        }
    }

    /// @notice Withdraws the ether distributed to the sender.
    /// @dev It emits a `DividendWithdrawn` event if the amount of withdrawn ether is greater than 0.
    function withdrawDividend() public virtual override {
        _withdrawDividendOfUser(payable(msg.sender));
    }

    /// @notice Withdraws the ether distributed to the sender.
    /// @dev It emits a `DividendWithdrawn` event if the amount of withdrawn ether is greater than 0.
    function _withdrawDividendOfUser(
        address payable user
    ) internal returns (uint256) {
        uint256 _withdrawableDividend = withdrawableDividendOf(user);
        if (_withdrawableDividend > 0) {
            withdrawnDividends[user] = withdrawnDividends[user].add(
                _withdrawableDividend
            );
            totalDividendsWithdrawn += _withdrawableDividend;
            emit DividendWithdrawn(user, _withdrawableDividend);

            (bool success, ) = user.call{value: _withdrawableDividend}("");

            if (!success) {
                withdrawnDividends[user] = withdrawnDividends[user].sub(
                    _withdrawableDividend
                );
                totalDividendsWithdrawn -= _withdrawableDividend;
                return 0;
            }

            return _withdrawableDividend;
        }

        return 0;
    }

    /// @notice View the amount of dividend in wei that an address can withdraw.
    /// @param _owner The address of a token holder.
    /// @return The amount of dividend in wei that `_owner` can withdraw.
    function dividendOf(address _owner) public view override returns (uint256) {
        return withdrawableDividendOf(_owner);
    }

    /// @notice View the amount of dividend in wei that an address can withdraw.
    /// @param _owner The address of a token holder.
    /// @return The amount of dividend in wei that `_owner` can withdraw.
    function withdrawableDividendOf(
        address _owner
    ) public view override returns (uint256) {
        return accumulativeDividendOf(_owner).sub(withdrawnDividends[_owner]);
    }

    /// @notice View the amount of dividend in wei that an address has withdrawn.
    /// @param _owner The address of a token holder.
    /// @return The amount of dividend in wei that `_owner` has withdrawn.
    function withdrawnDividendOf(
        address _owner
    ) public view override returns (uint256) {
        return withdrawnDividends[_owner];
    }

    /// @notice View the amount of dividend in wei that an address has earned in total.
    /// @dev accumulativeDividendOf(_owner) = withdrawableDividendOf(_owner) + withdrawnDividendOf(_owner)
    /// = (magnifiedDividendPerShare * balanceOf(_owner) + magnifiedDividendCorrections[_owner]) / magnitude
    /// @param _owner The address of a token holder.
    /// @return The amount of dividend in wei that `_owner` has earned in total.
    function accumulativeDividendOf(
        address _owner
    ) public view override returns (uint256) {
        return
            magnifiedDividendPerShare
                .mul(balanceOf(_owner))
                .toInt256Safe()
                .add(magnifiedDividendCorrections[_owner])
                .toUint256Safe() / magnitude;
    }

    /// @dev Internal function that transfer tokens from one address to another.
    /// Update magnifiedDividendCorrections to keep dividends unchanged.
    /// @param from The address to transfer from.
    /// @param to The address to transfer to.
    /// @param value The amount to be transferred.
    function _transfer(
        address from,
        address to,
        uint256 value
    ) internal virtual override {
        require(false);

        int256 _magCorrection = magnifiedDividendPerShare
            .mul(value)
            .toInt256Safe();
        magnifiedDividendCorrections[from] = magnifiedDividendCorrections[from]
            .add(_magCorrection);
        magnifiedDividendCorrections[to] = magnifiedDividendCorrections[to].sub(
            _magCorrection
        );
    }

    /// @dev Internal function that mints tokens to an account.
    /// Update magnifiedDividendCorrections to keep dividends unchanged.
    /// @param account The account that will receive the created tokens.
    /// @param value The amount that will be created.
    function _mint(address account, uint256 value) internal override {
        super._mint(account, value);

        magnifiedDividendCorrections[account] = magnifiedDividendCorrections[
            account
        ].sub((magnifiedDividendPerShare.mul(value)).toInt256Safe());
    }

    /// @dev Internal function that burns an amount of the token of a given account.
    /// Update magnifiedDividendCorrections to keep dividends unchanged.
    /// @param account The account whose tokens will be burnt.
    /// @param value The amount that will be burnt.
    function _burn(address account, uint256 value) internal override {
        super._burn(account, value);

        magnifiedDividendCorrections[account] = magnifiedDividendCorrections[
            account
        ].add((magnifiedDividendPerShare.mul(value)).toInt256Safe());
    }

    function _setBalance(address account, uint256 newBalance) internal {
        uint256 currentBalance = balanceOf(account);

        if (newBalance > currentBalance) {
            uint256 mintAmount = newBalance.sub(currentBalance);
            _mint(account, mintAmount);
        } else if (newBalance < currentBalance) {
            uint256 burnAmount = currentBalance.sub(newBalance);
            _burn(account, burnAmount);
        }
    }
}

File 9 of 14 : SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

/**
 * @title SafeMathInt
 * @dev Math operations for int256 with overflow safety checks.
 */
library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    /**
     * @dev Multiplies two int256 variables and fails on overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    /**
     * @dev Division of two int256 variables and fails on overflow.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);

        // Solidity already throws when dividing by 0.
        return a / b;
    }

    /**
     * @dev Subtracts two int256 variables and fails on overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    /**
     * @dev Adds two int256 variables and fails on overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    /**
     * @dev Converts to absolute value, and fails on overflow.
     */
    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }

    function toUint256Safe(int256 a) internal pure returns (uint256) {
        require(a >= 0);
        return uint256(a);
    }
}

/**
 * @title SafeMathUint
 * @dev Math operations with safety checks that revert on error
 */
library SafeMathUint {
    function toInt256Safe(uint256 a) internal pure returns (int256) {
        int256 b = int256(a);
        require(b >= 0);
        return b;
    }
}

File 10 of 14 : DividendPayingTokenInterface.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

interface DividendPayingTokenInterface {
    /// @notice View the amount of dividend in wei that an address can withdraw.
    /// @param _owner The address of a token holder.
    /// @return The amount of dividend in wei that `_owner` can withdraw.
    function dividendOf(address _owner) external view returns (uint256);

    /// @notice Withdraws the ether distributed to the sender.
    /// @dev SHOULD transfer `dividendOf(msg.sender)` wei to `msg.sender`, and `dividendOf(msg.sender)` SHOULD be 0 after the transfer.
    ///  MUST emit a `DividendWithdrawn` event if the amount of ether transferred is greater than 0.
    function withdrawDividend() external;

    /// @notice View the amount of dividend in wei that an address can withdraw.
    /// @param _owner The address of a token holder.
    /// @return The amount of dividend in wei that `_owner` can withdraw.
    function withdrawableDividendOf(
        address _owner
    ) external view returns (uint256);

    /// @notice View the amount of dividend in wei that an address has withdrawn.
    /// @param _owner The address of a token holder.
    /// @return The amount of dividend in wei that `_owner` has withdrawn.
    function withdrawnDividendOf(
        address _owner
    ) external view returns (uint256);

    /// @notice View the amount of dividend in wei that an address has earned in total.
    /// @dev accumulativeDividendOf(_owner) = withdrawableDividendOf(_owner) + withdrawnDividendOf(_owner)
    /// @param _owner The address of a token holder.
    /// @return The amount of dividend in wei that `_owner` has earned in total.
    function accumulativeDividendOf(
        address _owner
    ) external view returns (uint256);

    /// @dev This event MUST emit when ether is distributed to token holders.
    /// @param from The address which sends ether to this contract.
    /// @param weiAmount The amount of distributed ether in wei.
    event DividendsDistributed(address indexed from, uint256 weiAmount);

    /// @dev This event MUST emit when an address withdraws their dividend.
    /// @param to The address which withdraws ether from this contract.
    /// @param weiAmount The amount of withdrawn ether in wei.
    event DividendWithdrawn(address indexed to, uint256 weiAmount);
}

File 11 of 14 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

File 12 of 14 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

File 13 of 14 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

File 14 of 14 : IUniswapV2Router01.sol
pragma solidity >=0.6.2;

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

Settings
{
  "optimizer": {
    "enabled": true,
    "mode": "3"
  },
  "outputSelection": {
    "*": {
      "*": [
        "abi"
      ]
    }
  },
  "detectMissingLibraries": false,
  "forceEVMLA": false,
  "enableEraVMExtensions": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"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":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"burnAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dividendAmount","type":"uint256"}],"name":"Burn2Vault","type":"event"},{"anonymous":false,"inputs":[],"name":"DisableLimits","type":"event"},{"anonymous":false,"inputs":[],"name":"EnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"ExcludedFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"}],"name":"Referral","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"ReferralReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SwapBack","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":"amount","type":"uint256"}],"name":"UpdateMaxSwapBackAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAddress","type":"address"}],"name":"UpdateRewardAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"delay","type":"uint256"}],"name":"UpdateSwapBackDelay","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBurnt","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"}],"name":"burn2vault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"burneds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"default1","type":"address"},{"internalType":"address","name":"default2","type":"address"}],"name":"changeDefaultReferral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"claimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromDividends","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getAccountInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getDirectReferrals","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getReferrer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getTotalLv1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getTotalLv2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"wallet","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setClaimEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalLevel1Rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalLevel2Rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"trackerRescueETH20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxSwapBackAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"delay","type":"uint256"}],"name":"updateSwapBackDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"contract Vault","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

9c4d535b00000000000000000000000000000000000000000000000000000000000000000100060bcb411117554b09fd6274ff1bbeb133a118d7d99d076bc1439dd7bb3900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x0002000000000002000a000000000002000100000001035500000060031002700000055c0030019d0000000100200190000000240000c13d0000055c023001970000008003000039000000400030043f000000040020008c0000004d0000413d000000000301043b000000e003300270000005860030009c000000510000213d000005a20030009c0000006b0000213d000005b00030009c000000b60000213d000005b70030009c0000015d0000a13d000005b80030009c0000026b0000613d000005b90030009c000004b40000613d000005ba0030009c000010ea0000c13d0000000001000416000000000001004b000010ea0000c13d0000000301000039000000000101041a000000800010043f000005bd01000041000015690001042e000000a001000039000000400010043f0000000001000416000000000001004b000010ea0000c13d0000000e01000039000000a00010043f0000055d01000041000000c00010043f0000012001000039000000400010043f0000000401000039000000e00010043f0000055e01000041000001000010043f0000000006000411000000000100041a0000055f02100197000000000262019f000000000020041b000000000200041400000560051001970000055c0020009c0000055c02008041000000c00120021000000561011001c70000800d02000039000000030300003900000562040000411568155e0000040f0000000100200190000010ea0000613d000000a00800043d000005630080009c0000008e0000413d000005e301000041000000000010043f0000004101000039000000040010043f000005db010000410000156a00010430000000000002004b000010ea0000c13d0000000001000019000015690001042e000005870030009c0000009e0000213d000005950030009c000000c50000213d0000059c0030009c000001800000a13d0000059d0030009c000002860000613d0000059e0030009c000004f00000613d0000059f0030009c000010ea0000c13d000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000005600010009c000010ea0000213d000000000010043f0000001001000039000000200010043f0000000001000414000004040000013d000005a30030009c000001020000213d000005aa0030009c000001980000a13d000005ab0030009c000002a10000613d000005ac0030009c000005370000613d000005ad0030009c000010ea0000c13d000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000005600010009c000010ea0000213d000000000010043f0000000d01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a0000056001100197000005620000013d0000000407000039000000000107041a000000010210019000000001031002700000007f0330618f0000001f0030008c00000000010000390000000101002039000000000012004b000001250000613d000005e301000041000000000010043f0000002201000039000000040010043f000005db010000410000156a00010430000005880030009c0000014e0000213d0000058f0030009c000001dc0000a13d000005900030009c000002b70000613d000005910030009c000005560000613d000005920030009c000010ea0000c13d000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000005600010009c000010ea0000213d000000000010043f0000001301000039000000200010043f0000000001000414000004040000013d000005b10030009c000001ee0000a13d000005b20030009c000002c50000613d000005b30030009c000005690000613d000005b40030009c000010ea0000c13d0000000001000416000000000001004b000010ea0000c13d0000001201000039000000800010043f000005bd01000041000015690001042e000005960030009c000002280000a13d000005970030009c000002d30000613d000005980030009c000005740000613d000005990030009c000010ea0000c13d000000440020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000402100370000000000202043b000800000002001d000005600020009c000010ea0000213d0000002401100370000000000101043b000700000001001d0000000001000411000000000010043f0000000201000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b0000000802000029000000000020043f000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a000000070210006c00000ac20000813d000000400100043d0000006402100039000005c80300004100000000003204350000004402100039000005c90300004100000000003204350000002402100039000000250300003900000b300000013d000005a40030009c000002340000a13d000005a50030009c000002eb0000613d000005a60030009c0000058a0000613d000005a70030009c000010ea0000c13d000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000000000200041a00000560022001970000000003000411000000000032004b000005c00000c13d000000010210008a000005d50020009c000008da0000813d0000000802000039000000000012041b000000800010043f00000000010004140000055c0010009c0000055c01008041000000c001100210000005d7011001c70000800d020000390000000103000039000005d8040000410000054e0000013d000000200030008c000001450000413d000700000003001d000800000008001d000000000070043f00000000010004140000055c0010009c0000055c01008041000000c00110021000000564011001c70000801002000039156815630000040f0000000100200190000010ea0000613d00000008080000290000001f028000390000000502200270000000200080008c0000000002004019000000000301043b00000007010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b0000000407000039000001450000813d000000000002041b0000000102200039000000000012004b000001410000413d0000001f0080008c0000000101800210000002610000a13d000000000070043f000005f804800198000005c90000c13d00000020030000390000056502000041000005d50000013d000005890030009c000002530000a13d0000058a0030009c000003250000613d0000058b0030009c000005a40000613d0000058c0030009c000010ea0000c13d0000000001000416000000000001004b000010ea0000c13d0000001201000039000000000101041a0000000801100270000002300000013d000005bb0030009c000003410000613d000005bc0030009c000010ea0000c13d0000000001000416000000000001004b000010ea0000c13d0000000403000039000000000203041a000000010420019000000001012002700000007f0110618f0000001f0010008c00000000050000390000000105002039000000000552013f0000000100500190000000980000c13d000000800010043f000000000004004b0000062e0000613d000000000030043f000000000001004b000005880000613d000005650200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000001770000413d00000ab10000013d000005a00030009c000003920000613d000005a10030009c000010ea0000c13d0000000001000416000000000001004b000010ea0000c13d000000000100041a00000560021001970000000005000411000000000052004b000005c00000c13d0000055f01100197000000000010041b00000000010004140000055c0010009c0000055c01008041000000c001100210000005be011001c70000800d020000390000000303000039000005620400004100000000060000190000054e0000013d000005ae0030009c000003a00000613d000005af0030009c000010ea0000c13d000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000005600010009c000010ea0000213d0000001202000039000000000202041a000005ef03000041000000800030043f000000840010043f0000000001000414000000080220027000000560022001970000055c0010009c0000055c01008041000000c001100210000005d3011001c7156815630000040f00000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f000000200640019000000080046001bf000001c10000613d0000008007000039000000000801034f000000008908043c0000000007970436000000000047004b000001bd0000c13d000000000005004b000001ce0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000100200190000003180000c13d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000001d70000c13d000009050000013d000005930030009c000003f70000613d000005940030009c000010ea0000c13d0000000001000416000000000001004b000010ea0000c13d0000000001000412000a00000001001d000900000000003d0000800501000039000000440300003900000000040004150000000a0440008a0000000504400210000005c202000041156815400000040f000002300000013d000005b50030009c0000040f0000613d000005b60030009c000010ea0000c13d000000640020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000402100370000000000202043b000800000002001d000005600020009c000010ea0000213d0000002402100370000000000202043b000700000002001d000005600020009c000010ea0000213d0000004401100370000000000101043b000600000001001d0000000801000029000000000010043f0000000201000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d0000000002000411000000000101043b0000056002200197000500000002001d000000000020043f000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a000005f90010009c00000b110000c13d000000080100002900000007020000290000000603000029000005600000013d0000059a0030009c0000045f0000613d0000059b0030009c000010ea0000c13d0000000001000416000000000001004b000010ea0000c13d000000000100041a0000056001100197000000800010043f000005bd01000041000015690001042e000005a80030009c000004770000613d000005a90030009c000010ea0000c13d000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000005600010009c000010ea0000213d000000000010043f0000000b01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a000000ff001001900000000001000039000000010100c039000005620000013d0000058d0030009c000004880000613d0000058e0030009c000010ea0000c13d0000000001000416000000000001004b000010ea0000c13d0000000001020019156812220000040f000800000002001d156812010000040f0000000802000029156812120000040f0000040d0000013d000000000008004b0000000002000019000002650000613d000000c00200043d0000000303800210000005f90330027f000005f903300167000000000232016f000000000112019f000005e00000013d000000440020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000402100370000000000202043b000800000002001d000005600020009c000010ea0000213d0000002401100370000000000301043b00000000010004110000056001100198000008cc0000c13d0000058401000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f000005f301000041000000c40010043f000005f201000041000000e40010043f000005c1010000410000156a00010430000000440020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000402100370000000000202043b000005600020009c000010ea0000213d0000002401100370000000000101043b000005600010009c000010ea0000213d000000000300041a00000560033001970000000004000411000000000043004b000005c00000c13d0000000603000039000000000403041a0000055f04400197000000000224019f000000000023041b0000000702000039000000000302041a0000055f03300197000002e70000013d000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000201043b00000000010004110000056001100198000006400000c13d0000058401000041000000800010043f0000002001000039000000840010043f0000002101000039000000a40010043f000005ed01000041000000c40010043f000005ee01000041000000e40010043f000005c1010000410000156a00010430000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000005600010009c000010ea0000213d000000000010043f0000000f01000039000000200010043f0000000001000414000004040000013d000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000005600010009c000010ea0000213d000000000010043f0000001501000039000000200010043f0000000001000414000004040000013d000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000000000001004b0000000002000039000000010200c039000000000021004b000010ea0000c13d000000000200041a00000560022001970000000003000411000000000032004b000005c00000c13d0000001202000039000000000302041a000005fa03300197000000000113019f000000000012041b000005cc01000041000015690001042e0000000001000416000000000001004b000010ea0000c13d0000001201000039000000000101041a000005e602000041000000800020043f0000000003000414000000080110027000000560021001970000055c0030009c0000055c03008041000000c001300210000005e7011001c7156815630000040f00000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f000000200640019000000080046001bf000003090000613d0000008007000039000000000801034f000000008908043c0000000007970436000000000047004b000003050000c13d000000000005004b000003160000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000100200190000006220000613d0000001f0130003900000571011001970000008001100039000000400010043f000000200030008c000010ea0000413d000000800200043d00000000002104350000055c0010009c0000055c010080410000004001100210000005c6011001c7000015690001042e000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000800000001001d000005600010009c000010ea0000213d000000000100041a00000560011001970000000002000411000000000021004b000005c00000c13d0000000804000029000000000004004b000009240000c13d0000058401000041000000800010043f0000002001000039000000840010043f0000000c01000039000000a40010043f000005c401000041000000c40010043f000005c5010000410000156a00010430000000440020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000402100370000000000202043b000800000002001d000005600020009c000010ea0000213d0000002401100370000000000201043b000000000002004b0000000001000039000000010100c039000700000002001d000000000012004b000010ea0000c13d000000000100041a00000560011001970000000002000411000000000021004b000005c00000c13d0000001201000039000000000101041a0000057c02000041000000000020044300000008011002700000056001100197000600000001001d000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d000000400300043d0000002401300039000000070200002900000000002104350000057e0100004100000000001304350000000401300039000000080200002900000000002104350000055c0030009c000800000003001d0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000574011001c700000006020000291568155e0000040f00000060031002700000055c033001970000000100200190000004520000c13d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000038d0000c13d000009050000013d000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000005600010009c000010ea0000213d000000000010043f0000000101000039000000200010043f0000000001000414000004040000013d000000440020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000402100370000000000202043b000800000002001d000005600020009c000010ea0000213d0000002401100370000000000101043b000700000001001d0000000001000411000000000010043f0000000201000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b0000000802000029000000000020043f000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000010200008a000000070220014f000000000101043b000000000301041a000000000023004b0000091e0000213d0000000001000411000005600110019800000ac50000613d000600000003001d000000080000006b00000b270000613d000000000010043f0000000201000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b0000000802000029000000000020043f000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d00000006030000290000000702300029000000000101043b000000000021041b000000400100043d00000000002104350000055c0010009c0000055c010080410000004001100210000000000200041400000a970000013d000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000005600010009c000010ea0000213d000000000010043f0000001401000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a000005620000013d000000440020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000402100370000000000202043b000800000002001d000005600020009c000010ea0000213d0000002401100370000000000301043b000000000100041a00000560011001970000000002000411000000000021004b000005c00000c13d000600000003001d0000001201000039000000000101041a0000057c02000041000000000020044300000008011002700000056001100197000700000001001d000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d000000400300043d000000440130003900000006020000290000000000210435000000240130003900000008020000290000000000210435000005f50100004100000000001304350000000401300039000000000200041100000000002104350000055c0030009c000800000003001d0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000585011001c700000007020000291568155e0000040f00000060031002700000055c03300197000000010020019000000b3b0000613d0000001f01300039000005710210019700000008010000290000000001120019000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f000005520000013d0000000001000416000000000001004b000010ea0000c13d000000000100041a00000560011001970000000002000411000000000021004b000005c00000c13d0000000701000039000000000201041a000005cd00200198000008e40000c13d000005cf02200197000005d0022001c7000000000021041b00000000010004140000055c0010009c0000055c01008041000000c001100210000005be011001c70000800d020000390000000103000039000005d1040000410000054e0000013d0000000001000416000000000001004b000010ea0000c13d0000001201000039000000000101041a000000ff00100190000006590000c13d0000058401000041000000800010043f0000002001000039000000840010043f0000001101000039000000a40010043f000005e901000041000000c40010043f000005c5010000410000156a00010430000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000005600010009c000010ea0000213d000000000010043f0000000e01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000301041a000000400200043d000800000002001d000600000003001d0000000002320436000700000002001d000000000010043f00000000010004140000055c0010009c0000055c01008041000000c00110021000000564011001c70000801002000039156815630000040f0000000100200190000010ea0000613d0000000605000029000000000005004b00000acf0000c13d0000000806000029000000070400002900000ada0000013d000000440020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000402100370000000000202043b000800000002001d000005600020009c000010ea0000213d0000002401100370000000000201043b000000000002004b0000000001000039000000010100c039000700000002001d000000000012004b000010ea0000c13d000000000100041a00000560011001970000000002000411000000000021004b000005c00000c13d0000000801000029000000000010043f0000000b01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a000005fa022001970000000703000029000000000232019f000000000021041b000000400100043d00000020021000390000000000320435000000080200002900000000002104350000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f0000057a011001c70000800d020000390000000103000039000005f6040000410000054e0000013d000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000101043b000005600010009c000010ea0000213d0000001202000039000000000202041a000005d203000041000000800030043f000000840010043f0000000001000414000000080220027000000560022001970000055c0010009c0000055c01008041000000c001100210000005d3011001c7156815630000040f00000060031002700000055c03300197000000600030008c000000600400003900000000040340190000001f0540018f000000600640019000000080046001bf0000008009000039000005150000613d000000000701034f000000007807043c0000000009890436000000000049004b000005110000c13d000000000005004b000005220000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000100200190000008fa0000613d0000001f0130003900000571021001970000008001200039000000400010043f000000600030008c000010ea0000413d000000a00300043d000000c00400043d000000800500043d0000000000510435000000c0052000390000000000450435000000a00220003900000000003204350000055c0010009c0000055c010080410000004001100210000005d4011001c7000015690001042e000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d000000000200041a00000560022001970000000003000411000000000032004b000005c00000c13d0000000401100370000000000101043b0000000902000039000000000012041b000000800010043f00000000010004140000055c0010009c0000055c01008041000000c001100210000005d7011001c70000800d020000390000000103000039000005ea040000411568155e0000040f0000000100200190000010ea0000613d000000400100043d0000055c0010009c0000055c010080410000004001100210000015690001042e0000000001000416000000000001004b000010ea0000c13d0000000001020019156811f30000040f00000000030100190000000004020019000000000100041100000000020300190000000003040019156812320000040f0000000101000039000000400200043d00000000001204350000055c0020009c0000055c020080410000004001200210000005c6011001c7000015690001042e0000000001000416000000000001004b000010ea0000c13d0000001201000039000000000101041a000000ff001001900000000001000039000000010100c039000000800010043f000005bd01000041000015690001042e0000000001000416000000000001004b000010ea0000c13d0000000503000039000000000203041a000000010420019000000001012002700000007f0110618f0000001f0010008c00000000050000390000000105002039000000000552013f0000000100500190000000980000c13d000000800010043f000000000004004b0000062e0000613d000000000030043f000000000001004b00000aa70000c13d0000002001000039000006310000013d000000440020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000002402100370000000000202043b000800000002001d000005600020009c000010ea0000213d0000000401100370000000000201043b000000000002004b000009180000c13d0000058401000041000000800010043f0000002001000039000000840010043f0000002201000039000000a40010043f000005e401000041000000c40010043f000005e501000041000000e40010043f000005c1010000410000156a00010430000000240020008c000010ea0000413d0000000002000416000000000002004b000010ea0000c13d0000000401100370000000000601043b000005600060009c000010ea0000213d000000000100041a00000560021001970000000005000411000000000052004b000005c00000c13d000000000006004b00000ab60000c13d0000058401000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f000005bf01000041000000c40010043f000005c001000041000000e40010043f000005c1010000410000156a000104300000058401000041000000800010043f0000002001000039000000840010043f000000a40010043f000005f701000041000000c40010043f000005c5010000410000156a0001043000000565020000410000002003000039000000010540008a0000000505500270000005660550009a000000a0063000390000000006060433000000000062041b00000020033000390000000102200039000000000052004b000005ce0000c13d000000000084004b000005df0000813d0000000304800210000000f80440018f000005f90440027f000005f904400167000000a0033000390000000003030433000000000343016f000000000032041b00000001011001bf000000000017041b000000e00700043d000005670070009c000000470000213d0000000506000039000000000106041a000000010010019000000001031002700000007f0330618f0000001f0030008c00000000020000390000000102002039000000000121013f0000000100100190000000980000c13d000000200030008c0000060f0000413d000700000003001d000800000007001d000000000060043f00000000010004140000055c0010009c0000055c01008041000000c00110021000000564011001c70000801002000039156815630000040f0000000100200190000010ea0000613d00000008070000290000001f027000390000000502200270000000200070008c0000000002004019000000000301043b00000007010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b00000005060000390000060f0000813d000000000002041b0000000102200039000000000012004b0000060b0000413d000000200070008c000006170000413d000000000060043f000005f803700198000006910000c13d000000200200003900000568010000410000069d0000013d000000000007004b0000000001000019000006a90000613d0000000301700210000005f90110027f000005f901100167000001000200043d000000000112016f0000000102700210000000000121019f000006a90000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000006290000c13d000009050000013d000005fa01200197000000a00010043f00000040010000390000008001100039000800000001001d000000400010043f0000008002000039156811dd0000040f000000080200002900000000012100490000055c0010009c0000055c0100804100000060011002100000055c0020009c0000055c020080410000004002200210000000000121019f000015690001042e000800000002001d000700000001001d000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a000000080110006c00000a4e0000813d000000400100043d0000006402100039000005eb0300004100000000003204350000004402100039000005ec0300004100000b2d0000013d000005e802000041000000800020043f00000000020004110000056002200197000000840020043f0000000003000414000000080110027000000560021001970000055c0030009c0000055c03008041000000c001300210000005d3011001c71568155e0000040f00000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f000000200640019000000080046001bf000006750000613d0000008007000039000000000801034f000000008908043c0000000007970436000000000047004b000006710000c13d000000000005004b000006820000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000100200190000008ee0000613d0000001f0130003900000571011001970000008001100039000000400010043f000000200030008c000010ea0000413d000000800200043d000000000002004b0000000003000039000000010300c039000000000032004b000005520000613d000010ea0000013d00000568010000410000002002000039000000010430008a0000000504400270000005690440009a000000e0052000390000000005050433000000000051041b00000020022000390000000101100039000000000041004b000006960000c13d000000000073004b000006a70000813d0000000303700210000000f80330018f000005f90330027f000005f903300167000000e0022000390000000002020433000000000232016f000000000021041b000000010170021000000001011001bf000000000016041b0000000601000039000000000201041a0000055f022001970000056a022001c7000000000021041b0000000701000039000000000201041a0000055f022001970000056b022001c7000000000021041b0000056c010000410000000802000039000000000012041b00000009010000390000000302000039000000000021041b0000000c01000039000000000201041a000005fa02200197000000000021041b0000056d01000041000000400200043d000800000002001d00000000001204350000055c0020009c0000055c010000410000000001024019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f0000056e011001c70000056f02000041156815630000040f000000080a00002900000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f000000200640019000000000046a0019000006de0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000006da0000c13d000000000005004b000006eb0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000100200190000008c00000613d0000001f0130003900000571011001970000000002a10019000000000012004b00000000010000390000000101004039000005670020009c000000470000213d0000000100100190000000470000c13d000700000002001d000000400020043f000000200030008c000010ea0000413d00000000010a0433000800000001001d000005600010009c000010ea0000213d0000057201000041000000070200002900000000001204350000055c0020009c0000055c010000410000000001024019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f0000056e011001c70000056f02000041156815630000040f000000070a00002900000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f000000200640019000000000046a00190000071e0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b0000071a0000c13d000000000005004b0000072b0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000000010020019000000b050000613d0000001f0130003900000571011001970000000001a10019000005670010009c000000470000213d000600000001001d000000400010043f000000200030008c000010ea0000413d00000007010000290000000001010433000005600010009c000010ea0000213d00000006030000290000002402300039000000000012043500000573010000410000000000130435000000000100041000000560021001970000000401300039000700000002001d00000000002104350000055c0030009c0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000574011001c700000008020000291568155e0000040f00000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f000000200640019000000006046000290000075f0000613d000000000701034f0000000608000029000000007907043c0000000008980436000000000048004b0000075b0000c13d000000000005004b0000076c0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000000010020019000000d980000613d0000001f0130003900000571011001970000000601100029000005670010009c000000470000213d000000400010043f000000200030008c000010ea0000413d00000006020000290000000002020433000005600020009c000010ea0000213d000000800020043f000005750010009c000000470000213d00000024021000390000055b03000041000000000032043500000044021000390000000003000414000000600400003900000000004204350000057602000041000000000021043500000064021000390000000000020435000000040210003900000000000204350000055c0010009c0000055c0100804100000040011002100000055c0030009c0000055c03008041000000c002300210000000000121019f00000577011001c700008006020000391568155e0000040f000000010020019000000dbc0000613d00000000020000310000000103200367000000000101043b000000000001004b000000000200001900000dbf0000613d000000080110021000000578011001970000001203000039000000000203041a0000057902200197000000000112019f000000000013041b00000000010004110000056001100197000800000001001d000000000010043f0000000b01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a000005fa0220019700000001022001bf000000000021041b0000000701000029000000000010043f0000000b01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a000005fa0220019700000001022001bf000000000021041b0000056f01000041000000000010043f0000000b01000039000000200010043f0000057b01000041000000000201041a000005fa0220019700000001022001bf000000000021041b0000001201000039000000000101041a0000057c02000041000000000020044300000008011002700000056001100197000600000001001d000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d000000400300043d0000002401300039000000010200003900000000002104350000057e0100004100000000001304350000000401300039000000060200002900000000002104350000055c0030009c000500000003001d0000055c010000410000000001034019000000400110021000000000030004140000055c0030009c0000055c03008041000000c003300210000000000113019f00000574011001c71568155e0000040f00000060031002700000055c03300197000000010020019000000e010000613d0000001f0130003900000571021001970000000501200029000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f0000001201000039000000000101041a000000800200043d000500000002001d0000057c02000041000000000020044300000008011002700000056001100197000600000001001d000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d00000005010000290000056001100197000000400400043d0000002402400039000000010300003900000000003204350000057e020000410000000000240435000000040240003900000000001204350000055c0040009c000500000004001d0000055c010000410000000001044019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000121019f00000574011001c700000006020000291568155e0000040f00000060031002700000055c03300197000000010020019000000e590000613d0000001f0130003900000571021001970000000501200029000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f0000001201000039000000000101041a0000057c02000041000000000020044300000008011002700000056001100197000600000001001d000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d000000400300043d0000002401300039000000010200003900000000002104350000057e0100004100000000001304350000000401300039000000070200002900000000002104350000055c0030009c000700000003001d0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000121019f00000574011001c700000006020000291568155e0000040f00000060031002700000055c033001970000000100200190000010000000613d0000001f0130003900000571021001970000000701200029000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f0000001201000039000000000101041a0000057c02000041000000000020044300000008011002700000056001100197000700000001001d000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d000000400300043d0000002401300039000000010200003900000000002104350000057e01000041000000000013043500000004013000390000056f0200004100000000002104350000055c0030009c000600000003001d0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000121019f00000574011001c700000007020000291568155e0000040f00000060031002700000055c033001970000000100200190000011040000613d0000001f0130003900000571021001970000000601200029000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000080000006b000011850000c13d00000044021000390000058303000041000000000032043500000024021000390000001f0300003900000b190000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000008c70000c13d000009050000013d000000080000006b00000a740000c13d0000058401000041000000800010043f0000002001000039000000840010043f0000002201000039000000a40010043f000005f101000041000000c40010043f000005f001000041000000e40010043f000005c1010000410000156a000104300000058401000041000000800010043f0000002001000039000000840010043f0000000e01000039000000a40010043f000005d601000041000000c40010043f000005c5010000410000156a000104300000058401000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f000005ce01000041000000c40010043f000005c5010000410000156a000104300000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000008f50000c13d000009050000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000009010000c13d000000000005004b000009120000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000055c0020009c0000055c020080410000004002200210000000000112019f0000156a00010430000005d90020009c0000091e0000213d0000000301000039000000000101041a000000000121004b00000afe0000813d000005e301000041000000000010043f0000001101000039000000040010043f000005db010000410000156a000104300000001203000039000000000103041a00000579011001970000000802400210000000000121019f000000000013041b0000057c010000410000000000100443000000040040044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d000000400300043d0000002401300039000000010200003900000000002104350000057e0100004100000000001304350000000401300039000000080200002900000000002104350000055c0030009c000700000003001d0000055c010000410000000001034019000000400110021000000000030004140000055c0030009c0000055c03008041000000c003300210000000000113019f00000574011001c71568155e0000040f00000060031002700000055c03300197000000010020019000000d690000613d0000001f0130003900000571021001970000000701200029000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f0000001201000039000000000101041a0000057c02000041000000000020044300000008011002700000056001100197000800000001001d000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d000000400200043d0000057e01000041000700000002001d0000000000120435000005c201000041000000000010044300000000010004120000000400100443000000240000044300000000010004140000055c0010009c0000055c01008041000000c001100210000005c3011001c70000800502000039156815630000040f0000000100200190000011780000613d000000000101043b00000007040000290000002402400039000000010300003900000000003204350000056001100197000000040240003900000000001204350000055c0040009c0000055c010000410000000001044019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000574011001c700000008020000291568155e0000040f00000060031002700000055c03300197000000010020019000000da40000613d0000001f0130003900000571021001970000000701200029000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f0000001201000039000000000101041a0000057c02000041000000000020044300000008011002700000056001100197000800000001001d000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d000000400300043d0000002401300039000000010200003900000000002104350000057e01000041000000000013043500000000010004100000056001100197000000040230003900000000001204350000055c0030009c000700000003001d0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000574011001c700000008020000291568155e0000040f00000060031002700000055c03300197000000010020019000000ddd0000613d0000001f0130003900000571021001970000000701200029000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f0000001201000039000000000101041a000000000200041a000700000002001d0000057c02000041000000000020044300000008011002700000056001100197000800000001001d000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d00000007010000290000056001100197000000400400043d0000002402400039000000010300003900000000003204350000057e020000410000000000240435000000040240003900000000001204350000055c0040009c000700000004001d0000055c010000410000000001044019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000574011001c700000008020000291568155e0000040f00000060031002700000055c03300197000000010020019000000de90000613d0000001f0130003900000571021001970000000701200029000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f0000001201000039000000000101041a0000057c02000041000000000020044300000008011002700000056001100197000800000001001d000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d000000400300043d0000002401300039000000010200003900000000002104350000057e01000041000000000013043500000004013000390000056f0200004100000000002104350000055c0030009c000700000003001d0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000574011001c700000008020000291568155e0000040f00000060031002700000055c03300197000000010020019000000e4d0000613d0000001f0130003900000571021001970000000701000029000004550000013d000600000001001d0000000701000029000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b0000000602000029000000000021041b0000000303000039000000000103041a00000008020000290000000001210049000000000013041b000000400100043d00000000002104350000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000564011001c70000800d020000390000058104000041000000000500041100000000060000190000054e0000013d000700000003001d000000000010043f0000000201000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b0000000802000029000000000020043f000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b0000000702000029000000000021041b000000400100043d00000000002104350000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000564011001c70000800d020000390000000303000039000005c704000041000000000500041100000008060000291568155e0000040f0000000100200190000010ea0000613d000000400100043d00000001020000390000031f0000013d000005680200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b00000aa90000413d0000005f01300039000005f801100197000005cb0010009c000000470000213d000006310000013d0000055f01100197000000000161019f000000000010041b00000000010004140000055c0010009c0000055c01008041000000c001100210000005be011001c70000800d02000039000000030300003900000562040000410000054e0000013d0000000001000411000005600110019800000b240000c13d000000400100043d0000006402100039000005f20300004100000000003204350000004402100039000005f30300004100000000003204350000002402100039000000240300003900000b300000013d000000000101043b000000000200001900000008060000290000000704000029000000000301041a0000056003300197000000000434043600000001011000390000000102200039000000000052004b00000ad30000413d00000000016400490000001f01100039000005f8021001970000000001620019000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f00000020020000390000000002210436000000000306043300000000003204350000004002100039000000000003004b00000af50000613d000000000400001900000020066000390000000005060433000005600550019700000000025204360000000104400039000000000034004b00000aee0000413d00000000021200490000055c0020009c0000055c0200804100000060022002100000055c0010009c0000055c010080410000004001100210000000000112019f000015690001042e00000b470000c13d000005e301000041000000000010043f0000001201000039000000040010043f000005db010000410000156a000104300000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000b0c0000c13d000009050000013d000400060010007400000d340000813d000000400100043d0000004402100039000005f403000041000000000032043500000024021000390000001d030000390000000000320435000005840200004100000000002104350000000402100039000000200300003900000000003204350000055c0010009c0000055c01008041000000400110021000000585011001c70000156a00010430000700000002001d000000080000006b00000d750000c13d000000400100043d0000006402100039000005f00300004100000000003204350000004402100039000005f1030000410000000000320435000000240210003900000022030000390000000000320435000005840200004100000000002104350000000402100039000000200300003900000000003204350000055c0010009c0000055c010080410000004001100210000005ca011001c70000156a000104300000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000b420000c13d000009050000013d000600000001001d000700000002001d00000000010004110000056001100198000002ab0000613d000500000001001d000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a0004000700100074000006520000413d0000000501000029000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b0000000402000029000000000021041b0000000303000039000000000103041a00000007020000290000000001210049000000000013041b000000400100043d00000000002104350000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000564011001c70000800d020000390000058104000041000000000500041100000000060000191568155e0000040f0000000100200190000010ea0000613d0000000501000029000000000010043f0000001301000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d0000000704000029000005f903400167000000000101043b000000000201041a000000000032004b0000091e0000213d0000000002420019000000000021041b0000001201000039000000000201041a000000400400043d000400000004001d000005da0100004100000000001404350000000401400039000000050300002900000000003104350000055c0040009c0000055c010000410000000001044019000000400110021000000000030004140000055c0030009c0000055c03008041000000c003300210000000000113019f000005db011001c700000008022002700000056002200197000300000002001d156815630000040f00000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f0000002006400190000000040a000029000000040460002900000bc00000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b00000bbc0000c13d000000000005004b00000bcd0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000000010020019000000db00000613d0000001f0130003900000571021001970000000001a20019000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000200030008c000010ea0000413d000000070100002900000580011000d10006000600100102000000010200008a000000060120014f00000000020a0433000400000002001d000000000012004b0000091e0000213d0000057c0100004100000000001004430000000301000029000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d00000004020000290000000601200029000000400300043d00000024023000390000000000120435000005dc0100004100000000001304350000000401300039000000050200002900000000002104350000055c0030009c000400000003001d0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000574011001c700000003020000291568155e0000040f00000060031002700000055c03300197000000010020019000000df50000613d0000001f0130003900000571021001970000000401200029000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f0000000601000029000005dd0010009c0000091e0000213d000000060100002900030032001001220004001400100122000000080000006b00000e0d0000c13d0000000501000029000000000010043f0000000d01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a000005600010019800000e0d0000c13d0000001201000039000000000201041a0000000601000039000000000101041a000000400400043d000800000004001d000005da03000041000000000034043500000560031001970000000401400039000200000003001d00000000003104350000055c0040009c0000055c010000410000000001044019000000400110021000000000030004140000055c0030009c0000055c03008041000000c003300210000000000113019f000005db011001c700000008022002700000056002200197000500000002001d156815630000040f00000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f0000002006400190000000080a000029000000080460002900000c5e0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b00000c5a0000c13d000000000005004b00000c6b0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000000010020019000000e890000613d0000001f0130003900000571021001970000000001a20019000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000200030008c000010ea0000413d000000010100008a000000040110014f00000000020a0433000800000002001d000000000012004b0000091e0000213d0000057c0100004100000000001004430000000501000029000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d00000008020000290000000401200029000000400300043d00000024023000390000000000120435000005dc0100004100000000001304350000000401300039000000020200002900000000002104350000055c0030009c000800000003001d0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000574011001c700000005020000291568155e0000040f00000060031002700000055c033001970000000100200190000010f80000613d0000001f0130003900000571011001970000000802100029000000000012004b00000000010000390000000101004039000800000002001d000005670020009c000000470000213d0000000100100190000000470000c13d0000000804000029000000400040043f0000001201000039000000000201041a0000000701000039000000000101041a000005da03000041000000000034043500000560031001970000000401400039000400000003001d00000000003104350000055c0040009c0000055c010000410000000001044019000000400110021000000000030004140000055c0030009c0000055c03008041000000c003300210000000000113019f000005db011001c700000008022002700000056002200197000500000002001d156815630000040f00000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f0000002006400190000000080460002900000cdf0000613d000000000701034f0000000808000029000000007907043c0000000008980436000000000048004b00000cdb0000c13d000000000005004b00000cec0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000100200190000011790000613d0000001f0130003900000571011001970000000801100029000005670010009c000000470000213d000000400010043f000000200030008c000010ea0000413d000000010100008a000000030110014f00000008020000290000000002020433000800000002001d000000000012004b0000091e0000213d0000057c0100004100000000001004430000000501000029000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d00000008020000290000000301200029000000400300043d00000024023000390000000000120435000005dc0100004100000000001304350000000401300039000000040200002900000000002104350000055c0030009c000800000003001d0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000574011001c700000005020000291568155e0000040f00000060031002700000055c03300197000000010020019000000f490000c13d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000d2f0000c13d000009050000013d000000080000006b00000ac50000613d000000050000006b00000b270000613d0000000801000029000000000010043f0000000201000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b0000000502000029000000000020043f000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b0000000402000029000000000021041b000000400100043d00000000002104350000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000564011001c70000800d020000390000000303000039000005c704000041000000080500002900000000060004111568155e0000040f0000000100200190000002240000c13d000010ea0000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000d700000c13d000009050000013d000000000010043f0000000201000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b0000000802000029000000000020043f000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b0000000702000029000000000021041b000000400100043d00000000002104350000055c0010009c0000055c010080410000004001100210000000000200041400000a970000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000d9f0000c13d000009050000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000dab0000c13d000009050000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000db70000c13d000009050000013d00000060021002700000055c02200197000000000301034f0000001f0520018f0000057006200198000000400100043d000000000461001900000dca0000613d000000000703034f0000000008010019000000007907043c0000000008980436000000000048004b00000dc60000c13d000000000005004b00000dd70000613d000000000363034f0000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f000000000034043500000060022002100000055c0010009c0000055c010080410000004001100210000000000121019f0000156a000104300000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000de40000c13d000009050000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000df00000c13d000009050000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000dfc0000c13d000009050000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e080000c13d000009050000013d0000000501000029000000000010043f0000001101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a000000ff0010019000000e300000c13d0000000501000029000000000010043f0000001101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a000005fa0220019700000001022001bf000000000021041b000000080000006b00000e650000c13d0000000501000029000000000010043f0000000d01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a000205600010019c00000ebe0000c13d0000000502000029000000080020006c00000e950000c13d000000400100043d0000004402100039000005e10300004100000000003204350000002402100039000000150300003900000b190000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e540000c13d000009050000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e600000c13d000009050000013d0000000801000029000000000010043f0000001101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a000000ff0010019000000e320000c13d0000000801000029000000000010043f0000001101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a000005fa0220019700000001022001bf000000000021041b00000e320000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e900000c13d000009050000013d0000000501000029000000000010043f0000001101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a000005fa0220019700000001022001bf000000000021041b000000080000006b0000102f0000c13d000000400100043d0000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f000005de011001c70000800d020000390000000303000039000005df04000041000000000500041100000008060000291568155e0000040f0000000100200190000010ea0000613d000000080000006b000200080000002d0000101b0000613d0000000601000029000000140010008c00000f550000813d0000000201000029000000000010043f0000000d01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a000805600010019c000010180000c13d0000001201000039000000000201041a0000000701000039000000000101041a000000400400043d000800000004001d000005da03000041000000000034043500000560031001970000000401400039000400000003001d00000000003104350000055c0040009c0000055c010000410000000001044019000000400110021000000000030004140000055c0030009c0000055c03008041000000c003300210000000000113019f000005db011001c700000008022002700000056002200197000500000002001d156815630000040f00000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f0000002006400190000000080a000029000000080460002900000efc0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b00000ef80000c13d000000000005004b00000f090000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f000000000054043500000001002001900000109b0000613d0000001f0130003900000571021001970000000001a20019000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000200030008c000010ea0000413d000000010100008a000000030110014f00000000020a0433000800000002001d000000000012004b0000091e0000213d0000057c0100004100000000001004430000000501000029000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d00000008020000290000000301200029000000400300043d00000024023000390000000000120435000005dc0100004100000000001304350000000401300039000000040200002900000000002104350000055c0030009c000800000003001d0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000574011001c700000005020000291568155e0000040f00000060031002700000055c033001970000000100200190000011c50000613d0000001f0130003900000571021001970000000801200029000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f0000101b0000013d0000001201000039000000000201041a000000400400043d000800000004001d000005da0100004100000000001404350000000401400039000000020300002900000000003104350000055c0040009c0000055c010000410000000001044019000000400110021000000000030004140000055c0030009c0000055c03008041000000c003300210000000000113019f000005db011001c700000008022002700000056002200197000500000002001d156815630000040f00000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f0000002006400190000000080a000029000000080460002900000f7c0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b00000f780000c13d000000000005004b00000f890000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f000000000054043500000001002001900000100c0000613d0000001f0130003900000571021001970000000001a20019000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000200030008c000010ea0000413d000000010100008a000000040110014f00000000020a0433000100000001001d000800000002001d000000000012004b0000091e0000213d0000057c0100004100000000001004430000000501000029000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d00000008020000290000000401200029000000400300043d00000024023000390000000000120435000005dc0100004100000000001304350000000401300039000000020200002900000000002104350000055c0030009c000800000003001d0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000574011001c700000005020000291568155e0000040f00000060031002700000055c033001970000000100200190000011b90000613d0000001f0130003900000571021001970000000801200029000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f0000000201000029000000000010043f0000001401000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a000000010020006c0000091e0000213d00000004040000290000000002420019000000000021041b000000400100043d00000020021000390000000103000039000000000032043500000000004104350000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f0000057a011001c70000800d020000390000000303000039000005e004000041000000020500002900000000060004111568155e0000040f000000010020019000000ec10000c13d000010ea0000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010070000c13d000009050000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010130000c13d000009050000013d0000000601000029000000320010008c000010a70000813d000000400100043d000000200210003900000006030000290000000000320435000000070200002900000000002104350000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f0000057a011001c70000800d020000390000000203000039000005e20400004100000000050004110000054e0000013d0000000501000029000000000010043f0000000d01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a0000055f022001970000000803000029000000000232019f000000000021041b000000000030043f0000000e01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a000200000002001d000005670020009c000000470000213d00000002020000290000000102200039000000000021041b000000000010043f00000000010004140000055c0010009c0000055c01008041000000c00110021000000564011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b0000000201100029000000000201041a0000055f0220019700000005022001af000000000021041b0000000801000029000000000010043f0000000f01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a000000010220003a0000091e0000613d000000000021041b0000000801000029000000000010043f0000000d01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000101041a000005600110019800000ea90000613d000000000010043f0000001001000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a000000010220003a0000091e0000613d000000000021041b00000ea90000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010a20000c13d000009050000013d0000001201000039000000000201041a000000400400043d000500000004001d000005da0100004100000000001404350000000401400039000000080300002900000000003104350000055c0040009c0000055c010000410000000001044019000000400110021000000000030004140000055c0030009c0000055c03008041000000c003300210000000000113019f000005db011001c700000008022002700000056002200197000400000002001d156815630000040f00000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f0000002006400190000000050a0000290000000504600029000010ce0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000010ca0000c13d000000000005004b000010db0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000100200190000010ec0000613d0000001f0130003900000571021001970000000001a20019000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000200030008c000011100000813d00000000010000190000156a000104300000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010f30000c13d000009050000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010ff0000c13d000009050000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000110b0000c13d000009050000013d000000010100008a000000030110014f00000000020a0433000200000001001d000500000002001d000000000012004b0000091e0000213d0000057c0100004100000000001004430000000401000029000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000011780000613d000000000101043b000000000001004b000010ea0000613d00000005020000290000000301200029000000400300043d00000024023000390000000000120435000005dc0100004100000000001304350000000401300039000000080200002900000000002104350000055c0030009c000500000003001d0000055c010000410000000001034019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000574011001c700000004020000291568155e0000040f00000060031002700000055c033001970000000100200190000011d10000613d0000001f0130003900000571021001970000000501200029000000000021004b00000000020000390000000102004039000005670010009c000000470000213d0000000100200190000000470000c13d000000400010043f0000000801000029000000000010043f0000001501000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a000000020020006c0000091e0000213d00000003040000290000000002420019000000000021041b000000400100043d00000020021000390000000203000039000000000032043500000000004104350000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f0000057a011001c70000800d020000390000000303000039000005e004000041000000080500002900000000060004111568155e0000040f00000001002001900000101b0000c13d000010ea0000013d000000000001042f0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011800000c13d000009050000013d0000000301000039000000000101041a0000057f0110009c0000091e0000813d0000000302000039000000000012041b0000000801000029000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000010ea0000613d000000000101043b000000000201041a0000057f0220009a000000000021041b0000058001000041000000400200043d00000000001204350000055c0020009c0000055c02008041000000400120021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000564011001c70000800d0200003900000003030000390000058104000041000000000500001900000000060004111568155e0000040f0000000100200190000010ea0000613d000000800100043d0000014000000443000001600010044300000020010000390000010000100443000000010100003900000120001004430000058201000041000015690001042e0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011c00000c13d000009050000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011cc0000c13d000009050000013d0000001f0530018f0000057006300198000000400200043d0000000004620019000009050000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011d80000c13d000009050000013d0000002003000039000000000431043600000000320204340000000000240435000000000002004b0000004001100039000011ef0000613d000000000400001900000000054100190000000006430019000000000606043300000000006504350000002004400039000000000024004b000011e50000413d000011ef0000a13d000000000321001900000000000304350000001f02200039000005f8022001970000000001210019000000000001042d000005fb0010009c000011ff0000213d000000430010008c000011ff0000a13d00000001020003670000000401200370000000000101043b000005600010009c000011ff0000213d0000002402200370000000000202043b000000000001042d00000000010000190000156a000104300000056001100197000000000010043f0000000201000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000012100000613d000000000101043b000000000001042d00000000010000190000156a000104300000056002200197000000000020043f000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000012200000613d000000000101043b000000000001042d00000000010000190000156a00010430000005fb0010009c000012300000213d000000430010008c000012300000a13d00000001020003670000000401200370000000000101043b000005600010009c000012300000213d0000002402200370000000000202043b000005600020009c000012300000213d000000000001042d00000000010000190000156a00010430000c000000000002000800000003001d000900000002001d000700000001001d0000056001100197000a00000001001d000000000010043f0000000b01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d000000000101043b000000000101041a000000ff001001900000127f0000c13d00000009010000290000056001100197000600000001001d000000000010043f0000000b01000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d000000000101043b000000000101041a000000ff001001900000127f0000c13d000005c201000041000000000010044300000000010004120000000400100443000000240000044300000000010004140000055c0010009c0000055c01008041000000c001100210000005c3011001c70000800502000039156815630000040f0000000100200190000014e70000613d000000000101043b0000056002100197000000060020006b000012720000c13d00000000010004150000000c0110008a0000000501100210000c00000000003d000012790000013d00000000010004150000000b0110008a00000005011002100000000a0020006b000b00000000003d000b00010000c03d0000127f0000c13d0000000c02000039000000000202041a0000000501100270000000ff01200195000000ff00200190000012cb0000613d0000000a0000006b000014d30000613d0000000901000029000605600010019c000014bf0000613d0000000a01000029000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d0000000103000039000000000101043b000000000101041a0005000800100074000014c90000413d0000000a01000029000000000010043f000000200030043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d000000000101043b0000000502000029000000000021041b0000000601000029000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d000000000101043b000000000201041a00000008030000290000000002320019000000000021041b000000400100043d00000000003104350000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000564011001c70000800d0200003900000003030000390000058104000041000000070500002900000009060000291568155e0000040f0000000100200190000014bd0000613d000000000001042d0000000701000039000000000101041a000005cd00100198000014ee0000613d0000000a01000039000000000101041a000500000001001d000005fc01000041000000000010044300000000010004140000055c0010009c0000055c01008041000000c001100210000005fd011001c70000800b02000039156815630000040f0000000100200190000014e70000613d000000000101043b000000050110006c000014e80000413d0000000902000039000000000202041a000000000021004b000014280000a13d0000000001000410000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d000000000101043b000000000101041a000000000001004b000014280000613d000005c201000041000000000010044300000000010004120000000400100443000000240000044300000000010004140000055c0010009c0000055c01008041000000c001100210000005c3011001c70000800502000039156815630000040f0000000100200190000014e70000613d000000000101043b000000090110014f0000056000100198000014280000c13d00000000010004100000056001100197000400000001001d000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d0000000c04000039000000000204041a000005fa0220019700000001022001bf0000000803000039000000000303041a000300000003001d000000000101043b000000000101041a000500000001001d000000000024041b000005fc01000041000000000010044300000000010004140000055c0010009c0000055c01008041000000c001100210000005fd011001c70000800b02000039156815630000040f0000000504000029000000030040006c0000000304008029000500000004001d0000000100200190000014e70000613d000000000101043b000100000001001d0000000a02000039000000000012041b000000400200043d000005fe0020009c000014ff0000813d0000006001200039000000400010043f0000000203000039000300000002001d0000000002320436000000000300003100000001033003670000000004020019000000003503043c0000000004540436000000000014004b0000133f0000c13d000000040100002900000000001204350000057201000041000000400200043d000200000002001d00000000001204350000055c0020009c0000055c010000410000000001024019000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f0000056e011001c70000056f02000041156815630000040f000000020a00002900000060031002700000055c03300197000000200030008c000000200400003900000000040340190000001f0540018f000000200640019000000000046a0019000013650000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000013610000c13d000000000005004b000013720000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000100200190000015050000613d0000001f0130003900000571021001970000000001a20019000000000021004b00000000020000390000000102004039000005670010009c000014ff0000213d0000000100200190000014ff0000c13d000000400010043f000000200030008c000014bd0000413d00000000010a0433000005600010009c000014bd0000213d00000003030000290000000002030433000000010020008c000015110000a13d000000400230003900000000001204350000000401000029000000000001004b000015170000613d000000000010043f0000000201000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d000000000101043b0000056f02000041000000000020043f000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d000000000101043b0000000502000029000000000021041b000000400100043d00000000002104350000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000564011001c70000800d020000390000000303000039000005c70400004100000000050004100000056f060000411568155e0000040f0000000100200190000014bd0000613d0000001201000039000000000101041a000400000001001d0000057c0100004100000000001004430000056f01000041000000040010044300000000010004140000055c0010009c0000055c01008041000000c0011002100000057d011001c70000800202000039156815630000040f0000000100200190000014e70000613d000000000101043b000000000001004b000014bd0000613d000000040100002900000008011002700000056001100197000000400800043d0000004402800039000000a0030000390000000000320435000005ff0200004100000000002804350000000402800039000000050300002900000000003204350000002402800039000000000002043500000003070000290000000003070433000000a4028000390000000000320435000000c402800039000000000003004b000013ee0000613d0000000004000019000000010600002900000020077000390000000005070433000005600550019700000000025204360000000104400039000000000034004b000013e60000413d000013ef0000013d0000000106000029000000840380003900000000006304350000006403800039000000000013043500000000018200490000055c0010009c0000055c0100804100000060011002100000055c0080009c0000055c0200004100000000020840190000004002200210000000000121019f00000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f0000056f02000041000400000008001d1568155e0000040f00000060031002700000055c033001970000000100200190000015210000613d0000001f0130003900000571021001970000000401200029000000000021004b00000000020000390000000102004039000005670010009c000014ff0000213d0000000100200190000014ff0000c13d000000400010043f000000050200002900000000002104350000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000564011001c70000800d02000039000000010300003900000600040000411568155e0000040f0000000100200190000014bd0000613d0000000c02000039000000000102041a000005fa01100197000000000012041b0000000801000029000005dd0010009c000014e80000213d0000000801000029000000140010008c000014310000813d0000000a0000006b000014810000c13d000014d30000013d0000000a0000006b000014d30000613d0000000001000410000405600010019c000014bf0000613d0000000a01000029000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d000000010300003900000008020000290005001400200122000000000101043b000000000101041a000000050110006c000300000001001d000014c90000413d0000000a01000029000000000010043f000000200030043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d000000000101043b0000000302000029000000000021041b0000000401000029000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d000000000101043b000000000201041a00000005030000290000000002320019000000000021041b000000400100043d00000000003104350000055c0010009c0000055c01008041000000400110021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000564011001c70000800d0200003900000003030000390000058104000041000000070500002900000000060004101568155e0000040f0000000100200190000014bd0000613d00000005020000290008000800200071000000060000006b000014bf0000613d0000000a01000029000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d0000000103000039000000000101043b000000000101041a0005000800100074000014c90000413d0000000a01000029000000000010043f000000200030043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d000000000101043b0000000502000029000000000021041b0000000601000029000000000010043f0000000101000039000000200010043f00000000010004140000055c0010009c0000055c01008041000000c0011002100000057a011001c70000801002000039156815630000040f0000000100200190000014bd0000613d000000000101043b000000000201041a00000008030000290000000002320019000000000021041b000000400100043d00000000003104350000055c0010009c0000055c0100804100000040011002100000000002000414000012bd0000013d00000000010000190000156a00010430000000400100043d00000064021000390000060303000041000000000032043500000044021000390000060403000041000000000032043500000024021000390000002303000039000014dc0000013d000000400100043d00000064021000390000060103000041000000000032043500000044021000390000060203000041000000000032043500000024021000390000002603000039000014dc0000013d000000400100043d000000640210003900000605030000410000000000320435000000440210003900000606030000410000000000320435000000240210003900000025030000390000000000320435000005840200004100000000002104350000000402100039000000200300003900000000003204350000055c0010009c0000055c010080410000004001100210000005ca011001c70000156a00010430000000000001042f000005e301000041000000000010043f0000001101000039000000040010043f000005db010000410000156a00010430000000400100043d000000440210003900000607030000410000000000320435000000240210003900000013030000390000000000320435000005840200004100000000002104350000000402100039000000200300003900000000003204350000055c0010009c0000055c01008041000000400110021000000585011001c70000156a00010430000005e301000041000000000010043f0000004101000039000000040010043f000005db010000410000156a000104300000001f0530018f0000057006300198000000400200043d00000000046200190000152c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000150c0000c13d0000152c0000013d000005e301000041000000000010043f0000003201000039000000040010043f000005db010000410000156a00010430000000400100043d0000006402100039000005f20300004100000000003204350000004402100039000005f303000041000000000032043500000024021000390000002403000039000014dc0000013d0000001f0530018f0000057006300198000000400200043d00000000046200190000152c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015280000c13d000000000005004b000015390000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000055c0020009c0000055c020080410000004002200210000000000112019f0000156a00010430000000000001042f00000000050100190000000000200443000000050030008c0000154e0000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000031004b000015460000413d0000055c0030009c0000055c03008041000000600130021000000000020004140000055c0020009c0000055c02008041000000c002200210000000000112019f00000608011001c70000000002050019156815630000040f00000001002001900000155d0000613d000000000101043b000000000001042d000000000001042f00001561002104210000000102000039000000000001042d0000000002000019000000000001042d00001566002104230000000102000039000000000001042d0000000002000019000000000001042d0000156800000432000015690001042e0000156a000104300000000000000000010003e3f97642b468a8398c23d8e46805f449019588c02e0263abb344d0038700000000000000000000000000000000000000000000000000000000ffffffff4275726e5661756c7420436173680000000000000000000000000000000000004255524e00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000012000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000000000000000000000000000000000000000000001000000000000000002000000000000000000000000000000000000200000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b75ca53043ea007e5c65182cbb028f60d7179ff4b55739a3949b401801c942e64000000000000000000000000000000000000000000000000ffffffffffffffff036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0fc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c24f0000000000000000000000000e5f79df48505d56331b4827c1e5c98b8efd12b5000000000000000000000000ef37ab0743f37a32e279b26546d31d9989bee014000000000000000000000000000000000000000000000a968163f0a57b400000c45a0155000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000ad1eca41e6f772be3cb5a48a6141f9bcc1af9f7c00000000000000000000000000000000000000000000000000000000ffffffe000000000000000000000000000000000000000000000000000000001ffffffe0ad5c464800000000000000000000000000000000000000000000000000000000c9c65396000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7b9c4d535bdea7cd8a978f128b93471df48c7dbab89d703809115bdc118c235bfd02000000000000000000000000000000000000840000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff0000000000000000000000000000000000000000ff02000000000000000000000000000000000000400000000000000000000000003f5c0ef99e907238d8a3a435c962779e5599c3617fa131271bcb80c60eccb0b81806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000000483f7a000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffad482d2337f32d1c00000000000000000000000000000000000000000000000052b7d2dcc80cd2e4000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000020000000000000000000000000000008000000100000000000000000045524332303a206d696e7420746f20746865207a65726f20616464726573730008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000070a0823000000000000000000000000000000000000000000000000000000000a7b2cf5700000000000000000000000000000000000000000000000000000000d2c8e0e400000000000000000000000000000000000000000000000000000000e7563f3e00000000000000000000000000000000000000000000000000000000e7563f3f00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000fbfa77cf00000000000000000000000000000000000000000000000000000000d2c8e0e500000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000a8d326a500000000000000000000000000000000000000000000000000000000a8d326a600000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000b879afb100000000000000000000000000000000000000000000000000000000a7b2cf5800000000000000000000000000000000000000000000000000000000a8aa1b31000000000000000000000000000000000000000000000000000000008a8c523b0000000000000000000000000000000000000000000000000000000092929a080000000000000000000000000000000000000000000000000000000092929a090000000000000000000000000000000000000000000000000000000095d89b4100000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000008a8c523c000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000007845ef9b000000000000000000000000000000000000000000000000000000007845ef9c000000000000000000000000000000000000000000000000000000007b510fe8000000000000000000000000000000000000000000000000000000007fbae72f0000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000039509350000000000000000000000000000000000000000000000000000000004e71d92c000000000000000000000000000000000000000000000000000000005695fa57000000000000000000000000000000000000000000000000000000005695fa58000000000000000000000000000000000000000000000000000000005c5b21e900000000000000000000000000000000000000000000000000000000626de238000000000000000000000000000000000000000000000000000000004e71d92d000000000000000000000000000000000000000000000000000000004fbee1930000000000000000000000000000000000000000000000000000000042966c670000000000000000000000000000000000000000000000000000000042966c68000000000000000000000000000000000000000000000000000000004a7a4a57000000000000000000000000000000000000000000000000000000004a9fefc7000000000000000000000000000000000000000000000000000000003950935100000000000000000000000000000000000000000000000000000000402914f50000000000000000000000000000000000000000000000000000000020797cc0000000000000000000000000000000000000000000000000000000002746198a000000000000000000000000000000000000000000000000000000002746198b000000000000000000000000000000000000000000000000000000002866ed2100000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000020797cc10000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000095ea7b200000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000016697fc50000000000000000000000000000000000000000000000000000000018160ddd000000000000000000000000000000000000000000000000000000000483f7a00000000000000000000000000000000000000000000000000000000006fdde03000000000000000000000000000000000000002000000080000000000000000002000000000000000000000000000000000000000000008000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e02000002000000000000000000000000000000440000000000000000000000005a65726f20616464726573730000000000000000000000000000000000000000000000000000000000000000000000000000006400000080000000000000000000000000000000000000000000000000000000200000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f770000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f00000000000000000000000000000000000000000000008000000000000000000000000000000000000000ff0000000000000000000000000000000000000000656e61626c656421000000000000000000000000000000000000000000000000ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff00000000000000000000000100000000000000000000000000000000000000001d97b7cdf6b6f3405cbe398b69512e5419a0ce78232b6e9c6ffbf1466774bd8dfbcbc0f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000800000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000001a784379d99db41ffffff496e76616c696420616d6f756e740000000000000000000000000000000000000200000000000000000000000000000000000020000000800000000000000000db3d91c4b4701c2ec5396e1f2dd1f98c293c840369dce3906a6a0e899e84c794000000000000000000000318481895d962776a54d92bf80caa0674f371b8c19570a08231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000e30443bc00000000000000000000000000000000000000000000000000000000333333333333333333333333333333333333333333333333333333333333333302000000000000000000000000000000000000000000000000000000000000009d05414fb79fac216c15606de5cc06664e91a254e4d5f57664d5f1beaf7fb7efa2e6eb9e4c50c302527417384d3c74257d40953af74a4f5ea9080290be245bb043616e6e6f7420726566657220796f757273656c660000000000000000000000b8f877bb4b334c0e589d0faea5c07557a52a826bf674dd2614f6bf1769b740a44e487b71000000000000000000000000000000000000000000000000000000004275726e20616d6f756e74206d7573742062652067726561746572207468616e203000000000000000000000000000000000000000000000000000000000000085a6b3ae000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000800000000000000000807ab4f700000000000000000000000000000000000000000000000000000000436c61696d206e6f7420656e61626c6564000000000000000000000000000000eeead833ef3bd72b908fa0c2d1c47eabe4acbd6f2342eeddf75acda1467589cb636500000000000000000000000000000000000000000000000000000000000045524332303a206275726e20616d6f756e7420657863656564732062616c616e45524332303a206275726e2066726f6d20746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000000000a8b9d24000000000000000000000000000000000000000000000000000000000737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e6365000000317602e2000000000000000000000000000000000000000000000000000000003499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d955391320200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa0791ac94700000000000000000000000000000000000000000000000000000000d851aeb8e2074b285cc12da5e2fbf79e642e38f62ef8e59590790c157491ee05616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f20616454726164696e67206973206e6f74206f70656e0000000000000000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bb05dc051e1844643c79089a9e591f91a14eb787dd461ca6c557de2a56a5eae6

[ Download: CSV Export  ]
[ Download: CSV Export  ]

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