Contract 0xD99b4BB049a6Dd490901CDfa33F15C4fAc097EF0 1

Contract Overview

Balance:
0 Ether

Token:
Txn Hash
Method
Block
From
To
Value
0x58df1a4e1727559a5edb77498e691b5dd56912e93a0c2d137c8047659c1f44f5Approve114923702022-10-04 9:06:2954 days 9 hrs ago0xed796aae6e8d4b34a7258365a3370b7d09e0dffd IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00011243 2.425
0xd17d732b8b9c3198e01ac6b6f11126dd0bf3a8a34c9912eb717ad634176e8759Approve114698892022-09-30 10:03:3158 days 8 hrs ago0xe142f2dfc98b8c3f19ef81e8773a7132a08be8c2 IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.0001492 3.21892946
0xd4d0ea4645bd4a3222cb7c31489736d6cc1ed8119bb152ea722dfde95a5f10e7Transfer114465432022-09-26 7:58:3462 days 10 hrs ago0x91eafbb337c4e485cbff5bf5f07086556fcf069e IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00024266 2.425
0x8e7c25762d399234433086ccad0c3fd60de8aac9bb2753560e166eefddae529aApprove114252232022-09-22 14:34:1466 days 3 hrs ago0x38843978afb8345f397d28dc5bbebe83c3b0835b IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00011587 2.50000001
0x02daea04bd5b19904e4716d82212d91dfdb33cab3810ec0e2cf911fa6d0a590fApprove114251202022-09-22 14:08:1866 days 4 hrs ago0xe142f2dfc98b8c3f19ef81e8773a7132a08be8c2 IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00011587 2.5
0xb31d20ffeb2916530d40b1b5b0f84aaa3e539070a74ea984962682126709b800Approve114248472022-09-22 12:59:3166 days 5 hrs ago0xb6cd752d42921e9d0d17e4fe1fd75fbeac72685b IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00011587 2.5
0xd2d026a003a5ff167eb560bbbbbd0e59c09aa1658b3242ac748a038236100a97Approve114158832022-09-20 23:19:3867 days 19 hrs ago0xb6cd752d42921e9d0d17e4fe1fd75fbeac72685b IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00011587 2.5
0x1fdced793cf0f187494aad7203235e3629113404bbfc51b3b87c10d3edc51623Approve114150132022-09-20 19:40:2667 days 22 hrs ago0xda8f2067fd49757eb77818ab96d70b37c61bc435 IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00011587 2.5
0x9bcd5bd5bddcb2183fe88c801355d725041bf8571eff1b62dd6427d17ee7f9b7Approve114124012022-09-20 8:42:1968 days 9 hrs ago0xb6cd752d42921e9d0d17e4fe1fd75fbeac72685b IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00011587 2.5
0xc9a547cb7e2a9758ffd12e3ed45e276da53c681ea4cc5ba2c4516aedc0741907Approve114123222022-09-20 8:22:2368 days 10 hrs ago0xe142f2dfc98b8c3f19ef81e8773a7132a08be8c2 IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00011587 2.5
0x996efce75392a09270c5c541e17ae9d9d0dc5ccf694448d2ddd12683796957fcApprove114060842022-09-19 6:14:1569 days 12 hrs ago0x5d05fe39e624e3595296fe9b53bf627658335362 IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00011243 2.425
0x71fccf8137d50fe47791b82feefbca07e9d8893c6167673fa1978b2630317479Approve114034802022-09-18 19:19:0469 days 23 hrs ago0xd0c7de5acec31a12549e957f47089d3d374f609e IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00006609 2.5
0x38d0d7f7db91e307b56b8f9f93a82924c0d9d50a27de36e2e544c736861afcddApprove114034792022-09-18 19:18:4969 days 23 hrs ago0xf58e1aa343eb66e64c8c4484a4ecf1cd79c32f18 IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00011584 2.5
0x982884c8bd8f462d31f27c6932f6f4e12b3751a60f9fced6a9ef27c260ee0731Approve114021862022-09-18 13:53:3770 days 4 hrs ago0xd0c7de5acec31a12549e957f47089d3d374f609e IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00006612 2.5
0xbc549d891926ee1d7d8675f5fbd03e373e080554c9efc733806a9016ecf27e69Approve114021862022-09-18 13:53:3770 days 4 hrs ago0xd0c7de5acec31a12549e957f47089d3d374f609e IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00006612 2.5
0x6416e7cedb3e897a800dd5094e9425d8368fc20a9b8a39b630c585aaa09500dcApprove114021772022-09-18 13:51:2270 days 4 hrs ago0xd0c7de5acec31a12549e957f47089d3d374f609e IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00006612 2.5
0x0cd3512796158dbcaf560a862e556ddb98e684b74551de187f463441a18b083dApprove114021742022-09-18 13:50:3770 days 4 hrs ago0xd0c7de5acec31a12549e957f47089d3d374f609e IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00006612 2.5
0x2d60786aaa5f87d19c68f09ee8cca54ce5d56662dec03c1773acadd6a00c00f3Approve114021672022-09-18 13:48:5270 days 4 hrs ago0xd0c7de5acec31a12549e957f47089d3d374f609e IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00006612 2.5
0x88d43f466a4dd021883c38735989be6ae4930ed5be2294899f8a8b3cc49ae0adApprove114021582022-09-18 13:46:3770 days 4 hrs ago0xd0c7de5acec31a12549e957f47089d3d374f609e IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00006612 2.5
0x7aa67da0f5856b01a4162f5cc3e8c7ae513ff9673064cf098daa75653d35b3ceApprove114021482022-09-18 13:44:0470 days 4 hrs ago0xd0c7de5acec31a12549e957f47089d3d374f609e IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00006612 2.5
0x15d34b02da6421ba3f487617a9050fc3903032a2658ffd149d7daa5389d35bbfApprove114021252022-09-18 13:38:1870 days 4 hrs ago0xd0c7de5acec31a12549e957f47089d3d374f609e IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00006612 2.5
0x249ebbdb511d99243e3c6447faabaee53e2f3b04b5c925c988710da82d5b191aApprove114020222022-09-18 13:12:2970 days 5 hrs ago0xd0c7de5acec31a12549e957f47089d3d374f609e IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00011587 2.5
0x0b81bd78cdd638f5287d9f02ce8015681172d4509793145fec5507deb0ecf66fApprove114019162022-09-18 12:45:4270 days 5 hrs ago0xd0c7de5acec31a12549e957f47089d3d374f609e IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00011584 2.5
0x47fb046bbc0c0ceab81ba42ccc1b9b6fcba0added9331f687c8938e5bff3ede7Approve113964432022-09-17 13:50:1971 days 4 hrs ago0xcf70e93b75bc5d94652445282dec2ddab223aac1 IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00006609 2.5
0x94769e2b5f296ccc257522ab75d6100b91e4221e246c83f7794ae392b56efc35Approve113964102022-09-17 13:42:0071 days 4 hrs ago0xcf70e93b75bc5d94652445282dec2ddab223aac1 IN  0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether0.00006609 2.5
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x1e8383d0316cb729038426d7c85a6baff58cc990cf1dca13e2ca4a4d87cdd640114880362022-10-03 14:26:5055 days 3 hrs ago 0x9467bc062729d033d0f0c138981e462ef715ac3b 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x1e8383d0316cb729038426d7c85a6baff58cc990cf1dca13e2ca4a4d87cdd640114880362022-10-03 14:26:5055 days 3 hrs ago 0x9467bc062729d033d0f0c138981e462ef715ac3b 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x82157025ff9bf8d5a5fb258f28b386ba4ee6088c60f4b5d1867a7da62f9c494c114880352022-10-03 14:26:3555 days 3 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x82157025ff9bf8d5a5fb258f28b386ba4ee6088c60f4b5d1867a7da62f9c494c114880352022-10-03 14:26:3555 days 3 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x82157025ff9bf8d5a5fb258f28b386ba4ee6088c60f4b5d1867a7da62f9c494c114880352022-10-03 14:26:3555 days 3 hrs ago 0x9467bc062729d033d0f0c138981e462ef715ac3b 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x82157025ff9bf8d5a5fb258f28b386ba4ee6088c60f4b5d1867a7da62f9c494c114880352022-10-03 14:26:3555 days 3 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x82157025ff9bf8d5a5fb258f28b386ba4ee6088c60f4b5d1867a7da62f9c494c114880352022-10-03 14:26:3555 days 3 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x82157025ff9bf8d5a5fb258f28b386ba4ee6088c60f4b5d1867a7da62f9c494c114880352022-10-03 14:26:3555 days 3 hrs ago 0x9467bc062729d033d0f0c138981e462ef715ac3b 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x2d397560b2581df0472de40db36eced628cfc8a9cd0c62990a5c34549f6cf159114879072022-10-03 13:54:2555 days 4 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x373cc9d9914d82633e0221f375a7ba7de59173499fb248e6a11d8991b7828936114879012022-10-03 13:52:5255 days 4 hrs ago 0x9467bc062729d033d0f0c138981e462ef715ac3b 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0xf49a8620bc65d3ee8b362943eb81bd4576932c3965ac448aa1c06ee03ba2d4be114877522022-10-03 13:15:3055 days 5 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0xf49a8620bc65d3ee8b362943eb81bd4576932c3965ac448aa1c06ee03ba2d4be114877522022-10-03 13:15:3055 days 5 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0xf49a8620bc65d3ee8b362943eb81bd4576932c3965ac448aa1c06ee03ba2d4be114877522022-10-03 13:15:3055 days 5 hrs ago 0x9467bc062729d033d0f0c138981e462ef715ac3b 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0xb26e993caca5e7d8347fb8cdf1553c6f0112ea419d570d6384d0dc056bca3750114877362022-10-03 13:11:2655 days 5 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x459416636dd207e5df6f870b9417a1c1b644bac270f9750ddd9548d7e5441b1b114875682022-10-03 12:29:1055 days 5 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0xe10b55113877428baa91e328007dd84bf77dfab182aa35a4609deb12d0e8c671114874982022-10-03 12:11:3555 days 6 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0xe10b55113877428baa91e328007dd84bf77dfab182aa35a4609deb12d0e8c671114874982022-10-03 12:11:3555 days 6 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0xe10b55113877428baa91e328007dd84bf77dfab182aa35a4609deb12d0e8c671114874982022-10-03 12:11:3555 days 6 hrs ago 0x9467bc062729d033d0f0c138981e462ef715ac3b 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0xe10b55113877428baa91e328007dd84bf77dfab182aa35a4609deb12d0e8c671114874982022-10-03 12:11:3555 days 6 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0xe10b55113877428baa91e328007dd84bf77dfab182aa35a4609deb12d0e8c671114874982022-10-03 12:11:3555 days 6 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0xe10b55113877428baa91e328007dd84bf77dfab182aa35a4609deb12d0e8c671114874982022-10-03 12:11:3555 days 6 hrs ago 0x9467bc062729d033d0f0c138981e462ef715ac3b 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x4332f0a014519e3aa83b32991684b9188fc97a423b9dbf3406f133b0db157373114874722022-10-03 12:05:0255 days 6 hrs ago 0x9467bc062729d033d0f0c138981e462ef715ac3b 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x4332f0a014519e3aa83b32991684b9188fc97a423b9dbf3406f133b0db157373114874722022-10-03 12:05:0255 days 6 hrs ago 0x9467bc062729d033d0f0c138981e462ef715ac3b 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0xce17886bf84f52bba284a680478985e2854c0f00cee671f0b7a283e437d737b9114874702022-10-03 12:04:3255 days 6 hrs ago 0x5309e16fc58dc900a08d92be6559758d692f39bb 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
0x6fc9499829324029175f720ccde8a213fa3f9577156152e5f1cfedeb081dd5ab114874112022-10-03 11:49:4555 days 6 hrs ago 0x9467bc062729d033d0f0c138981e462ef715ac3b 0xd99b4bb049a6dd490901cdfa33f15c4fac097ef00 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Doxa

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-24
*/

/**
 *Submitted for verification at Etherscan.io on 2022-02-17
*/

//SPDX-License-Identifier: UNLICENSED
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;
    }
}


/**
 * @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 Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing 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);
    }
}

interface IERC20 {
    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `sender` to `recipient` 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 sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @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);
}

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

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

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

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

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}



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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

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

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

abstract  contract Pausable is Ownable {
    event Pause(bool isPause);

    bool public paused = false;

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() public onlyOwner whenNotPaused {
        paused = true;
        emit Pause(paused);
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyOwner whenPaused {
        paused = false;
        emit Pause(paused);
    }
}


contract Doxa is IERC20,Pausable{
    
    mapping (address => uint256) public _rOwned;
    mapping (address => uint256) public _tOwned;

    //Token related variables
    uint256 public maxTxLimit = 100000000* 10 ** 18;
    string _name = 'Doxazo';
    string _symbol = 'Azo';
    uint8 _decimals = 18;

    mapping(address => mapping(address => uint256)) private _allowances;
    
    mapping (address => bool) private _isExcluded;
    address[] private _excluded;

    //Variables related to fees
    uint256 public liquidityThreshold = 10000000 * 10 ** 18;
    mapping (address => bool) private _isExcludedFromFee;

    
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 200000000000  * 10 ** 18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
   // mapping (address => uint) private _isTimeLimit;
    
    mapping (address => bool) private _excludeFromMaxTxLimit;
    mapping (address => bool) private _excludeFromTimeLimit;

    uint256 public _burnFee = 1;
    uint private previousBurnFee = _burnFee;
    uint256 public _liquidityFee = 4;
    uint private previousLiquidityFee = _liquidityFee;
    uint256 public _rewardFee = 5;
    uint private previousRewardFee = _rewardFee;

    
    struct Fees {
        uint burnFee;
        uint liquidityFee;
        uint rewardFee;
    }
    
    //Variables and events for swapping
    IUniswapV2Router02 public immutable uniswapV2Router;
     address public immutable uniswapV2Pair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public _Burn=true;
    
    event BurnUp(bool enabled);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    event Received(address sender, uint amount);
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    struct Tvalues {
        uint tTransferAmount;
        uint tReward;
        uint tBurn;
        uint tLiquidity;
    }
    
    struct Rvalues {
        uint rAmount;
        uint rTransferAmount;
        uint rReward;
        uint rBurn;
        uint rLiquidity;
    }

    event LogLockBoxDeposit(address sender, uint amount, uint releaseTime);   
    event LogLockBoxWithdrawal(address receiver, uint amount);

    uint8 public timeLimit = 1;
    mapping (address => uint) private _timeLock;
    mapping (address => bool) private _isToLock;

   constructor(
      address _whitelisted1,
      address _whitelisted2
 ) {
        _rOwned[_msgSender()] = _rTotal;
        
          IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
         // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;
        
        _isExcludedFromFee[msg.sender] = true;
        _excludeFromMaxTxLimit[msg.sender] = true;
        _excludeFromTimeLimit[msg.sender] = true;
        
        _isExcludedFromFee[address(this)] = true;
        _excludeFromTimeLimit[address(this)] = true;

        _isToLock[_whitelisted1] = true;
        _isToLock[_whitelisted2] = true;
    
        
        emit Transfer(address(0), msg.sender, _tTotal);
    }  

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }


    function transferFrom(address sender, address recipient, uint256 amount) public virtual override whenNotPaused returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }
    
    
    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        ( , Rvalues memory rValues) = _getValues(tAmount);
        uint rAmount = rValues.rAmount;
        _rOwned[sender] = _rOwned[sender]-(rAmount);
        _rTotal = _rTotal-(rAmount);
        _tFeeTotal = _tFeeTotal+(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            ( , Rvalues memory rValues) = _getValues(tAmount);
            return rValues.rAmount;
        } else {
            ( , Rvalues memory rValues) = _getValues(tAmount);
            return rValues.rTransferAmount;
        }
    }
    
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal-(rFee);
        _tFeeTotal = _tFeeTotal+(tFee);
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount/(currentRate);
    }
    
    function removeAllFee() private {
        if(_burnFee == 0  && _liquidityFee == 0 && _rewardFee == 0 ) return;
        
        previousBurnFee = _burnFee;
        previousRewardFee = _rewardFee;
        previousLiquidityFee = _liquidityFee;
        
        _burnFee = 0;
        _liquidityFee = 0;
        _rewardFee = 0;
    }
    
    function restoreAllFee() private {
        _burnFee = previousBurnFee;
        _liquidityFee = previousLiquidityFee;
        _rewardFee = previousRewardFee;
    }
    
    function excludeFromReward(address account) public onlyOwner() {
        // require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude Uniswap router.');
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }
    

    receive() external payable {
        emit Received(msg.sender, msg.value);
    }


    function _transfer(address sender, address recipient, uint256 amount) internal virtual whenNotPaused {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount should be greater than zero");
        
        // is the token balance of this contract address over the min number of
        // tokens that we need to initiate a swap + liquidity lock?
        // also, don't get caught in a circular liquidity event.
        // also, don't swap & liquify if sender is uniswap pair.
        uint256 contractTokenBalance = balanceOf(address(this));
        
        if(contractTokenBalance >= maxTxLimit)
        {
            contractTokenBalance = maxTxLimit;
        }
        
        bool overMinTokenBalance = contractTokenBalance >= liquidityThreshold;
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            //sender != uniswapV2Pair &&
            swapAndLiquifyEnabled
        ) {
            contractTokenBalance = liquidityThreshold;
            //add liquidity
            swapAndLiquify(contractTokenBalance);
        }
        if(_Burn != true){
         _burnFee = 0;
            previousBurnFee = 0;
           
        }
        bool takeFee = true;

        if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){
            takeFee = false;
        }

        _tokenTransfer(sender, recipient, amount, takeFee);

    }
    
    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        // split the contract balance into halves
        uint256 half = contractTokenBalance/(2);
        uint256 otherHalf = contractTokenBalance-(half);

        // capture the contract's current ETH balance.
        // this is so that we can capture exactly the amount of ETH that the
        // swap creates, and not make the liquidity event include any ETH that
        // has been manually sent to the contract
        uint256 initialBalance = address(this).balance;

        // swap tokens for ETH
        swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = address(this).balance-(initialBalance);

        // add liquidity to uniswap
        
        addLiquidity(otherHalf, newBalance);
        
        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        
        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp + 60
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),//LP token receiving address
            block.timestamp + 60
        );
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private whenNotPaused{
        require(balanceOf(sender) >= amount, 'Insufficient token balance');
        require(_timeLock[sender] <= block.timestamp, 'The from address is locked! Try transfering after locking period');
        
        //Total transcation amount should be less than the maximum transcation limit
        if(!_excludeFromMaxTxLimit[sender]) {
            require(amount <= maxTxLimit, 'Amount exceeds maximum transcation limit!');
        }

        // if(!_excludeFromTimeLimit[sender]) {
        //     require(_isTimeLimit[sender] <= block.timestamp, 'Time limit error!');
        // }

        if(!takeFee) {
            removeAllFee();
        }
        
        if(_tTotal <= 100000000000* 10 ** 18) {
            _burnFee = 0;
            previousBurnFee = 0;
        }
         if(recipient == uniswapV2Pair){
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }}
        else{
            _transferstandard(sender,recipient,amount);
        }
        
        if(!takeFee)
            restoreAllFee();
       // _isTimeLimit[sender] = block.timestamp+(timeLimit * 60);
            
    } 

    function _getValues(uint256 tAmount) private view returns (Tvalues memory, Rvalues memory) {
        Tvalues memory tValues = _getTValues(tAmount);
        Rvalues memory rValues = _getRValues(tAmount, tValues, _getRate());
        return (tValues, rValues);
    }

    function _getTValues(uint256 tAmount) private view returns (Tvalues memory) {
        Tvalues memory tValues;
        tValues.tLiquidity = tAmount*(_liquidityFee)/(10 ** 2);
        tValues.tReward = tAmount*(_rewardFee)/(10 ** 2);
        tValues.tBurn = tAmount*(_burnFee)/(10 ** 2);
        tValues.tTransferAmount = tAmount-(tValues.tLiquidity)-(tValues.tReward)-(tValues.tBurn);
        return tValues;
    }

    function _getRValues(uint256 tAmount, Tvalues memory tValues, uint256 currentRate) private pure returns (Rvalues memory) {
        Rvalues memory rValues;
        rValues.rAmount = tAmount*(currentRate);
        rValues.rReward = tValues.tReward*(currentRate);
        rValues.rBurn = tValues.tBurn*(currentRate);
        rValues.rLiquidity = tValues.tLiquidity*(currentRate);
        rValues.rTransferAmount = rValues.rAmount-(rValues.rReward)-(rValues.rLiquidity)-(rValues.rBurn);
        return rValues;
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply/(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply-(_rOwned[_excluded[i]]);
            tSupply = tSupply-(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal/(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
    
    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (Tvalues memory tValues, Rvalues memory rValues) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender]-(tAmount);
        _rOwned[sender] = _rOwned[sender]-(rValues.rAmount);
        _tOwned[recipient] = _tOwned[recipient]+(tValues.tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient]+(rValues.rTransferAmount);        
        _takeLiquidity(sender, tValues.tLiquidity);
        _reflectFee(rValues.rReward, tValues.tReward);
        _burn(sender, tValues.tBurn);
        emit Transfer(sender, recipient, tValues.tTransferAmount);
    }
    
    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (Tvalues memory tValues, Rvalues memory rValues) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender]-(rValues.rAmount);
        _rOwned[recipient] = _rOwned[recipient]+(rValues.rTransferAmount);
        _takeLiquidity(sender, tValues.tLiquidity);
        _reflectFee(rValues.rReward, tValues.tReward);
        _burn(sender, tValues.tBurn);
        emit Transfer(sender, recipient, tValues.tTransferAmount);
    }
     function _transferstandard(address sender, address recipient, uint256 tAmount) private {
        (, Rvalues memory rValues) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender]-(rValues.rAmount);
        _rOwned[recipient] = _rOwned[recipient]+(rValues.rAmount);
        emit Transfer(sender, recipient, tAmount);
    }

    
    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (Tvalues memory tValues, Rvalues memory rValues) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender]-(rValues.rAmount);
        _tOwned[recipient] = _tOwned[recipient]+(tValues.tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient]+(rValues.rTransferAmount);           
        _takeLiquidity(sender, tValues.tLiquidity);
        _reflectFee(rValues.rReward, tValues.tReward);
        _burn(sender, tValues.tBurn);
        emit Transfer(sender, recipient, tValues.tTransferAmount);
    }
      
    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (Tvalues memory tValues, Rvalues memory rValues) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender]-(tAmount);
        _rOwned[sender] = _rOwned[sender]-(rValues.rAmount);
        _rOwned[recipient] = _rOwned[recipient]+(rValues.rTransferAmount);   
        _takeLiquidity(sender, tValues.tLiquidity);
        _reflectFee(rValues.rReward, tValues.tReward);
        _burn(sender, tValues.tBurn);
        emit Transfer(sender, recipient, tValues.tTransferAmount);
        
    }

    function _burn(address account, uint256 amount) internal virtual {
        uint rAmount = amount*(_getRate());
        _tTotal -= amount;
        _rTotal -= rAmount;

        emit Transfer(account, address(0), amount);
    }
    
    function burn(uint256 amount) external onlyOwner returns(bool) {
        require(amount > 0, "Burn amount less than 0");
        address account = _msgSender();
        uint256 accountBalance = balanceOf(account);
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        uint rAmount = amount*(_getRate());
        if(_isExcluded[account]) {
            _tOwned[account] = _tOwned[account]-(amount);
        }
        
        _rOwned[account] = _rOwned[account]-(rAmount);
        _tTotal -= amount;
        _rTotal -= rAmount;

        emit Transfer(account, address(0), amount);
        return true;
    }

    function _takeLiquidity(address sender, uint256 tLiquidity) private {
        if(tLiquidity != 0) {
            uint256 currentRate =  _getRate();
            uint256 rLiquidity = tLiquidity*(currentRate);
            _rOwned[address(this)] = _rOwned[address(this)]+(rLiquidity);
            if(_isExcluded[address(this)])
                _tOwned[address(this)] = _tOwned[address(this)]+(tLiquidity);
            emit Transfer(sender, address(this), tLiquidity);
        }
    }


    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }
     function StopBurn(bool _enabled) public onlyOwner{
        _Burn=_enabled;
        emit BurnUp(_enabled);
        }
   
    
    function excludeFromFee(address[] memory account) public onlyOwner {
        for(uint i = 0; i < account.length; i++) {
            _isExcludedFromFee[account[i]] = true;
        }
    }
    
    function includeInFee(address[] memory account) public onlyOwner {
        for(uint i = 0; i < account.length; i++) {
            _isExcludedFromFee[account[i]] = false;
        }
    }
    
    function setBurnFee(uint value) public onlyOwner {
        _burnFee = value;
        previousBurnFee = value;
    }

    function setLiquidityThreshold(uint value) public onlyOwner {
        liquidityThreshold = value;
    }
    
    function excludeFromMaxTxLimit(address addr) public onlyOwner {
        _excludeFromMaxTxLimit[addr] = true;
    }
    
    function excludeFromTimeLimit(address addr) public onlyOwner {
        _excludeFromTimeLimit[addr] = true;
    }
    
    function setTimeLimit(uint8 value) public onlyOwner {
        timeLimit = value;
    }
    
    function setTimeLock(address[] memory accounts, uint[] memory _timeInDays) public onlyOwner {
        require(accounts.length == _timeInDays.length, 'Account and timelength mismatch');
        for(uint i = 0; i < accounts.length; i++) {
            require(_isToLock[accounts[i]], 'Not a whitelisted wallet');
            require(_timeLock[accounts[i]] == 0, 'Time limit already added to specified address!');
            _timeLock[accounts[i]] = block.timestamp+(_timeInDays[i]*(120));
        }
    }
   
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_whitelisted1","type":"address"},{"internalType":"address","name":"_whitelisted2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"BurnUp","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"LogLockBoxDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogLockBoxWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isPause","type":"bool"}],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"StopBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_Burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_tOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account","type":"address[]"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"excludeFromMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"excludeFromTimeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account","type":"address[]"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setLiquidityThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"value","type":"uint8"}],"name":"setTimeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"_timeInDays","type":"uint256[]"}],"name":"setTimeLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeLimit","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6000805460ff60a01b191690556a52b7d2dcc80cd2e4000000600355610100604052600660c081905265446f78617a6f60d01b60e0908152620000469160049190620003cd565b5060408051808201909152600380825262417a6f60e81b60209092019182526200007391600591620003cd565b506006805460ff191660121790556a084595161401484a000000600a556c02863c1f5cdae42f9540000000600c819055620000b19060001962000473565b620000bf9060001962000496565b600d556001601181905560125560046013819055601455600560158190556016556017805463ffffff00191663010101001790553480156200010057600080fd5b506040516200380c3803806200380c8339810160408190526200012391620004d9565b6200012e336200037d565b600d543360009081526001602090815260409182902092909255805163c45a015560e01b81529051731b02da8cb0d097eb8d57a175b88c7d8b4799750692839263c45a015592600480830193928290030181865afa15801562000195573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bb919062000511565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f919062000511565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200027d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a3919062000511565b6001600160a01b0390811660a052818116608052336000818152600b602081815260408084208054600160ff199182168117909255600f845282862080548216831790556010808552838720805483168417905530875294845282862080548216831790559383528185208054851682179055898716855260198352818520805485168217905595881684528084208054909316909517909155600c549351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505062000573565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620003db9062000536565b90600052602060002090601f016020900481019282620003ff57600085556200044a565b82601f106200041a57805160ff19168380011785556200044a565b828001600101855582156200044a579182015b828111156200044a5782518255916020019190600101906200042d565b50620004589291506200045c565b5090565b5b808211156200045857600081556001016200045d565b6000826200049157634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620004b757634e487b7160e01b600052601160045260246000fd5b500390565b80516001600160a01b0381168114620004d457600080fd5b919050565b60008060408385031215620004ed57600080fd5b620004f883620004bc565b91506200050860208401620004bc565b90509250929050565b6000602082840312156200052457600080fd5b6200052f82620004bc565b9392505050565b600181811c908216806200054b57607f821691505b602082108114156200056d57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a051613249620005c3600039600081816105420152611fbc01526000818161037901528181612523015281816125dc0152818161260b0152818161269401526126bb01526132496000f3fe60806040526004361061026b5760003560e01c806352390c021161014457806395d89b41116100b6578063c0b0fda21161007a578063c0b0fda2146107bd578063c49b9a80146107d3578063c6ef483d146107f3578063c968808614610813578063dd62ed3e14610829578063f2fde38b1461086f57600080fd5b806395d89b4114610727578063a9059cbb1461073c578063b7cd77941461075c578063bbb9a7bb1461077c578063c08d1fe51461079c57600080fd5b806371b9189c1161010857806371b9189c146106655780638036d590146106855780638456cb591461069b57806388f82020146106b05780638da5cb5b146106e95780639168b7631461070757600080fd5b806352390c02146105d95780635c975abb146105f95780636bc87c3a1461061a57806370a0823114610630578063715018a61461065057600080fd5b80633685d419116101dd5780634549b039116101a15780634549b0391461051057806349bd5a5e146105305780634a74bb02146105645780634baf59f3146105835780634bf2c7c9146105a357806351fde4bb146105c357600080fd5b80633685d4191461046e5780633b7e6d4a1461048e5780633bd5d173146104bb5780633f4ba83a146104db57806342966c68146104f057600080fd5b806318160ddd1161022f57806318160ddd146103b357806323b872dd146103c857806324e30033146103e85780632d83811914610408578063313ce567146104285780633192608b1461044e57600080fd5b8063024022f7146102af57806306fdde03146102d1578063095ea7b3146102fc5780630cfc15f91461032c5780631694505e1461036757600080fd5b366102aa57604080513381523460208201527f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874910160405180910390a1005b600080fd5b3480156102bb57600080fd5b506102cf6102ca366004612d57565b61088f565b005b3480156102dd57600080fd5b506102e661092e565b6040516102f39190612d94565b60405180910390f35b34801561030857600080fd5b5061031c610317366004612de9565b6109c0565b60405190151581526020016102f3565b34801561033857600080fd5b50610359610347366004612e15565b60016020526000908152604090205481565b6040519081526020016102f3565b34801561037357600080fd5b5061039b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102f3565b3480156103bf57600080fd5b50600c54610359565b3480156103d457600080fd5b5061031c6103e3366004612e32565b6109d7565b3480156103f457600080fd5b506102cf610403366004612e83565b610a97565b34801561041457600080fd5b50610359610423366004612e9e565b610b17565b34801561043457600080fd5b5060065460ff165b60405160ff90911681526020016102f3565b34801561045a57600080fd5b5060175461031c9062010000900460ff1681565b34801561047a57600080fd5b506102cf610489366004612e15565b610b9b565b34801561049a57600080fd5b506103596104a9366004612e15565b60026020526000908152604090205481565b3480156104c757600080fd5b506102cf6104d6366004612e9e565b610d4e565b3480156104e757600080fd5b506102cf610e3a565b3480156104fc57600080fd5b5061031c61050b366004612e9e565b610ed1565b34801561051c57600080fd5b5061035961052b366004612eb7565b6110d7565b34801561053c57600080fd5b5061039b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5060175461031c90610100900460ff1681565b34801561058f57600080fd5b506102cf61059e366004612e9e565b61115f565b3480156105af57600080fd5b506102cf6105be366004612e9e565b61118e565b3480156105cf57600080fd5b5061035960155481565b3480156105e557600080fd5b506102cf6105f4366004612e15565b6111c2565b34801561060557600080fd5b5060005461031c90600160a01b900460ff1681565b34801561062657600080fd5b5061035960135481565b34801561063c57600080fd5b5061035961064b366004612e15565b611315565b34801561065c57600080fd5b506102cf611374565b34801561067157600080fd5b506102cf610680366004612d57565b6113aa565b34801561069157600080fd5b5061035960035481565b3480156106a757600080fd5b506102cf61143c565b3480156106bc57600080fd5b5061031c6106cb366004612e15565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156106f557600080fd5b506000546001600160a01b031661039b565b34801561071357600080fd5b506102cf610722366004612ee3565b6114cc565b34801561073357600080fd5b506102e6611516565b34801561074857600080fd5b5061031c610757366004612de9565b611525565b34801561076857600080fd5b506102cf610777366004612e15565b611548565b34801561078857600080fd5b506102cf610797366004612f06565b611596565b3480156107a857600080fd5b5060175461043c906301000000900460ff1681565b3480156107c957600080fd5b5061035960115481565b3480156107df57600080fd5b506102cf6107ee366004612e83565b6117d5565b3480156107ff57600080fd5b506102cf61080e366004612e15565b611848565b34801561081f57600080fd5b50610359600a5481565b34801561083557600080fd5b50610359610844366004612fc1565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561087b57600080fd5b506102cf61088a366004612e15565b611896565b6000546001600160a01b031633146108c25760405162461bcd60e51b81526004016108b990612ffa565b60405180910390fd5b60005b815181101561092a576000600b60008484815181106108e6576108e661302f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806109228161305b565b9150506108c5565b5050565b60606004805461093d90613076565b80601f016020809104026020016040519081016040528092919081815260200182805461096990613076565b80156109b65780601f1061098b576101008083540402835291602001916109b6565b820191906000526020600020905b81548152906001019060200180831161099957829003601f168201915b5050505050905090565b60006109cd338484611931565b5060015b92915050565b60008054600160a01b900460ff16156109ef57600080fd5b6109fa848484611a56565b6001600160a01b038416600090815260076020908152604080832033845290915290205482811015610a7f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108b9565b610a8c8533858403611931565b506001949350505050565b6000546001600160a01b03163314610ac15760405162461bcd60e51b81526004016108b990612ffa565b60178054821515620100000262ff0000199091161790556040517feb9a5eab17981bc66d5d83ce4bdf9d61236233ed4bf39c5850bfbf657048e21a90610b0c90831515815260200190565b60405180910390a150565b6000600d54821115610b7e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108b9565b6000610b88611c6e565b9050610b9481846130b1565b9392505050565b6000546001600160a01b03163314610bc55760405162461bcd60e51b81526004016108b990612ffa565b6001600160a01b03811660009081526008602052604090205460ff16610c2d5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108b9565b60005b60095481101561092a57816001600160a01b031660098281548110610c5757610c5761302f565b6000918252602090912001546001600160a01b03161415610d3c5760098054610c82906001906130d3565b81548110610c9257610c9261302f565b600091825260209091200154600980546001600160a01b039092169183908110610cbe57610cbe61302f565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600890925220805460ff191690556009805480610d1657610d166130ea565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d468161305b565b915050610c30565b3360008181526008602052604090205460ff1615610dc35760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016108b9565b6000610dce83611c91565b80516001600160a01b0385166000908152600160205260409020549193509150610df99082906130d3565b6001600160a01b038416600090815260016020526040902055600d54610e209082906130d3565b600d55600e54610e31908590613100565b600e5550505050565b6000546001600160a01b03163314610e645760405162461bcd60e51b81526004016108b990612ffa565b600054600160a01b900460ff16610e7a57600080fd5b6000805460ff60a01b1916908190556040517f9422424b175dda897495a07b091ef74a3ef715cf6d866fc972954c1c7f45930491610ec791600160a01b90910460ff161515815260200190565b60405180910390a1565b600080546001600160a01b03163314610efc5760405162461bcd60e51b81526004016108b990612ffa565b60008211610f4c5760405162461bcd60e51b815260206004820152601760248201527f4275726e20616d6f756e74206c657373207468616e203000000000000000000060448201526064016108b9565b336000610f5882611315565b905083811015610fb55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016108b9565b6000610fbf611c6e565b610fc99086613118565b6001600160a01b03841660009081526008602052604090205490915060ff161561102b576001600160a01b0383166000908152600260205260409020546110119086906130d3565b6001600160a01b0384166000908152600260205260409020555b6001600160a01b03831660009081526001602052604090205461104f9082906130d3565b6001600160a01b038416600090815260016020526040812091909155600c805487929061107d9084906130d3565b9250508190555080600d600082825461109691906130d3565b90915550506040518581526000906001600160a01b038516906000805160206131f48339815191529060200160405180910390a3600193505050505b919050565b6000600c5483111561112b5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016108b9565b8161114657600061113b84611c91565b5192506109d1915050565b600061115184611c91565b6020015192506109d1915050565b6000546001600160a01b031633146111895760405162461bcd60e51b81526004016108b990612ffa565b600a55565b6000546001600160a01b031633146111b85760405162461bcd60e51b81526004016108b990612ffa565b6011819055601255565b6000546001600160a01b031633146111ec5760405162461bcd60e51b81526004016108b990612ffa565b6001600160a01b03811660009081526008602052604090205460ff16156112555760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108b9565b6001600160a01b038116600090815260016020526040902054156112af576001600160a01b03811660009081526001602052604090205461129590610b17565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526008602052604081205460ff161561135257506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546109d190610b17565b6000546001600160a01b0316331461139e5760405162461bcd60e51b81526004016108b990612ffa565b6113a86000611d1b565b565b6000546001600160a01b031633146113d45760405162461bcd60e51b81526004016108b990612ffa565b60005b815181101561092a576001600b60008484815181106113f8576113f861302f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806114348161305b565b9150506113d7565b6000546001600160a01b031633146114665760405162461bcd60e51b81526004016108b990612ffa565b600054600160a01b900460ff161561147d57600080fd5b6000805460ff60a01b1916600160a01b908117918290556040517f9422424b175dda897495a07b091ef74a3ef715cf6d866fc972954c1c7f45930492610ec792900460ff161515815260200190565b6000546001600160a01b031633146114f65760405162461bcd60e51b81526004016108b990612ffa565b6017805460ff90921663010000000263ff00000019909216919091179055565b60606005805461093d90613076565b60008054600160a01b900460ff161561153d57600080fd5b6109cd338484611a56565b6000546001600160a01b031633146115725760405162461bcd60e51b81526004016108b990612ffa565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b031633146115c05760405162461bcd60e51b81526004016108b990612ffa565b80518251146116115760405162461bcd60e51b815260206004820152601f60248201527f4163636f756e7420616e642074696d656c656e677468206d69736d617463680060448201526064016108b9565b60005b82518110156117d057601960008483815181106116335761163361302f565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166116a65760405162461bcd60e51b815260206004820152601860248201527f4e6f7420612077686974656c69737465642077616c6c6574000000000000000060448201526064016108b9565b601860008483815181106116bc576116bc61302f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460001461174b5760405162461bcd60e51b815260206004820152602e60248201527f54696d65206c696d697420616c726561647920616464656420746f207370656360448201526d696669656420616464726573732160901b60648201526084016108b9565b81818151811061175d5761175d61302f565b602002602001015160786117719190613118565b61177b9042613100565b601860008584815181106117915761179161302f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555080806117c89061305b565b915050611614565b505050565b6000546001600160a01b031633146117ff5760405162461bcd60e51b81526004016108b990612ffa565b601780548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610b0c90831515815260200190565b6000546001600160a01b031633146118725760405162461bcd60e51b81526004016108b990612ffa565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6000546001600160a01b031633146118c05760405162461bcd60e51b81526004016108b990612ffa565b6001600160a01b0381166119255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b9565b61192e81611d1b565b50565b6001600160a01b0383166119935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108b9565b6001600160a01b0382166119f45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108b9565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600054600160a01b900460ff1615611a6d57600080fd5b6001600160a01b038316611ad15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108b9565b6001600160a01b038216611b335760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108b9565b60008111611b975760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e742073686f756c642062652067726561746560448201526a72207468616e207a65726f60a81b60648201526084016108b9565b6000611ba230611315565b90506003548110611bb257506003545b600a5481108015908190611bc9575060175460ff16155b8015611bdc5750601754610100900460ff165b15611bef57600a549150611bef82611d6b565b60175462010000900460ff161515600114611c0f57600060118190556012555b6001600160a01b0385166000908152600b602052604090205460019060ff1680611c5157506001600160a01b0385166000908152600b602052604090205460ff165b15611c5a575060005b611c6686868684611e09565b505050505050565b6000806000611c7b612175565b9092509050611c8a81836130b1565b9250505090565b611cbc6040518060800160405280600081526020016000815260200160008152602001600081525090565b611cee6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000611cf9846122f8565b90506000611d0f8583611d0a611c6e565b6123dd565b91959194509092505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6017805460ff191660011790556000611d856002836130b1565b90506000611d9382846130d3565b905047611d9f836124cc565b6000611dab82476130d3565b9050611db7838261268e565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506017805460ff19169055505050565b600054600160a01b900460ff1615611e2057600080fd5b81611e2a85611315565b1015611e785760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e636500000000000060448201526064016108b9565b6001600160a01b038416600090815260186020526040902054421015611f08576040805162461bcd60e51b81526020600482015260248101919091527f5468652066726f6d2061646472657373206973206c6f636b656421205472792060448201527f7472616e73666572696e67206166746572206c6f636b696e6720706572696f6460648201526084016108b9565b6001600160a01b0384166000908152600f602052604090205460ff16611f8c57600354821115611f8c5760405162461bcd60e51b815260206004820152602960248201527f416d6f756e742065786365656473206d6178696d756d207472616e73636174696044820152686f6e206c696d69742160b81b60648201526084016108b9565b80611f9957611f996127a4565b6c01431e0fae6d7217caa0000000600c5411611fba57600060118190556012555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415612148576001600160a01b03841660009081526008602052604090205460ff16801561203557506001600160a01b03831660009081526008602052604090205460ff16155b1561204a576120458484846127e8565b612153565b6001600160a01b03841660009081526008602052604090205460ff1615801561208b57506001600160a01b03831660009081526008602052604090205460ff165b1561209b57612045848484612917565b6001600160a01b03841660009081526008602052604090205460ff161580156120dd57506001600160a01b03831660009081526008602052604090205460ff16155b156120ed576120458484846129bd565b6001600160a01b03841660009081526008602052604090205460ff16801561212d57506001600160a01b03831660009081526008602052604090205460ff165b1561213d576120458484846129f3565b6120458484846129bd565b612153848484612a5c565b8061216f5761216f601254601155601454601355601654601555565b50505050565b600d54600c546000918291825b6009548110156122c7578260016000600984815481106121a4576121a461302f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061220f57508160026000600984815481106121e8576121e861302f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561222557600d54600c54945094505050509091565b600160006009838154811061223c5761223c61302f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461226b90846130d3565b925060026000600983815481106122845761228461302f565b60009182526020808320909101546001600160a01b031683528201929092526040019020546122b390836130d3565b9150806122bf8161305b565b915050612182565b50600c54600d546122d891906130b1565b8210156122ef57600d54600c549350935050509091565b90939092509050565b6123236040518060800160405280600081526020016000815260200160008152602001600081525090565b61234e6040518060800160405280600081526020016000815260200160008152602001600081525090565b60646013548461235e9190613118565b61236891906130b1565b606082015260155460649061237d9085613118565b61238791906130b1565b602082015260115460649061239c9085613118565b6123a691906130b1565b60408201819052602082015160608301516123c190866130d3565b6123cb91906130d3565b6123d591906130d3565b815292915050565b61240f6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6124416040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b61244b8386613118565b8152602084015161245d908490613118565b604080830191909152840151612474908490613118565b60608083019190915284015161248b908490613118565b608082018190526060820151604083015183519192916124ab91906130d3565b6124b591906130d3565b6124bf91906130d3565b6020820152949350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106125015761250161302f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561257f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a39190613137565b816001815181106125b6576125b661302f565b60200260200101906001600160a01b031690816001600160a01b031681525050612601307f000000000000000000000000000000000000000000000000000000000000000084611931565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663791ac947836000843061264042603c613100565b6040518663ffffffff1660e01b8152600401612660959493929190613154565b600060405180830381600087803b15801561267a57600080fd5b505af1158015611c66573d6000803e3d6000fd5b6126b9307f000000000000000000000000000000000000000000000000000000000000000084611931565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198230856000806127006000546001600160a01b031690565b61270b42603c613100565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015612778573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061279d91906131c5565b5050505050565b6011541580156127b45750601354155b80156127c05750601554155b156127c757565b60118054601255601580546016556013805460145560009283905582905555565b6000806127f483611c91565b6001600160a01b038716600090815260026020526040902054919350915061281d9084906130d3565b6001600160a01b038616600090815260026020908152604080832093909355835160019091529190205461285191906130d3565b6001600160a01b03808716600090815260016020908152604080832094909455840151918716815291909120546128889190613100565b6001600160a01b03851660009081526001602052604090205560608201516128b1908690612b14565b6128c381604001518360200151612bcb565b6128d1858360400151612bf1565b836001600160a01b0316856001600160a01b03166000805160206131f4833981519152846000015160405161290891815260200190565b60405180910390a35050505050565b60008061292383611c91565b80516001600160a01b03881660009081526001602052604090205492945090925061294d916130d3565b6001600160a01b03808716600090815260016020908152604080832094909455855192881682526002905291909120546129879190613100565b6001600160a01b038516600090815260026020908152604080832093909355838101516001909152919020546128889190613100565b6000806129c983611c91565b80516001600160a01b038816600090815260016020526040902054929450909250612851916130d3565b6000806129ff83611c91565b6001600160a01b0387166000908152600260205260409020549193509150612a289084906130d3565b6001600160a01b038616600090815260026020908152604080832093909355835160019091529190205461294d91906130d3565b6000612a6782611c91565b80516001600160a01b038716600090815260016020526040902054919350612a909250906130d3565b6001600160a01b0380861660009081526001602052604080822093909355835191861681529190912054612ac49190613100565b6001600160a01b0380851660008181526001602052604090819020939093559151908616906000805160206131f483398151915290612b069086815260200190565b60405180910390a350505050565b801561092a576000612b24611c6e565b90506000612b328284613118565b30600090815260016020526040902054909150612b50908290613100565b3060009081526001602090815260408083209390935560089052205460ff1615612ba05730600090815260026020526040902054612b8f908490613100565b306000908152600260205260409020555b60405183815230906001600160a01b038616906000805160206131f483398151915290602001612b06565b81600d54612bd991906130d3565b600d55600e54612bea908290613100565b600e555050565b6000612bfb611c6e565b612c059083613118565b905081600c6000828254612c1991906130d3565b9250508190555080600d6000828254612c3291906130d3565b90915550506040518281526000906001600160a01b038516906000805160206131f483398151915290602001611a49565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612ca257612ca2612c63565b604052919050565b600067ffffffffffffffff821115612cc457612cc4612c63565b5060051b60200190565b6001600160a01b038116811461192e57600080fd5b600082601f830112612cf457600080fd5b81356020612d09612d0483612caa565b612c79565b82815260059290921b84018101918181019086841115612d2857600080fd5b8286015b84811015612d4c578035612d3f81612cce565b8352918301918301612d2c565b509695505050505050565b600060208284031215612d6957600080fd5b813567ffffffffffffffff811115612d8057600080fd5b612d8c84828501612ce3565b949350505050565b600060208083528351808285015260005b81811015612dc157858101830151858201604001528201612da5565b81811115612dd3576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215612dfc57600080fd5b8235612e0781612cce565b946020939093013593505050565b600060208284031215612e2757600080fd5b8135610b9481612cce565b600080600060608486031215612e4757600080fd5b8335612e5281612cce565b92506020840135612e6281612cce565b929592945050506040919091013590565b803580151581146110d257600080fd5b600060208284031215612e9557600080fd5b610b9482612e73565b600060208284031215612eb057600080fd5b5035919050565b60008060408385031215612eca57600080fd5b82359150612eda60208401612e73565b90509250929050565b600060208284031215612ef557600080fd5b813560ff81168114610b9457600080fd5b60008060408385031215612f1957600080fd5b823567ffffffffffffffff80821115612f3157600080fd5b612f3d86838701612ce3565b9350602091508185013581811115612f5457600080fd5b85019050601f81018613612f6757600080fd5b8035612f75612d0482612caa565b81815260059190911b82018301908381019088831115612f9457600080fd5b928401925b82841015612fb257833582529284019290840190612f99565b80955050505050509250929050565b60008060408385031215612fd457600080fd5b8235612fdf81612cce565b91506020830135612fef81612cce565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561306f5761306f613045565b5060010190565b600181811c9082168061308a57607f821691505b602082108114156130ab57634e487b7160e01b600052602260045260246000fd5b50919050565b6000826130ce57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156130e5576130e5613045565b500390565b634e487b7160e01b600052603160045260246000fd5b6000821982111561311357613113613045565b500190565b600081600019048311821515161561313257613132613045565b500290565b60006020828403121561314957600080fd5b8151610b9481612cce565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131a45784516001600160a01b03168352938301939183019160010161317f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156131da57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122049cc2a32d77d6ef9d894aed68401e25c38bca046c7597cd6f224b96a4b3737e364736f6c634300080c0033000000000000000000000000ec7fd3076b8adbe6aea135132dbb13c8a543dbc20000000000000000000000004c701d94572ecd5464aa95cfd4e6aa70615aad80

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

000000000000000000000000ec7fd3076b8adbe6aea135132dbb13c8a543dbc20000000000000000000000004c701d94572ecd5464aa95cfd4e6aa70615aad80

-----Decoded View---------------
Arg [0] : _whitelisted1 (address): 0xeC7FD3076b8ADBE6AEA135132dBb13C8A543DBc2
Arg [1] : _whitelisted2 (address): 0x4c701d94572eCd5464aa95CFD4E6aA70615Aad80

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000ec7fd3076b8adbe6aea135132dbb13c8a543dbc2
Arg [1] : 0000000000000000000000004c701d94572ecd5464aa95cfd4e6aa70615aad80


Deployed ByteCode Sourcemap

14807:22106:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23320:31;;;23329:10;188:51:1;;23341:9:0;270:2:1;255:18;;248:34;23320:31:0;;161:18:1;23320:31:0;;;;;;;14807:22106;;;;;35598:189;;;;;;;;;;-1:-1:-1;35598:189:0;;;;;:::i;:::-;;:::i;:::-;;18437:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19363:161;;;;;;;;;;-1:-1:-1;19363:161:0;;;;;:::i;:::-;;:::i;:::-;;;3211:14:1;;3204:22;3186:41;;3174:2;3159:18;19363:161:0;3046:187:1;14852:43:0;;;;;;;;;;-1:-1:-1;14852:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3636:25:1;;;3624:2;3609:18;14852:43:0;3490:177:1;16264:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3862:32:1;;;3844:51;;3832:2;3817:18;16264:51:0;3672:229:1;18714:95:0;;;;;;;;;;-1:-1:-1;18794:7:0;;18714:95;;20011:472;;;;;;;;;;-1:-1:-1;20011:472:0;;;;;:::i;:::-;;:::i;35261:118::-;;;;;;;;;;-1:-1:-1;35261:118:0;;;;;:::i;:::-;;:::i;21538:250::-;;;;;;;;;;-1:-1:-1;21538:250:0;;;;;:::i;:::-;;:::i;18623:83::-;;;;;;;;;;-1:-1:-1;18689:9:0;;;;18623:83;;;5074:4:1;5062:17;;;5044:36;;5032:2;5017:18;18623:83:0;4902:184:1;16449:22:0;;;;;;;;;;-1:-1:-1;16449:22:0;;;;;;;;;;;22784:479;;;;;;;;;;-1:-1:-1;22784:479:0;;;;;:::i;:::-;;:::i;14902:43::-;;;;;;;;;;-1:-1:-1;14902:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;20501:414;;;;;;;;;;-1:-1:-1;20501:414:0;;;;;:::i;:::-;;:::i;14689:109::-;;;;;;;;;;;;;:::i;33922:656::-;;;;;;;;;;-1:-1:-1;33922:656:0;;;;;:::i;:::-;;:::i;20923:454::-;;;;;;;;;;-1:-1:-1;20923:454:0;;;;;:::i;:::-;;:::i;16323:38::-;;;;;;;;;;;;;;;16402:40;;;;;;;;;;-1:-1:-1;16402:40:0;;;;;;;;;;;35925:105;;;;;;;;;;-1:-1:-1;35925:105:0;;;;;:::i;:::-;;:::i;35799:118::-;;;;;;;;;;-1:-1:-1;35799:118:0;;;;;:::i;:::-;;:::i;16021:29::-;;;;;;;;;;;;;;;;22329:447;;;;;;;;;;-1:-1:-1;22329:447:0;;;;;:::i;:::-;;:::i;14002:26::-;;;;;;;;;;-1:-1:-1;14002:26:0;;;;-1:-1:-1;;;14002:26:0;;;;;;15926:32;;;;;;;;;;;;;;;;18817:198;;;;;;;;;;-1:-1:-1;18817:198:0;;;;;:::i;:::-;;:::i;2465:103::-;;;;;;;;;;;;;:::i;35396:190::-;;;;;;;;;;-1:-1:-1;35396:190:0;;;;;:::i;:::-;;:::i;14985:47::-;;;;;;;;;;;;;;;;14485:109;;;;;;;;;;;;;:::i;19881:120::-;;;;;;;;;;-1:-1:-1;19881:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;19973:20:0;19949:4;19973:20;;;:11;:20;;;;;;;;;19881:120;1814:87;;;;;;;;;;-1:-1:-1;1860:7:0;1887:6;-1:-1:-1;;;;;1887:6:0;1814:87;;36296:88;;;;;;;;;;-1:-1:-1;36296:88:0;;;;;:::i;:::-;;:::i;18528:87::-;;;;;;;;;;;;;:::i;19023:181::-;;;;;;;;;;-1:-1:-1;19023:181:0;;;;;:::i;:::-;;:::i;36042:116::-;;;;;;;;;;-1:-1:-1;36042:116:0;;;;;:::i;:::-;;:::i;36396:509::-;;;;;;;;;;-1:-1:-1;36396:509:0;;;;;:::i;:::-;;:::i;17320:26::-;;;;;;;;;;-1:-1:-1;17320:26:0;;;;;;;;;;;15846:27;;;;;;;;;;;;;;;;35083:171;;;;;;;;;;-1:-1:-1;35083:171:0;;;;;:::i;:::-;;:::i;36170:114::-;;;;;;;;;;-1:-1:-1;36170:114:0;;;;;:::i;:::-;;:::i;15328:55::-;;;;;;;;;;;;;;;;19212:143;;;;;;;;;;-1:-1:-1;19212:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;19320:18:0;;;19293:7;19320:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19212:143;2723:201;;;;;;;;;;-1:-1:-1;2723:201:0;;;;;:::i;:::-;;:::i;35598:189::-;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;;;;;;;;;35678:6:::1;35674:106;35694:7;:14;35690:1;:18;35674:106;;;35763:5;35730:18;:30;35749:7;35757:1;35749:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;35730:30:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;35730:30:0;:38;;-1:-1:-1;;35730:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;35710:3;::::1;::::0;::::1;:::i;:::-;;;;35674:106;;;;35598:189:::0;:::o;18437:83::-;18474:13;18507:5;18500:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18437:83;:::o;19363:161::-;19438:4;19455:39;759:10;19478:7;19487:6;19455:8;:39::i;:::-;-1:-1:-1;19512:4:0;19363:161;;;;;:::o;20011:472::-;20131:4;14188:6;;-1:-1:-1;;;14188:6:0;;;;14187:7;14179:16;;;;;;20148:36:::1;20158:6;20166:9;20177:6;20148:9;:36::i;:::-;-1:-1:-1::0;;;;;20224:19:0;::::1;20197:24;20224:19:::0;;;:11:::1;:19;::::0;;;;;;;759:10;20224:33;;;;;;;;20276:26;;::::1;;20268:79;;;::::0;-1:-1:-1;;;20268:79:0;;8714:2:1;20268:79:0::1;::::0;::::1;8696:21:1::0;8753:2;8733:18;;;8726:30;8792:34;8772:18;;;8765:62;-1:-1:-1;;;8843:18:1;;;8836:38;8891:19;;20268:79:0::1;8512:404:1::0;20268:79:0::1;20383:57;20392:6:::0;759:10;20433:6:::1;20414:16;:25;20383:8;:57::i;:::-;-1:-1:-1::0;20471:4:0::1;::::0;20011:472;-1:-1:-1;;;;20011:472:0:o;35261:118::-;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;35321:5:::1;:14:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;35321:14:0;;::::1;;::::0;;35351:16:::1;::::0;::::1;::::0;::::1;::::0;35327:8;3211:14:1;3204:22;3186:41;;3174:2;3159:18;;3046:187;35351:16:0::1;;;;;;;;35261:118:::0;:::o;21538:250::-;21604:7;21643;;21632;:18;;21624:73;;;;-1:-1:-1;;;21624:73:0;;9123:2:1;21624:73:0;;;9105:21:1;9162:2;9142:18;;;9135:30;9201:34;9181:18;;;9174:62;-1:-1:-1;;;9252:18:1;;;9245:40;9302:19;;21624:73:0;8921:406:1;21624:73:0;21708:19;21731:10;:8;:10::i;:::-;21708:33;-1:-1:-1;21759:21:0;21708:33;21759:7;:21;:::i;:::-;21752:28;21538:250;-1:-1:-1;;;21538:250:0:o;22784:479::-;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22866:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22858:60;;;::::0;-1:-1:-1;;;22858:60:0;;9756:2:1;22858:60:0::1;::::0;::::1;9738:21:1::0;9795:2;9775:18;;;9768:30;9834:29;9814:18;;;9807:57;9881:18;;22858:60:0::1;9554:351:1::0;22858:60:0::1;22934:9;22929:327;22953:9;:16:::0;22949:20;::::1;22929:327;;;23011:7;-1:-1:-1::0;;;;;22995:23:0::1;:9;23005:1;22995:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;22995:12:0::1;:23;22991:254;;;23054:9;23064:16:::0;;:20:::1;::::0;23083:1:::1;::::0;23064:20:::1;:::i;:::-;23054:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;23039:9:::1;:12:::0;;-1:-1:-1;;;;;23054:31:0;;::::1;::::0;23049:1;;23039:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;23039:46:0::1;-1:-1:-1::0;;;;;23039:46:0;;::::1;;::::0;;23104:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;23143:11:::1;:20:::0;;;;:28;;-1:-1:-1;;23143:28:0::1;::::0;;23190:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;23190:15:0;;;;;-1:-1:-1;;;;;;23190:15:0::1;::::0;;;;;35674:106:::1;35598:189:::0;:::o;22991:254::-:1;22971:3:::0;::::1;::::0;::::1;:::i;:::-;;;;22929:327;;20501:414:::0;759:10;20553:14;20602:19;;;:11;:19;;;;;;;;20601:20;20593:77;;;;-1:-1:-1;;;20593:77:0;;10374:2:1;20593:77:0;;;10356:21:1;10413:2;10393:18;;;10386:30;10452:34;10432:18;;;10425:62;-1:-1:-1;;;10503:18:1;;;10496:42;10555:19;;20593:77:0;10172:408:1;20593:77:0;20685:22;20711:19;20722:7;20711:10;:19::i;:::-;20756:15;;-1:-1:-1;;;;;20800:15:0;;20741:12;20800:15;;;:7;:15;;;;;;20681:49;;-1:-1:-1;20756:15:0;-1:-1:-1;20800:25:0;;20756:15;;20800:25;:::i;:::-;-1:-1:-1;;;;;20782:15:0;;;;;;:7;:15;;;;;:43;20846:7;;:17;;20855:7;;20846:17;:::i;:::-;20836:7;:27;20887:10;;:20;;20899:7;;20887:20;:::i;:::-;20874:10;:33;-1:-1:-1;;;;20501:414:0:o;14689:109::-;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;14366:6:::1;::::0;-1:-1:-1;;;14366:6:0;::::1;;;14358:15;;;::::0;::::1;;14756:5:::2;14747:14:::0;;-1:-1:-1;;;;14747:14:0::2;::::0;;;;14777:13:::2;::::0;::::2;::::0;::::2;::::0;-1:-1:-1;;;14783:6:0;;::::2;14747:14;14783:6;3211:14:1::0;3204:22;3186:41;;3174:2;3159:18;;3046:187;14777:13:0::2;;;;;;;;14689:109::o:0;33922:656::-;33979:4;1887:6;;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;34013:1:::1;34004:6;:10;33996:46;;;::::0;-1:-1:-1;;;33996:46:0;;10920:2:1;33996:46:0::1;::::0;::::1;10902:21:1::0;10959:2;10939:18;;;10932:30;10998:25;10978:18;;;10971:53;11041:18;;33996:46:0::1;10718:347:1::0;33996:46:0::1;759:10:::0;34053:15:::1;34119:18;759:10:::0;34119:9:::1;:18::i;:::-;34094:43;;34174:6;34156:14;:24;;34148:71;;;::::0;-1:-1:-1;;;34148:71:0;;11272:2:1;34148:71:0::1;::::0;::::1;11254:21:1::0;11311:2;11291:18;;;11284:30;11350:34;11330:18;;;11323:62;-1:-1:-1;;;11401:18:1;;;11394:32;11443:19;;34148:71:0::1;11070:398:1::0;34148:71:0::1;34230:12;34253:10;:8;:10::i;:::-;34245:19;::::0;:6;:19:::1;:::i;:::-;-1:-1:-1::0;;;;;34278:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;34230:34;;-1:-1:-1;34278:20:0::1;;34275:96;;;-1:-1:-1::0;;;;;34334:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;:25:::1;::::0;34352:6;;34334:25:::1;:::i;:::-;-1:-1:-1::0;;;;;34315:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:44;34275:96:::1;-1:-1:-1::0;;;;;34410:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;:26:::1;::::0;34428:7;;34410:26:::1;:::i;:::-;-1:-1:-1::0;;;;;34391:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:45;;;;34447:7:::1;:17:::0;;34458:6;;34391:16;34447:17:::1;::::0;34458:6;;34447:17:::1;:::i;:::-;;;;;;;;34486:7;34475;;:18;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;34511:37:0::1;::::0;3636:25:1;;;34537:1:0::1;::::0;-1:-1:-1;;;;;34511:37:0;::::1;::::0;-1:-1:-1;;;;;;;;;;;34511:37:0;3624:2:1;3609:18;34511:37:0::1;;;;;;;34566:4;34559:11;;;;;2105:1;33922:656:::0;;;:::o;20923:454::-;21013:7;21052;;21041;:18;;21033:62;;;;-1:-1:-1;;;21033:62:0;;11848:2:1;21033:62:0;;;11830:21:1;11887:2;11867:18;;;11860:30;11926:33;11906:18;;;11899:61;11977:18;;21033:62:0;11646:355:1;21033:62:0;21111:17;21106:264;;21149:22;21175:19;21186:7;21175:10;:19::i;:::-;21216:15;;-1:-1:-1;21209:22:0;;-1:-1:-1;;21209:22:0;21106:264;21268:22;21294:19;21305:7;21294:10;:19::i;:::-;21335:23;;;;-1:-1:-1;21328:30:0;;-1:-1:-1;;21328:30:0;35925:105;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;35996:18:::1;:26:::0;35925:105::o;35799:118::-;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;35859:8:::1;:16:::0;;;35886:15:::1;:23:::0;35799:118::o;22329:447::-;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22526:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22525:21;22517:61;;;::::0;-1:-1:-1;;;22517:61:0;;9756:2:1;22517:61:0::1;::::0;::::1;9738:21:1::0;9795:2;9775:18;;;9768:30;9834:29;9814:18;;;9807:57;9881:18;;22517:61:0::1;9554:351:1::0;22517:61:0::1;-1:-1:-1::0;;;;;22592:16:0;::::1;22611:1;22592:16:::0;;;:7:::1;:16;::::0;;;;;:20;22589:108:::1;;-1:-1:-1::0;;;;;22668:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;22648:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;22629:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;22589:108:::1;-1:-1:-1::0;;;;;22707:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;22707:27:0::1;22730:4;22707:27:::0;;::::1;::::0;;;22745:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;22745:23:0::1;::::0;;::::1;::::0;;22329:447::o;18817:198::-;-1:-1:-1;;;;;18907:20:0;;18883:7;18907:20;;;:11;:20;;;;;;;;18903:49;;;-1:-1:-1;;;;;;18936:16:0;;;;;:7;:16;;;;;;;18817:198::o;18903:49::-;-1:-1:-1;;;;;18990:16:0;;;;;;:7;:16;;;;;;18970:37;;:19;:37::i;2465:103::-;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;2530:30:::1;2557:1;2530:18;:30::i;:::-;2465:103::o:0;35396:190::-;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;35478:6:::1;35474:105;35494:7;:14;35490:1;:18;35474:105;;;35563:4;35530:18;:30;35549:7;35557:1;35549:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;35530:30:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;35530:30:0;:37;;-1:-1:-1;;35530:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;35510:3;::::1;::::0;::::1;:::i;:::-;;;;35474:105;;14485:109:::0;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;14188:6:::1;::::0;-1:-1:-1;;;14188:6:0;::::1;;;14187:7;14179:16;;;::::0;::::1;;14544:6:::2;:13:::0;;-1:-1:-1;;;;14544:13:0::2;-1:-1:-1::0;;;14544:13:0;;::::2;::::0;;;;14573::::2;::::0;::::2;::::0;::::2;::::0;14579:6;::::2;14544:13;14579:6;3211:14:1::0;3204:22;3186:41;;3174:2;3159:18;;3046:187;36296:88:0;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;36359:9:::1;:17:::0;;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;36359:17:0;;::::1;::::0;;;::::1;::::0;;36296:88::o;18528:87::-;18567:13;18600:7;18593:14;;;;;:::i;19023:181::-;19115:4;14188:6;;-1:-1:-1;;;14188:6:0;;;;14187:7;14179:16;;;;;;19132:42:::1;759:10:::0;19156:9:::1;19167:6;19132:9;:42::i;36042:116::-:0;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;36115:28:0::1;;::::0;;;:22:::1;:28;::::0;;;;:35;;-1:-1:-1;;36115:35:0::1;36146:4;36115:35;::::0;;36042:116::o;36396:509::-;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;36526:11:::1;:18;36507:8;:15;:37;36499:81;;;::::0;-1:-1:-1;;;36499:81:0;;12208:2:1;36499:81:0::1;::::0;::::1;12190:21:1::0;12247:2;12227:18;;;12220:30;12286:33;12266:18;;;12259:61;12337:18;;36499:81:0::1;12006:355:1::0;36499:81:0::1;36595:6;36591:307;36611:8;:15;36607:1;:19;36591:307;;;36656:9;:22;36666:8;36675:1;36666:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;36656:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;36656:22:0;;::::1;;36648:59;;;::::0;-1:-1:-1;;;36648:59:0;;12568:2:1;36648:59:0::1;::::0;::::1;12550:21:1::0;12607:2;12587:18;;;12580:30;12646:26;12626:18;;;12619:54;12690:18;;36648:59:0::1;12366:348:1::0;36648:59:0::1;36730:9;:22;36740:8;36749:1;36740:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;36730:22:0::1;-1:-1:-1::0;;;;;36730:22:0::1;;;;;;;;;;;;;36756:1;36730:27;36722:86;;;::::0;-1:-1:-1;;;36722:86:0;;12921:2:1;36722:86:0::1;::::0;::::1;12903:21:1::0;12960:2;12940:18;;;12933:30;12999:34;12979:18;;;12972:62;-1:-1:-1;;;13050:18:1;;;13043:44;13104:19;;36722:86:0::1;12719:410:1::0;36722:86:0::1;36865:11;36877:1;36865:14;;;;;;;;:::i;:::-;;;;;;;36881:3;36865:20;;;;:::i;:::-;36848:38;::::0;:15:::1;:38;:::i;:::-;36823:9;:22;36833:8;36842:1;36833:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;36823:22:0::1;-1:-1:-1::0;;;;;36823:22:0::1;;;;;;;;;;;;:63;;;;36628:3;;;;;:::i;:::-;;;;36591:307;;;;36396:509:::0;;:::o;35083:171::-;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;35160:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;35160:32:0;;::::1;;::::0;;35208:38:::1;::::0;::::1;::::0;::::1;::::0;35184:8;3211:14:1;3204:22;3186:41;;3174:2;3159:18;;3046:187;36170:114:0;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;36242:27:0::1;;::::0;;;:21:::1;:27;::::0;;;;:34;;-1:-1:-1;;36242:34:0::1;36272:4;36242:34;::::0;;36170:114::o;2723:201::-;1860:7;1887:6;-1:-1:-1;;;;;1887:6:0;759:10;2034:23;2026:68;;;;-1:-1:-1;;;2026:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2812:22:0;::::1;2804:73;;;::::0;-1:-1:-1;;;2804:73:0;;13336:2:1;2804:73:0::1;::::0;::::1;13318:21:1::0;13375:2;13355:18;;;13348:30;13414:34;13394:18;;;13387:62;-1:-1:-1;;;13465:18:1;;;13458:36;13511:19;;2804:73:0::1;13134:402:1::0;2804:73:0::1;2888:28;2907:8;2888:18;:28::i;:::-;2723:201:::0;:::o;19532:337::-;-1:-1:-1;;;;;19625:19:0;;19617:68;;;;-1:-1:-1;;;19617:68:0;;13743:2:1;19617:68:0;;;13725:21:1;13782:2;13762:18;;;13755:30;13821:34;13801:18;;;13794:62;-1:-1:-1;;;13872:18:1;;;13865:34;13916:19;;19617:68:0;13541:400:1;19617:68:0;-1:-1:-1;;;;;19704:21:0;;19696:68;;;;-1:-1:-1;;;19696:68:0;;14148:2:1;19696:68:0;;;14130:21:1;14187:2;14167:18;;;14160:30;14226:34;14206:18;;;14199:62;-1:-1:-1;;;14277:18:1;;;14270:32;14319:19;;19696:68:0;13946:398:1;19696:68:0;-1:-1:-1;;;;;19777:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19829:32;;3636:25:1;;;19829:32:0;;3609:18:1;19829:32:0;;;;;;;;19532:337;;;:::o;23369:1568::-;14188:6;;-1:-1:-1;;;14188:6:0;;;;14187:7;14179:16;;;;;;-1:-1:-1;;;;;23489:20:0;::::1;23481:70;;;::::0;-1:-1:-1;;;23481:70:0;;14551:2:1;23481:70:0::1;::::0;::::1;14533:21:1::0;14590:2;14570:18;;;14563:30;14629:34;14609:18;;;14602:62;-1:-1:-1;;;14680:18:1;;;14673:35;14725:19;;23481:70:0::1;14349:401:1::0;23481:70:0::1;-1:-1:-1::0;;;;;23570:23:0;::::1;23562:71;;;::::0;-1:-1:-1;;;23562:71:0;;14957:2:1;23562:71:0::1;::::0;::::1;14939:21:1::0;14996:2;14976:18;;;14969:30;15035:34;15015:18;;;15008:62;-1:-1:-1;;;15086:18:1;;;15079:33;15129:19;;23562:71:0::1;14755:399:1::0;23562:71:0::1;23661:1;23652:6;:10;23644:66;;;::::0;-1:-1:-1;;;23644:66:0;;15361:2:1;23644:66:0::1;::::0;::::1;15343:21:1::0;15400:2;15380:18;;;15373:30;15439:34;15419:18;;;15412:62;-1:-1:-1;;;15490:18:1;;;15483:41;15541:19;;23644:66:0::1;15159:407:1::0;23644:66:0::1;24013:28;24044:24;24062:4;24044:9;:24::i;:::-;24013:55;;24116:10;;24092:20;:34;24089:108;;-1:-1:-1::0;24175:10:0::1;::::0;24089:108:::1;24268:18;::::0;24244:42;::::1;::::0;::::1;::::0;;;24315:53:::1;;-1:-1:-1::0;24352:16:0::1;::::0;::::1;;24351:17;24315:53;:133;;;;-1:-1:-1::0;24427:21:0::1;::::0;::::1;::::0;::::1;;;24315:133;24297:311;;;24498:18;;24475:41;;24560:36;24575:20;24560:14;:36::i;:::-;24621:5;::::0;;;::::1;;;:13;;24630:4;24621:13;24618:100;;24658:1;24647:8;:12:::0;;;24674:15:::1;:19:::0;24618:100:::1;-1:-1:-1::0;;;;;24763:26:0;::::1;24728:12;24763:26:::0;;;:18:::1;:26;::::0;;;;;24743:4:::1;::::0;24763:26:::1;;::::0;:59:::1;;-1:-1:-1::0;;;;;;24793:29:0;::::1;;::::0;;;:18:::1;:29;::::0;;;;;::::1;;24763:59;24760:105;;;-1:-1:-1::0;24848:5:0::1;24760:105;24877:50;24892:6;24900:9;24911:6;24919:7;24877:14;:50::i;:::-;23470:1467;;;23369:1568:::0;;;:::o;30135:160::-;30176:7;30197:15;30214;30233:19;:17;:19::i;:::-;30196:56;;-1:-1:-1;30196:56:0;-1:-1:-1;30270:17:0;30196:56;;30270:17;:::i;:::-;30263:24;;;;30135:160;:::o;28903:268::-;28962:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28962:14:0;28978;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28978:14:0;29005:22;29030:20;29042:7;29030:11;:20::i;:::-;29005:45;;29061:22;29086:41;29098:7;29107;29116:10;:8;:10::i;:::-;29086:11;:41::i;:::-;29146:7;;29061:66;;-1:-1:-1;28903:268:0;;-1:-1:-1;;;28903:268:0:o;3084:191::-;3158:16;3177:6;;-1:-1:-1;;;;;3194:17:0;;;-1:-1:-1;;;;;;3194:17:0;;;;;;3227:40;;3177:6;;;;;;;3227:40;;3158:16;3227:40;3147:128;3084:191;:::o;24949:986::-;16793:16;:23;;-1:-1:-1;;16793:23:0;16812:4;16793:23;;;:16;25100:24:::1;25122:1;25100:20:::0;:24:::1;:::i;:::-;25085:39:::0;-1:-1:-1;25135:17:0::1;25155:27;25085:39:::0;25155:20;:27:::1;:::i;:::-;25135:47:::0;-1:-1:-1;25485:21:0::1;25551:22;25568:4:::0;25551:16:::1;:22::i;:::-;25704:18;25725:38;25748:14:::0;25725:21:::1;:38;:::i;:::-;25704:59;;25823:35;25836:9;25847:10;25823:12;:35::i;:::-;25884:43;::::0;;15773:25:1;;;15829:2;15814:18;;15807:34;;;15857:18;;;15850:34;;;25884:43:0::1;::::0;15761:2:1;15746:18;25884:43:0::1;;;;;;;-1:-1:-1::0;;16839:16:0;:24;;-1:-1:-1;;16839:24:0;;;-1:-1:-1;;;24949:986:0:o;27107:1787::-;14188:6;;-1:-1:-1;;;14188:6:0;;;;14187:7;14179:16;;;;;;27256:6:::1;27235:17;27245:6;27235:9;:17::i;:::-;:27;;27227:66;;;::::0;-1:-1:-1;;;27227:66:0;;16097:2:1;27227:66:0::1;::::0;::::1;16079:21:1::0;16136:2;16116:18;;;16109:30;16175:28;16155:18;;;16148:56;16221:18;;27227:66:0::1;15895:350:1::0;27227:66:0::1;-1:-1:-1::0;;;;;27312:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;27333:15:::1;-1:-1:-1::0;27312:36:0::1;27304:113;;;::::0;;-1:-1:-1;;;27304:113:0;;16452:2:1;27304:113:0::1;::::0;::::1;16434:21:1::0;16471:18;;;16464:30;;;;16530:34;16510:18;;;16503:62;16601:34;16581:18;;;16574:62;16653:19;;27304:113:0::1;16250:428:1::0;27304:113:0::1;-1:-1:-1::0;;;;;27528:30:0;::::1;;::::0;;;:22:::1;:30;::::0;;;;;::::1;;27524:137;;27593:10;;27583:6;:20;;27575:74;;;::::0;-1:-1:-1;;;27575:74:0;;16885:2:1;27575:74:0::1;::::0;::::1;16867:21:1::0;16924:2;16904:18;;;16897:30;16963:34;16943:18;;;16936:62;-1:-1:-1;;;17014:18:1;;;17007:39;17063:19;;27575:74:0::1;16683:405:1::0;27575:74:0::1;27829:7;27825:54;;27853:14;:12;:14::i;:::-;27913:22;27902:7;;:33;27899:111;;27963:1;27952:8;:12:::0;;;27979:15:::1;:19:::0;27899:111:::1;28037:13;-1:-1:-1::0;;;;;28024:26:0::1;:9;-1:-1:-1::0;;;;;28024:26:0::1;;28021:722;;;-1:-1:-1::0;;;;;28066:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;::::1;;:46:::0;::::1;;;-1:-1:-1::0;;;;;;28090:22:0;::::1;;::::0;;;:11:::1;:22;::::0;;;;;::::1;;28089:23;28066:46;28062:597;;;28129:48;28151:6;28159:9;28170:6;28129:21;:48::i;:::-;28021:722;;28062:597;-1:-1:-1::0;;;;;28200:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;::::1;;28199:20;:46:::0;::::1;;;-1:-1:-1::0;;;;;;28223:22:0;::::1;;::::0;;;:11:::1;:22;::::0;;;;;::::1;;28199:46;28195:464;;;28262:46;28282:6;28290:9;28301:6;28262:19;:46::i;28195:464::-;-1:-1:-1::0;;;;;28331:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;::::1;;28330:20;:47:::0;::::1;;;-1:-1:-1::0;;;;;;28355:22:0;::::1;;::::0;;;:11:::1;:22;::::0;;;;;::::1;;28354:23;28330:47;28326:333;;;28394:44;28412:6;28420:9;28431:6;28394:17;:44::i;28326:333::-;-1:-1:-1::0;;;;;28460:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;::::1;;:45:::0;::::1;;;-1:-1:-1::0;;;;;;28483:22:0;::::1;;::::0;;;:11:::1;:22;::::0;;;;;::::1;;28460:45;28456:203;;;28522:48;28544:6;28552:9;28563:6;28522:21;:48::i;28456:203::-;28603:44;28621:6;28629:9;28640:6;28603:17;:44::i;28021:722::-;28689:42;28707:6;28714:9;28724:6;28689:17;:42::i;:::-;28767:7;28763:41;;28789:15;22206::::0;;22195:8;:26;22248:20;;22232:13;:36;22292:17;;22279:10;:30;22151:166;28789:15:::1;27107:1787:::0;;;;:::o;30303:552::-;30400:7;;30436;;30353;;;;;30460:283;30484:9;:16;30480:20;;30460:283;;;30550:7;30526;:21;30534:9;30544:1;30534:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;30534:12:0;30526:21;;;;;;;;;;;;;:31;;:66;;;30585:7;30561;:21;30569:9;30579:1;30569:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;30569:12:0;30561:21;;;;;;;;;;;;;:31;30526:66;30522:97;;;30602:7;;30611;;30594:25;;;;;;;30303:552;;:::o;30522:97::-;30653:7;:21;30661:9;30671:1;30661:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;30661:12:0;30653:21;;;;;;;;;;;;;30644:31;;:7;:31;:::i;:::-;30634:41;;30709:7;:21;30717:9;30727:1;30717:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;30717:12:0;30709:21;;;;;;;;;;;;;30700:31;;:7;:31;:::i;:::-;30690:41;-1:-1:-1;30502:3:0;;;;:::i;:::-;;;;30460:283;;;;30776:7;;30767;;:17;;;;:::i;:::-;30757:7;:27;30753:58;;;30794:7;;30803;;30786:25;;;;;;30303:552;;:::o;30753:58::-;30830:7;;30839;;-1:-1:-1;30303:552:0;-1:-1:-1;30303:552:0:o;29179:420::-;29239:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29239:14:0;29266:22;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29266:22:0;29345:7;29329:13;;29320:7;:23;;;;:::i;:::-;:33;;;;:::i;:::-;29299:18;;;:54;29391:10;;29404:7;;29382:20;;:7;:20;:::i;:::-;:30;;;;:::i;:::-;29364:15;;;:48;29448:8;;29459:7;;29439:18;;:7;:18;:::i;:::-;:28;;;;:::i;:::-;29423:13;;;:44;;;29534:15;;;;29513:18;;;;29504:28;;:7;:28;:::i;:::-;:46;;;;:::i;:::-;:62;;;;:::i;:::-;29478:88;;:7;29179:420;-1:-1:-1;;29179:420:0:o;29607:520::-;29712:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29712:14:0;29739:22;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29739:22:0;29790:21;29799:11;29790:7;:21;:::i;:::-;29772:39;;29840:15;;;;:29;;29857:11;;29840:29;:::i;:::-;29822:15;;;;:47;;;;29896:13;;;:27;;29911:11;;29896:27;:::i;:::-;29880:13;;;;:43;;;;29955:18;;;:32;;29975:11;;29955:32;:::i;:::-;29934:18;;;:53;;;30080:13;;;;30041:15;;;;30024;;30080:13;;29934:53;30024:33;;30041:15;30024:33;:::i;:::-;:54;;;;:::i;:::-;:70;;;;:::i;:::-;29998:23;;;:96;:23;29607:520;-1:-1:-1;;;;29607:520:0:o;25943:602::-;26093:16;;;26107:1;26093:16;;;;;;;;26069:21;;26093:16;;;;;;;;;;-1:-1:-1;26093:16:0;26069:40;;26138:4;26120;26125:1;26120:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;26120:23:0;;;-1:-1:-1;;;;;26120:23:0;;;;;26164:15;-1:-1:-1;;;;;26164:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26154:4;26159:1;26154:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;26154:32:0;;;-1:-1:-1;;;;;26154:32:0;;;;;26199:62;26216:4;26231:15;26249:11;26199:8;:62::i;:::-;-1:-1:-1;;;;;26308:15:0;:66;;26389:11;26415:1;26459:4;26486;26506:20;:15;26524:2;26506:20;:::i;:::-;26308:229;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26553:546;26701:62;26718:4;26733:15;26751:11;26701:8;:62::i;:::-;26806:15;-1:-1:-1;;;;;26806:31:0;;26845:9;26878:4;26898:11;26924:1;26967;27010:7;1860;1887:6;-1:-1:-1;;;;;1887:6:0;;1814:87;27010:7;27060:20;:15;27078:2;27060:20;:::i;:::-;26806:285;;;;;;-1:-1:-1;;;;;;26806:285:0;;;-1:-1:-1;;;;;18693:15:1;;;26806:285:0;;;18675:34:1;18725:18;;;18718:34;;;;18768:18;;;18761:34;;;;18811:18;;;18804:34;;;;18875:15;;;18854:19;;;18847:44;18907:19;;;18900:35;;;;18609:19;;26806:285:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;26553:546;;:::o;21800:339::-;21846:8;;:13;:36;;;;-1:-1:-1;21864:13:0;;:18;21846:36;:55;;;;-1:-1:-1;21886:10:0;;:15;21846:55;21843:68;;;21800:339::o;21843:68::-;21949:8;;;21931:15;:26;21988:10;;;21968:17;:30;22032:13;;;22009:20;:36;-1:-1:-1;22066:12:0;;;;22089:17;;;22117:14;21800:339::o;33071:601::-;33174:22;33198;33224:19;33235:7;33224:10;:19::i;:::-;-1:-1:-1;;;;;33272:15:0;;;;;;:7;:15;;;;;;33173:70;;-1:-1:-1;33173:70:0;-1:-1:-1;33272:25:0;;33289:7;;33272:25;:::i;:::-;-1:-1:-1;;;;;33254:15:0;;;;;;:7;:15;;;;;;;;:43;;;;33343:15;;33326:7;:15;;;;;;;:33;;33343:15;33326:33;:::i;:::-;-1:-1:-1;;;;;33308:15:0;;;;;;;:7;:15;;;;;;;;:51;;;;33411:23;;;33391:18;;;;;;;;;;:44;;33411:23;33391:44;:::i;:::-;-1:-1:-1;;;;;33370:18:0;;;;;;:7;:18;;;;;:65;33472:18;;;;33449:42;;33464:6;;33449:14;:42::i;:::-;33502:45;33514:7;:15;;;33531:7;:15;;;33502:11;:45::i;:::-;33558:28;33564:6;33572:7;:13;;;33558:5;:28::i;:::-;33619:9;-1:-1:-1;;;;;33602:52:0;33611:6;-1:-1:-1;;;;;33602:52:0;-1:-1:-1;;;;;;;;;;;33630:7:0;:23;;;33602:52;;;;3636:25:1;;3624:2;3609:18;;3490:177;33602:52:0;;;;;;;;33162:510;;33071:601;;;:::o;32438:619::-;32539:22;32563;32589:19;32600:7;32589:10;:19::i;:::-;32654:15;;-1:-1:-1;;;;;32637:15:0;;32654;32637;;;:7;:15;;;;;;32538:70;;-1:-1:-1;32538:70:0;;-1:-1:-1;32637:33:0;;;:::i;:::-;-1:-1:-1;;;;;32619:15:0;;;;;;;:7;:15;;;;;;;;:51;;;;32722:23;;32702:18;;;;;:7;:18;;;;;;;:44;;32722:23;32702:44;:::i;:::-;-1:-1:-1;;;;;32681:18:0;;;;;;:7;:18;;;;;;;;:65;;;;32798:23;;;;32778:7;:18;;;;;;;:44;;32798:23;32778:44;:::i;31551:530::-;31650:22;31674;31700:19;31711:7;31700:10;:19::i;:::-;31765:15;;-1:-1:-1;;;;;31748:15:0;;31765;31748;;;:7;:15;;;;;;31649:70;;-1:-1:-1;31649:70:0;;-1:-1:-1;31748:33:0;;;:::i;30867:672::-;30970:22;30994;31020:19;31031:7;31020:10;:19::i;:::-;-1:-1:-1;;;;;31068:15:0;;;;;;:7;:15;;;;;;30969:70;;-1:-1:-1;30969:70:0;-1:-1:-1;31068:25:0;;31085:7;;31068:25;:::i;:::-;-1:-1:-1;;;;;31050:15:0;;;;;;:7;:15;;;;;;;;:43;;;;31139:15;;31122:7;:15;;;;;;;:33;;31139:15;31122:33;:::i;32088:336::-;32189:22;32215:19;32226:7;32215:10;:19::i;:::-;32280:15;;-1:-1:-1;;;;;32263:15:0;;32280;32263;;;:7;:15;;;;;;32186:48;;-1:-1:-1;32263:33:0;;-1:-1:-1;32280:15:0;32263:33;:::i;:::-;-1:-1:-1;;;;;32245:15:0;;;;;;;:7;:15;;;;;;:51;;;;32348:15;;32328:18;;;;;;;;;;:36;;32348:15;32328:36;:::i;:::-;-1:-1:-1;;;;;32307:18:0;;;;;;;:7;:18;;;;;;;:57;;;;32380:36;;;;;;-1:-1:-1;;;;;;;;;;;32380:36:0;;;32408:7;3636:25:1;;3624:2;3609:18;;3490:177;32380:36:0;;;;;;;;32175:249;32088:336;;;:::o;34586:487::-;34668:15;;34665:401;;34700:19;34723:10;:8;:10::i;:::-;34700:33;-1:-1:-1;34748:18:0;34769:24;34700:33;34769:10;:24;:::i;:::-;34849:4;34833:22;;;;:7;:22;;;;;;34748:45;;-1:-1:-1;34833:35:0;;34748:45;;34833:35;:::i;:::-;34824:4;34808:22;;;;:7;:22;;;;;;;;:60;;;;34886:11;:26;;;;;;34883:108;;;34972:4;34956:22;;;;:7;:22;;;;;;:35;;34980:10;;34956:35;:::i;:::-;34947:4;34931:22;;;;:7;:22;;;;;:60;34883:108;35011:43;;3636:25:1;;;35036:4:0;;-1:-1:-1;;;;;35011:43:0;;;-1:-1:-1;;;;;;;;;;;35011:43:0;3624:2:1;3609:18;35011:43:0;3490:177:1;21389:141:0;21476:4;21467:7;;:14;;;;:::i;:::-;21457:7;:24;21505:10;;:17;;21517:4;;21505:17;:::i;:::-;21492:10;:30;-1:-1:-1;;21389:141:0:o;33680:230::-;33756:12;33779:10;:8;:10::i;:::-;33771:19;;:6;:19;:::i;:::-;33756:34;;33812:6;33801:7;;:17;;;;;;;:::i;:::-;;;;;;;;33840:7;33829;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;33865:37:0;;3636:25:1;;;33891:1:0;;-1:-1:-1;;;;;33865:37:0;;;-1:-1:-1;;;;;;;;;;;33865:37:0;3624:2:1;3609:18;33865:37:0;3490:177:1;293:127;354:10;349:3;345:20;342:1;335:31;385:4;382:1;375:15;409:4;406:1;399:15;425:275;496:2;490:9;561:2;542:13;;-1:-1:-1;;538:27:1;526:40;;596:18;581:34;;617:22;;;578:62;575:88;;;643:18;;:::i;:::-;679:2;672:22;425:275;;-1:-1:-1;425:275:1:o;705:183::-;765:4;798:18;790:6;787:30;784:56;;;820:18;;:::i;:::-;-1:-1:-1;865:1:1;861:14;877:4;857:25;;705:183::o;893:131::-;-1:-1:-1;;;;;968:31:1;;958:42;;948:70;;1014:1;1011;1004:12;1029:737;1083:5;1136:3;1129:4;1121:6;1117:17;1113:27;1103:55;;1154:1;1151;1144:12;1103:55;1190:6;1177:20;1216:4;1240:60;1256:43;1296:2;1256:43;:::i;:::-;1240:60;:::i;:::-;1334:15;;;1420:1;1416:10;;;;1404:23;;1400:32;;;1365:12;;;;1444:15;;;1441:35;;;1472:1;1469;1462:12;1441:35;1508:2;1500:6;1496:15;1520:217;1536:6;1531:3;1528:15;1520:217;;;1616:3;1603:17;1633:31;1658:5;1633:31;:::i;:::-;1677:18;;1715:12;;;;1553;;1520:217;;;-1:-1:-1;1755:5:1;1029:737;-1:-1:-1;;;;;;1029:737:1:o;1771:348::-;1855:6;1908:2;1896:9;1887:7;1883:23;1879:32;1876:52;;;1924:1;1921;1914:12;1876:52;1964:9;1951:23;1997:18;1989:6;1986:30;1983:50;;;2029:1;2026;2019:12;1983:50;2052:61;2105:7;2096:6;2085:9;2081:22;2052:61;:::i;:::-;2042:71;1771:348;-1:-1:-1;;;;1771:348:1:o;2124:597::-;2236:4;2265:2;2294;2283:9;2276:21;2326:6;2320:13;2369:6;2364:2;2353:9;2349:18;2342:34;2394:1;2404:140;2418:6;2415:1;2412:13;2404:140;;;2513:14;;;2509:23;;2503:30;2479:17;;;2498:2;2475:26;2468:66;2433:10;;2404:140;;;2562:6;2559:1;2556:13;2553:91;;;2632:1;2627:2;2618:6;2607:9;2603:22;2599:31;2592:42;2553:91;-1:-1:-1;2705:2:1;2684:15;-1:-1:-1;;2680:29:1;2665:45;;;;2712:2;2661:54;;2124:597;-1:-1:-1;;;2124:597:1:o;2726:315::-;2794:6;2802;2855:2;2843:9;2834:7;2830:23;2826:32;2823:52;;;2871:1;2868;2861:12;2823:52;2910:9;2897:23;2929:31;2954:5;2929:31;:::i;:::-;2979:5;3031:2;3016:18;;;;3003:32;;-1:-1:-1;;;2726:315:1:o;3238:247::-;3297:6;3350:2;3338:9;3329:7;3325:23;3321:32;3318:52;;;3366:1;3363;3356:12;3318:52;3405:9;3392:23;3424:31;3449:5;3424:31;:::i;3906:456::-;3983:6;3991;3999;4052:2;4040:9;4031:7;4027:23;4023:32;4020:52;;;4068:1;4065;4058:12;4020:52;4107:9;4094:23;4126:31;4151:5;4126:31;:::i;:::-;4176:5;-1:-1:-1;4233:2:1;4218:18;;4205:32;4246:33;4205:32;4246:33;:::i;:::-;3906:456;;4298:7;;-1:-1:-1;;;4352:2:1;4337:18;;;;4324:32;;3906:456::o;4367:160::-;4432:20;;4488:13;;4481:21;4471:32;;4461:60;;4517:1;4514;4507:12;4532:180;4588:6;4641:2;4629:9;4620:7;4616:23;4612:32;4609:52;;;4657:1;4654;4647:12;4609:52;4680:26;4696:9;4680:26;:::i;4717:180::-;4776:6;4829:2;4817:9;4808:7;4804:23;4800:32;4797:52;;;4845:1;4842;4835:12;4797:52;-1:-1:-1;4868:23:1;;4717:180;-1:-1:-1;4717:180:1:o;5091:248::-;5156:6;5164;5217:2;5205:9;5196:7;5192:23;5188:32;5185:52;;;5233:1;5230;5223:12;5185:52;5269:9;5256:23;5246:33;;5298:35;5329:2;5318:9;5314:18;5298:35;:::i;:::-;5288:45;;5091:248;;;;;:::o;5552:269::-;5609:6;5662:2;5650:9;5641:7;5637:23;5633:32;5630:52;;;5678:1;5675;5668:12;5630:52;5717:9;5704:23;5767:4;5760:5;5756:16;5749:5;5746:27;5736:55;;5787:1;5784;5777:12;5826:1138;5944:6;5952;6005:2;5993:9;5984:7;5980:23;5976:32;5973:52;;;6021:1;6018;6011:12;5973:52;6061:9;6048:23;6090:18;6131:2;6123:6;6120:14;6117:34;;;6147:1;6144;6137:12;6117:34;6170:61;6223:7;6214:6;6203:9;6199:22;6170:61;:::i;:::-;6160:71;;6250:2;6240:12;;6305:2;6294:9;6290:18;6277:32;6334:2;6324:8;6321:16;6318:36;;;6350:1;6347;6340:12;6318:36;6373:24;;;-1:-1:-1;6428:4:1;6420:13;;6416:27;-1:-1:-1;6406:55:1;;6457:1;6454;6447:12;6406:55;6493:2;6480:16;6516:60;6532:43;6572:2;6532:43;:::i;6516:60::-;6610:15;;;6692:1;6688:10;;;;6680:19;;6676:28;;;6641:12;;;;6716:19;;;6713:39;;;6748:1;6745;6738:12;6713:39;6772:11;;;;6792:142;6808:6;6803:3;6800:15;6792:142;;;6874:17;;6862:30;;6825:12;;;;6912;;;;6792:142;;;6953:5;6943:15;;;;;;;5826:1138;;;;;:::o;6969:388::-;7037:6;7045;7098:2;7086:9;7077:7;7073:23;7069:32;7066:52;;;7114:1;7111;7104:12;7066:52;7153:9;7140:23;7172:31;7197:5;7172:31;:::i;:::-;7222:5;-1:-1:-1;7279:2:1;7264:18;;7251:32;7292:33;7251:32;7292:33;:::i;:::-;7344:7;7334:17;;;6969:388;;;;;:::o;7362:356::-;7564:2;7546:21;;;7583:18;;;7576:30;7642:34;7637:2;7622:18;;7615:62;7709:2;7694:18;;7362:356::o;7723:127::-;7784:10;7779:3;7775:20;7772:1;7765:31;7815:4;7812:1;7805:15;7839:4;7836:1;7829:15;7855:127;7916:10;7911:3;7907:20;7904:1;7897:31;7947:4;7944:1;7937:15;7971:4;7968:1;7961:15;7987:135;8026:3;-1:-1:-1;;8047:17:1;;8044:43;;;8067:18;;:::i;:::-;-1:-1:-1;8114:1:1;8103:13;;7987:135::o;8127:380::-;8206:1;8202:12;;;;8249;;;8270:61;;8324:4;8316:6;8312:17;8302:27;;8270:61;8377:2;8369:6;8366:14;8346:18;8343:38;8340:161;;;8423:10;8418:3;8414:20;8411:1;8404:31;8458:4;8455:1;8448:15;8486:4;8483:1;8476:15;8340:161;;8127:380;;;:::o;9332:217::-;9372:1;9398;9388:132;;9442:10;9437:3;9433:20;9430:1;9423:31;9477:4;9474:1;9467:15;9505:4;9502:1;9495:15;9388:132;-1:-1:-1;9534:9:1;;9332:217::o;9910:125::-;9950:4;9978:1;9975;9972:8;9969:34;;;9983:18;;:::i;:::-;-1:-1:-1;10020:9:1;;9910:125::o;10040:127::-;10101:10;10096:3;10092:20;10089:1;10082:31;10132:4;10129:1;10122:15;10156:4;10153:1;10146:15;10585:128;10625:3;10656:1;10652:6;10649:1;10646:13;10643:39;;;10662:18;;:::i;:::-;-1:-1:-1;10698:9:1;;10585:128::o;11473:168::-;11513:7;11579:1;11575;11571:6;11567:14;11564:1;11561:21;11556:1;11549:9;11542:17;11538:45;11535:71;;;11586:18;;:::i;:::-;-1:-1:-1;11626:9:1;;11473:168::o;17093:251::-;17163:6;17216:2;17204:9;17195:7;17191:23;17187:32;17184:52;;;17232:1;17229;17222:12;17184:52;17264:9;17258:16;17283:31;17308:5;17283:31;:::i;17349:980::-;17611:4;17659:3;17648:9;17644:19;17690:6;17679:9;17672:25;17716:2;17754:6;17749:2;17738:9;17734:18;17727:34;17797:3;17792:2;17781:9;17777:18;17770:31;17821:6;17856;17850:13;17887:6;17879;17872:22;17925:3;17914:9;17910:19;17903:26;;17964:2;17956:6;17952:15;17938:29;;17985:1;17995:195;18009:6;18006:1;18003:13;17995:195;;;18074:13;;-1:-1:-1;;;;;18070:39:1;18058:52;;18165:15;;;;18130:12;;;;18106:1;18024:9;17995:195;;;-1:-1:-1;;;;;;;18246:32:1;;;;18241:2;18226:18;;18219:60;-1:-1:-1;;;18310:3:1;18295:19;18288:35;18207:3;17349:980;-1:-1:-1;;;17349:980:1:o;18946:306::-;19034:6;19042;19050;19103:2;19091:9;19082:7;19078:23;19074:32;19071:52;;;19119:1;19116;19109:12;19071:52;19148:9;19142:16;19132:26;;19198:2;19187:9;19183:18;19177:25;19167:35;;19242:2;19231:9;19227:18;19221:25;19211:35;;18946:306;;;;;:::o

Swarm Source

ipfs://49cc2a32d77d6ef9d894aed68401e25c38bca046c7597cd6f224b96a4b3737e3
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading

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