Contract 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e7 7

Contract Overview

Balance:
21.554440085678531806 AVAX

AVAX Value:
$199.67 (@ $9.26/AVAX)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x260ea22cb5efefa3054225f0ab4d9486bb137276449e662ec92841db00b1d941Approve319503332023-06-29 10:15:2291 days 13 hrs ago0x1217631130d25485298b5e98a96bbca2c1148263 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001226351718 26.528331715
0x5b8d5446fea5f210dc23a86706bb71b1da186c485fdfd31ee5f1b44cba0380dfApprove307746352023-06-01 14:34:32119 days 9 hrs ago0x0cd4fd1d7a3970ab8479b5eb2fa728eddaad4df1 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001247832 27
0x05912f672711ae3e45317ca4df9f38fba36afd32aea7936aa734feb68ca328daApprove293830052023-04-29 18:24:20152 days 5 hrs ago0xbe85c096d96c364360b2e43f1ee342080329d4d6 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.00135915295 29.196445913
0x97991e400ca26f77f840f0ab26c38d02e1f3009dfb55e2d4b53483afd7c20042Approve293826012023-04-29 18:10:40152 days 5 hrs ago0xbe85c096d96c364360b2e43f1ee342080329d4d6 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001362596842 29.270425391
0x36b70e9af4239d189580bd5ea355cd6ff011b487eac1ce32ac314da13272a2d8Approve293819412023-04-29 17:48:00152 days 6 hrs ago0xbe85c096d96c364360b2e43f1ee342080329d4d6 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001343372711 29.067264839
0xa016900952349569cbbedb39fe3b93914f31423edf1ea5622427cde70016eab0Approve288374342023-04-16 21:40:33165 days 2 hrs ago0x7ee6f42490e573072dc93a7172a91925ceeff1d0 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001234159633 26.70416378
0x56f35cda4aeb69d29279649ad3fd01d842d3d5f7137cc67d2896580ed04ff581Approve285905232023-04-11 3:34:27170 days 20 hrs ago0x2ed4e03c3e54e3f0d6e395b9efd43987968a4826 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001224724 26.5
0xc340e78c2768f1654ffc79015f67d1bb8d91f45a860f7643cfccd1c2003edb17Approve285168432023-04-09 10:12:24172 days 13 hrs ago0x600d08d97367d9fc4a2c1eaee417f5ad0f55c8ab IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0007267 25
0xcd05f1cba193dedea8cd2607cbf3d98552a7c3ab76f382882ada3fc46754574eTransfer268266402023-02-28 3:29:02212 days 20 hrs ago0x2ed4e03c3e54e3f0d6e395b9efd43987968a4826 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0027425 27.425
0xcb0c1b0207e2db0d02f482e154f65219367405c6b2fd16939436df3e50296051Transfer268265962023-02-28 3:27:33212 days 20 hrs ago0x2ed4e03c3e54e3f0d6e395b9efd43987968a4826 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.002735225 27.35225
0xb188e70378fd21d90d786bba2d1eaffc66287b19aef46e58c29e7d276cfabebeApprove267502552023-02-26 7:54:47214 days 15 hrs ago0xd440f3b6d5a95486e17ec9ed30a13d649b921764 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0011638 25
0xf257b5d8af772636cbeb3a37ccdd951bd2e4729e3454f744236796a4d7770155Approve267501772023-02-26 7:52:08214 days 16 hrs ago0xd440f3b6d5a95486e17ec9ed30a13d649b921764 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.000780478 26.5
0xcc6b7c54cc2e7e767981311c194701ecae6795cbc0ab71e5166783b08b37fab8Approve267501522023-02-26 7:51:15214 days 16 hrs ago0xd440f3b6d5a95486e17ec9ed30a13d649b921764 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001261177618 27.2816825
0xac864fa8658450155549872ea08bd2ccc70c10c4381acba57c643f74a715d8e9Transfer266251092023-02-23 9:05:12217 days 14 hrs ago0xc4f1f4115d12d63dd0a5c70aa90200b5686ecbcf IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.00265 26.5
0xea30d7be8d2861794447e838658406e28d9f9919728c0c74b6754667d041de74Transfer266250382023-02-23 9:02:49217 days 14 hrs ago0xc4f1f4115d12d63dd0a5c70aa90200b5686ecbcf IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.00265 26.5
0x3ca6dfac91746842e803274f16019dd29b59408e4da4811538efc163f61a1f92Approve265185752023-02-20 21:39:02220 days 2 hrs ago0xec1d5581be7041804a62fafceaef3ab37d312067 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001256904 27
0xdceedcf10ff6c54107e5771eaaaef39a42e6df97f5e83efcf2c3bb808cf7239eApprove264780032023-02-19 22:59:02221 days 54 mins ago0x186ead3acc439f3d68c47b901605f9761c047ff8 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001225042 26.5
0x169302fa8ecf03fe0528611c16be1e391e1bf43a5d5f94f838a6129c9b93a963Approve260205042023-02-09 3:54:05231 days 19 hrs ago0xf2a236e93821cd8b4781c1bd33dda37a380d3a6a IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001225042 26.5
0x9ce6a3b96a8b2eaa444fc1dbd0fb164c80a3e42aacf530480332cdf9c9fe80bfApprove253074712023-01-23 10:31:37248 days 13 hrs ago0x7c2b444f2ea6d61162947488f07f1f4e1eb39cea IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.00121035226
0x9a8b180167b26e337e5a3225dcfd9e19613e09a0c56733e69a9bc20bfdd6088aApprove253072282023-01-23 10:23:19248 days 13 hrs ago0x7c2b444f2ea6d61162947488f07f1f4e1eb39cea IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0012801827.5
0x56c390dda1de1fc7bb5c796ddcd5c7becc128063784139d6843ab5bfe9ae694bApprove253070262023-01-23 10:16:29248 days 13 hrs ago0x7c2b444f2ea6d61162947488f07f1f4e1eb39cea IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0012706127.5
0x685e3f8404a4f37db3f3c48b27db300979856a074233864b10823195e0d0643eApprove252227852023-01-21 10:31:23250 days 13 hrs ago0xad068097d670d4595e7db59e8789c105efbcaa1e IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.004073396137 87.502065167
0xcf8142ec4bf10495bc0dbb8a10d4fdffe1f2bb3fa9df296bf5ef4e76532c3158Approve252226682023-01-21 10:27:41250 days 13 hrs ago0xad068097d670d4595e7db59e8789c105efbcaa1e IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.004287876623 147.268739659
0xf8fe839e2107e3b225e741cc3c6c5c4014361468224bea7086a812bc2ae3d3f2Approve252225782023-01-21 10:25:36250 days 13 hrs ago0xad068097d670d4595e7db59e8789c105efbcaa1e IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001224724 26.5
0xff6d4e868a1387a17335220686a08121186ceabf7333a655a4905089d65496d0Approve251071482023-01-18 16:41:44253 days 7 hrs ago0xeca6dc8aa3557220e2933f9bb3d5448b9bf6942c IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.000865480338 29.725248606
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xd2b21b2bb85691694f48052572cdedd62a1d70d53ae868106930d4d6e5f03ec4229207552022-11-27 20:03:56305 days 3 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.07748493326265676 AVAX
0xd2b21b2bb85691694f48052572cdedd62a1d70d53ae868106930d4d6e5f03ec4229207552022-11-27 20:03:56305 days 3 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.030993973305062704 AVAX
0xd2b21b2bb85691694f48052572cdedd62a1d70d53ae868106930d4d6e5f03ec4229207552022-11-27 20:03:56305 days 3 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.108478906567719465 AVAX
0xd2b21b2bb85691694f48052572cdedd62a1d70d53ae868106930d4d6e5f03ec4229207552022-11-27 20:03:56305 days 3 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e7 Trader Joe: Router0.021686868584332913 AVAX
0xd2b21b2bb85691694f48052572cdedd62a1d70d53ae868106930d4d6e5f03ec4229207552022-11-27 20:03:56305 days 3 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.021686868584332913 AVAX
0x735825f537feedaf0a51a05901b4207b216fae7f678551c89094511596775fa4228427602022-11-25 23:13:44307 days 39 mins ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.030993973417046125 AVAX
0x735825f537feedaf0a51a05901b4207b216fae7f678551c89094511596775fa4228427602022-11-25 23:13:44307 days 39 mins ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.108478906959661439 AVAX
0x735825f537feedaf0a51a05901b4207b216fae7f678551c89094511596775fa4228427602022-11-25 23:13:44307 days 39 mins ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e7 Trader Joe: Router0.021686868528113039 AVAX
0x735825f537feedaf0a51a05901b4207b216fae7f678551c89094511596775fa4228427602022-11-25 23:13:44307 days 39 mins ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.021686868528113039 AVAX
0xe02dcc2f37e275d583debf664b1974ec3a0961edd7bf32d109aabc6f4a84bea5228342992022-11-25 18:21:50307 days 5 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.077484933957462884 AVAX
0xe02dcc2f37e275d583debf664b1974ec3a0961edd7bf32d109aabc6f4a84bea5228342992022-11-25 18:21:50307 days 5 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.030993973582985153 AVAX
0xe02dcc2f37e275d583debf664b1974ec3a0961edd7bf32d109aabc6f4a84bea5228342992022-11-25 18:21:50307 days 5 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.108478907540448038 AVAX
0xe02dcc2f37e275d583debf664b1974ec3a0961edd7bf32d109aabc6f4a84bea5228342992022-11-25 18:21:50307 days 5 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e7 Trader Joe: Router0.02168686831203257 AVAX
0xe02dcc2f37e275d583debf664b1974ec3a0961edd7bf32d109aabc6f4a84bea5228342992022-11-25 18:21:50307 days 5 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.02168686831203257 AVAX
0xccc7e3009183ae274cbe76dba6b4d1981542b6dc58fcbfee840de3957b793237228342482022-11-25 18:19:59307 days 5 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.077484933957462884 AVAX
0xccc7e3009183ae274cbe76dba6b4d1981542b6dc58fcbfee840de3957b793237228342482022-11-25 18:19:59307 days 5 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.030993973582985153 AVAX
0xccc7e3009183ae274cbe76dba6b4d1981542b6dc58fcbfee840de3957b793237228342482022-11-25 18:19:59307 days 5 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.108478907540448038 AVAX
0xccc7e3009183ae274cbe76dba6b4d1981542b6dc58fcbfee840de3957b793237228342482022-11-25 18:19:59307 days 5 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e7 Trader Joe: Router0.02168686831203257 AVAX
0xccc7e3009183ae274cbe76dba6b4d1981542b6dc58fcbfee840de3957b793237228342482022-11-25 18:19:59307 days 5 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.02168686831203257 AVAX
0xd6acf5530e6519427ec90d730d75f6c7e2d7a0b02fdb60aef0e33f60a0ff01a9228202772022-11-25 10:21:47307 days 13 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.077484933596617355 AVAX
0xd6acf5530e6519427ec90d730d75f6c7e2d7a0b02fdb60aef0e33f60a0ff01a9228202772022-11-25 10:21:47307 days 13 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.030993973438646942 AVAX
0xd6acf5530e6519427ec90d730d75f6c7e2d7a0b02fdb60aef0e33f60a0ff01a9228202772022-11-25 10:21:47307 days 13 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.108478907035264297 AVAX
0xd6acf5530e6519427ec90d730d75f6c7e2d7a0b02fdb60aef0e33f60a0ff01a9228202772022-11-25 10:21:47307 days 13 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e7 Trader Joe: Router0.021686868427136217 AVAX
0xd6acf5530e6519427ec90d730d75f6c7e2d7a0b02fdb60aef0e33f60a0ff01a9228202772022-11-25 10:21:47307 days 13 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.021686868427136217 AVAX
0x5dbf83756491fe2e3cedc42438506a53ce91a3b869115a4a40724bf06c87f802225100802022-11-17 23:46:14315 days 7 mins ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.0759387906080608 AVAX
[ Download CSV Export 
Index Block
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Stash

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at snowtrace.io on 2022-05-20
*/

// Dependency file: @openzeppelin/contracts/token/ERC20/IERC20.sol

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

// pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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


// Dependency file: @openzeppelin/contracts/utils/Context.sol

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

// pragma solidity ^0.8.0;

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

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


// Dependency file: @openzeppelin/contracts/access/Ownable.sol

// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

// pragma solidity ^0.8.0;

// import "@openzeppelin/contracts/utils/Context.sol";

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

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

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

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


// Dependency file: @openzeppelin/contracts/utils/math/SafeMath.sol

// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)

// pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

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

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

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

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

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}


// Dependency file: contracts/interfaces/IJoeFactory.sol

// pragma solidity ^0.8.13;

interface IJoeFactory {
  function createPair(address tokenA, address tokenB) external returns (address pair);
}


// Dependency file: contracts/interfaces/IJoePair.sol

// pragma solidity ^0.8.13;

interface IJoePair {
  function sync() external;
}


// Dependency file: contracts/interfaces/IJoeRouter.sol

// pragma solidity ^0.8.13;

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

  function WAVAX() external pure returns (address);

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

  function addLiquidityAVAX(
    address token,
    uint256 amountTokenDesired,
    uint256 amountTokenMin,
    uint256 amountAVAXMin,
    address to,
    uint256 deadline
  )
    external
    payable
    returns (
      uint256 amountToken,
      uint256 amountAVAX,
      uint256 liquidity
    );

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

  function swapExactAVAXForTokensSupportingFeeOnTransferTokens(
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external payable;

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


// Root file: contracts/Stash.sol

pragma solidity ^0.8.13;

// import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
// import "@openzeppelin/contracts/access/Ownable.sol";
// import "@openzeppelin/contracts/utils/math/SafeMath.sol";

// import "contracts/interfaces/IJoeFactory.sol";
// import "contracts/interfaces/IJoePair.sol";
// import "contracts/interfaces/IJoeRouter.sol";

/**
 * @title STASH ERC20 token
 * @dev This is part of an implementation of the Stash protocol.
 *      STASH is a normal ERC20 token, but its supply can be adjusted by splitting and
 *      combining tokens proportionally across all wallets.
 *
 *      Stash balances are internally represented with a hidden denomination, 'gons'.
 *      We support splitting the currency in expansion and combining the currency on contraction by
 *      changing the exchange rate between the hidden 'gons' and the public 'fragments'.
 */
contract Stash is IERC20, Ownable {
  using SafeMath for uint256;

  string private constant _name = "Stash";
  string private constant _symbol = "STASH";
  uint8 private constant _decimals = 5;

  uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 500 * 10**3 * 10**_decimals;
  uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);
  uint256 private constant MAX_SUPPLY = 500 * 10**7 * 10**_decimals;

  address constant DEAD = 0x000000000000000000000000000000000000dEaD;
  address constant ZERO = 0x0000000000000000000000000000000000000000;

  uint256 public constant ADD_LIQUIDITY_PERIOD = 2 days;
  uint256 public constant MAX_UINT256 = ~uint256(0);
  uint8 public constant RATE_DECIMALS = 7;
  uint256 public constant REBASE_PERIOD = 15 minutes;

  bool private inSwap = false;
  uint256 private _totalSupply;
  uint256 private _gonsPerFragment;
  mapping(address => bool) private _isFeeExempt;
  mapping(address => uint256) private _gonBalances;
  mapping(address => mapping(address => uint256)) private _allowedFragments;

  uint256 public basicRebaseRate = 2374;

  uint256 public liquidityFee = 40;
  uint256 public treasuryFee = 20;
  uint256 public stashInsuranceFundFee = 50;
  uint256 public sellFee = 30;
  uint256 public burnRate = 20;
  uint256 public totalFee = liquidityFee.add(treasuryFee).add(stashInsuranceFundFee).add(burnRate);
  uint256 public feeDenominator = 1000;

  bool public autoRebase;
  bool public autoAddLiquidity;
  bool public autoSwapback;

  uint256 public initRebaseStartTime;
  uint256 public lastRebasedTime;
  uint256 public lastAddLiquidityTime;

  address public autoLiquidityReceiver;
  address public treasuryReceiver;
  address public stashInsuranceFundReceiver;
  address public pair;
  IJoeRouter public router;
  mapping(address => bool) public blacklist;

  event LogRebase(uint256 indexed epoch, uint256 lastTotalSupply, uint256 currentTotalSupply);

  modifier validRecipient(address to) {
    require(to != address(0x0));
    _;
  }

  modifier swapping() {
    inSwap = true;
    _;
    inSwap = false;
  }

  constructor(
    address _joeRouter,
    address _autoLiquidityReceiver,
    address _treasuryReceiver,
    address _stashInsuranceFundReceiver
  ) {
    router = IJoeRouter(_joeRouter);
    pair = IJoeFactory(router.factory()).createPair(router.WAVAX(), address(this));

    autoLiquidityReceiver = _autoLiquidityReceiver;
    treasuryReceiver = _treasuryReceiver;
    stashInsuranceFundReceiver = _stashInsuranceFundReceiver;

    _allowedFragments[address(this)][address(router)] = MAX_UINT256;

    _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
    _gonBalances[treasuryReceiver] = TOTAL_GONS;
    _gonsPerFragment = TOTAL_GONS.div(_totalSupply);
    _isFeeExempt[treasuryReceiver] = true;
    _isFeeExempt[address(this)] = true;

    emit Transfer(address(0x0), treasuryReceiver, _totalSupply);
  }

  /**
   * @dev Get current rebase rate of Stash tokens.
   * Rebase rate will reduce as time goes by
   */
  function getRebaseRate() public view returns (uint256 rebaseRate) {
    uint256 deltaTimeFromInit = block.timestamp - initRebaseStartTime;

    if (deltaTimeFromInit < (365 days)) {
      rebaseRate = basicRebaseRate;
    } else if (deltaTimeFromInit >= (365 days)) {
      rebaseRate = 211;
    } else if (deltaTimeFromInit >= ((15 * 365 days) / 10)) {
      rebaseRate = 14;
    } else if (deltaTimeFromInit >= (7 * 365 days)) {
      rebaseRate = 2;
    }
  }

  function setBasicRebaseRate(uint256 value) external onlyOwner {
    basicRebaseRate = value;
  }

  /**
   * @dev Notifies Stash contract about a new rebase cycle
   * After a rebase, the totalSupply should increase proportionally to the current rebase rate.
   */
  function rebase() internal {
    if (inSwap) return;
    uint256 deltaTime = block.timestamp - lastRebasedTime;
    uint256 times = deltaTime.div(REBASE_PERIOD);
    uint256 epoch = times.mul(15);
    uint256 rebaseRate = getRebaseRate();

    uint256 lastTotalSupply = _totalSupply;
    for (uint256 i = 0; i < times; i++) {
      _totalSupply = _totalSupply.mul((10**RATE_DECIMALS).add(rebaseRate)).div(10**RATE_DECIMALS);
    }

    _gonsPerFragment = TOTAL_GONS.div(_totalSupply);
    lastRebasedTime = lastRebasedTime.add(times.mul(REBASE_PERIOD));

    IJoePair(pair).sync();

    emit LogRebase(epoch, lastTotalSupply, _totalSupply);
  }

  function transfer(address to, uint256 value) external override validRecipient(to) returns (bool) {
    _transferFrom(msg.sender, to, value);
    return true;
  }

  function transferFrom(
    address from,
    address to,
    uint256 value
  ) external override validRecipient(to) returns (bool) {
    uint256 currentAllowance = allowance(from, msg.sender);
    if (currentAllowance != MAX_UINT256) {
      _allowedFragments[from][msg.sender] = currentAllowance.sub(value, "ERC20: insufficient allowance");
    }
    _transferFrom(from, to, value);
    return true;
  }

  function _basicTransfer(
    address from,
    address to,
    uint256 amount
  ) internal returns (bool) {
    uint256 gonAmount = amount.mul(_gonsPerFragment);
    _gonBalances[from] = _gonBalances[from].sub(gonAmount, "ERC20: transfer amount exceeds balance");
    _gonBalances[to] = _gonBalances[to].add(gonAmount);
    return true;
  }

  function _transferFrom(
    address sender,
    address recipient,
    uint256 amount
  ) internal returns (bool) {
    require(!blacklist[sender] && !blacklist[recipient], "ADDRESS_IN_BLACKLIST");

    if (inSwap) {
      return _basicTransfer(sender, recipient, amount);
    }
    if (shouldRebase()) {
      rebase();
    }

    if (shouldAddLiquidity()) {
      addLiquidity();
    }

    if (shouldSwapBack()) {
      swapBack();
    }

    uint256 gonAmount = amount.mul(_gonsPerFragment);
    _gonBalances[sender] = _gonBalances[sender].sub(gonAmount, "ERC20: transfer amount exceeds balance");
    uint256 gonAmountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, gonAmount) : gonAmount;
    _gonBalances[recipient] = _gonBalances[recipient].add(gonAmountReceived);

    emit Transfer(sender, recipient, gonAmountReceived.div(_gonsPerFragment));
    return true;
  }

  function takeFee(
    address sender,
    address recipient,
    uint256 gonAmount
  ) internal returns (uint256) {
    uint256 _totalFee = totalFee;
    uint256 _treasuryFee = treasuryFee;

    if (recipient == pair) {
      _totalFee = totalFee.add(sellFee);
      _treasuryFee = treasuryFee.add(sellFee);
    }

    uint256 feeAmount = gonAmount.div(feeDenominator).mul(_totalFee);

    // burn tokens
    _gonBalances[DEAD] = _gonBalances[DEAD].add(gonAmount.div(feeDenominator).mul(burnRate));
    _gonBalances[address(this)] = _gonBalances[address(this)].add(gonAmount.div(feeDenominator).mul(_treasuryFee.add(stashInsuranceFundFee)));
    _gonBalances[autoLiquidityReceiver] = _gonBalances[autoLiquidityReceiver].add(gonAmount.div(feeDenominator).mul(liquidityFee));

    emit Transfer(sender, address(this), feeAmount.div(_gonsPerFragment));
    return gonAmount.sub(feeAmount);
  }

  function addLiquidity() internal swapping {
    uint256 autoLiquidityAmount = _gonBalances[autoLiquidityReceiver].div(_gonsPerFragment);
    _gonBalances[address(this)] = _gonBalances[address(this)].add(_gonBalances[autoLiquidityReceiver]);
    _gonBalances[autoLiquidityReceiver] = 0;
    uint256 amountToLiquify = autoLiquidityAmount.div(2);
    uint256 amountToSwap = autoLiquidityAmount.sub(amountToLiquify);

    if (amountToSwap == 0) {
      return;
    }
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = router.WAVAX();

    uint256 balanceBefore = address(this).balance;

    router.swapExactTokensForAVAXSupportingFeeOnTransferTokens(amountToSwap, 0, path, address(this), block.timestamp);

    uint256 amountAVAXLiquidity = address(this).balance.sub(balanceBefore);

    if (amountToLiquify > 0 && amountAVAXLiquidity > 0) {
      router.addLiquidityAVAX{value: amountAVAXLiquidity}(address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp);
    }
    lastAddLiquidityTime = block.timestamp;
  }

  function swapBack() internal swapping {
    uint256 amountToSwap = _gonBalances[address(this)].div(_gonsPerFragment);

    if (amountToSwap == 0) {
      return;
    }

    uint256 balanceBefore = address(this).balance;
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = router.WAVAX();

    router.swapExactTokensForAVAXSupportingFeeOnTransferTokens(amountToSwap, 0, path, address(this), block.timestamp);

    uint256 amountAVAXToTreasuryAndSIF = address(this).balance.sub(balanceBefore);

    (bool success, ) = payable(treasuryReceiver).call{value: amountAVAXToTreasuryAndSIF.mul(treasuryFee).div(treasuryFee.add(stashInsuranceFundFee)), gas: 30000}("");
    (success, ) = payable(stashInsuranceFundReceiver).call{value: amountAVAXToTreasuryAndSIF.mul(stashInsuranceFundFee).div(treasuryFee.add(stashInsuranceFundFee)), gas: 30000}("");
  }

  function withdrawAllToTreasury() external swapping onlyOwner {
    uint256 amountToSwap = _gonBalances[address(this)].div(_gonsPerFragment);
    require(amountToSwap > 0, "NO_TOKENS_DEPOSITED");
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = router.WAVAX();
    router.swapExactTokensForAVAXSupportingFeeOnTransferTokens(amountToSwap, 0, path, treasuryReceiver, block.timestamp);
  }

  function shouldTakeFee(address from, address to) internal view returns (bool) {
    if (_isFeeExempt[from] || _isFeeExempt[to]) {
      return false;
    }

    return (pair == from || pair == to);
  }

  function shouldRebase() internal view returns (bool) {
    return autoRebase && (_totalSupply < MAX_SUPPLY) && msg.sender != pair && !inSwap && block.timestamp >= (lastRebasedTime + REBASE_PERIOD);
  }

  function shouldAddLiquidity() internal view returns (bool) {
    return autoAddLiquidity && !inSwap && msg.sender != pair && block.timestamp >= (lastAddLiquidityTime + ADD_LIQUIDITY_PERIOD);
  }

  function shouldSwapBack() internal view returns (bool) {
    return autoSwapback && !inSwap && msg.sender != pair;
  }

  function setAutoRebase(bool _flag) external onlyOwner {
    if (_flag) {
      autoRebase = _flag;
      if (initRebaseStartTime == 0) {
        initRebaseStartTime = block.timestamp;
      }
      lastRebasedTime = block.timestamp;
    } else {
      autoRebase = _flag;
    }
  }

  function setAutoAddLiquidity(bool _flag) external onlyOwner {
    if (_flag) {
      autoAddLiquidity = _flag;
      lastAddLiquidityTime = block.timestamp;
    } else {
      autoAddLiquidity = _flag;
    }
  }

  function setAutoSwapback(bool flag) external onlyOwner {
    autoSwapback = flag;
  }

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

  function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
    uint256 oldValue = _allowedFragments[msg.sender][spender];
    if (subtractedValue >= oldValue) {
      _allowedFragments[msg.sender][spender] = 0;
    } else {
      _allowedFragments[msg.sender][spender] = oldValue.sub(subtractedValue);
    }
    emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]);
    return true;
  }

  function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
    _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][spender].add(addedValue);
    emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]);
    return true;
  }

  function approve(address spender, uint256 value) external override returns (bool) {
    _allowedFragments[msg.sender][spender] = value;
    emit Approval(msg.sender, spender, value);
    return true;
  }

  function checkFeeExempt(address _addr) external view returns (bool) {
    return _isFeeExempt[_addr];
  }

  function getCirculatingSupply() public view returns (uint256) {
    return (TOTAL_GONS.sub(_gonBalances[DEAD]).sub(_gonBalances[ZERO])).div(_gonsPerFragment);
  }

  function isNotInSwap() external view returns (bool) {
    return !inSwap;
  }

  function manualSync() external {
    IJoePair(pair).sync();
  }

  function setFeeReceivers(
    address _autoLiquidityReceiver,
    address _treasuryReceiver,
    address _stashInsuranceFundReceiver
  ) external onlyOwner {
    autoLiquidityReceiver = _autoLiquidityReceiver;
    treasuryReceiver = _treasuryReceiver;
    stashInsuranceFundReceiver = _stashInsuranceFundReceiver;
  }

  function setFees(
    uint256 _liquidityFee,
    uint256 _treasuryFee,
    uint256 _stashInsuranceFundFee,
    uint256 _sellFee,
    uint256 _burnRate,
    uint256 _feeDenominator
  ) external onlyOwner {
    liquidityFee = _liquidityFee;
    treasuryFee = _treasuryFee;
    stashInsuranceFundFee = _stashInsuranceFundFee;
    sellFee = _sellFee;
    burnRate = _burnRate;
    feeDenominator = _feeDenominator;
  }

  function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
    uint256 liquidityBalance = _gonBalances[pair].div(_gonsPerFragment);
    return accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply());
  }

  function setWhitelist(address _addr) external onlyOwner {
    _isFeeExempt[_addr] = true;
  }

  function setBotBlacklist(address _botAddress, bool _flag) external onlyOwner {
    require(isContract(_botAddress), "MUST_BE_A_CONTRACT_ADDRESS");
    blacklist[_botAddress] = _flag;
  }

  function setLP(address _address) external onlyOwner {
    pair = _address;
  }

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

  function balanceOf(address who) external view override returns (uint256) {
    return _gonBalances[who].div(_gonsPerFragment);
  }

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

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

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

  function isContract(address addr) internal view returns (bool) {
    uint256 size;
    assembly {
      size := extcodesize(addr)
    }
    return size > 0;
  }

  /**
   * @dev Function allows admin to withdraw ETH accidentally dropped to the contract.
   */
  function rescue() external onlyOwner {
    payable(owner()).transfer(address(this).balance);
  }

  /**
   * @dev Function allows admin to withdraw tokens accidentally dropped to the contract.
   */
  function rescueToken(address tokenAddress, uint256 amount) external onlyOwner {
    require(IERC20(tokenAddress).transfer(msg.sender, amount), "RESCUE_TOKENS_FAILED");
  }

  receive() external payable {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_joeRouter","type":"address"},{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_treasuryReceiver","type":"address"},{"internalType":"address","name":"_stashInsuranceFundReceiver","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lastTotalSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"currentTotalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ADD_LIQUIDITY_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_UINT256","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATE_DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REBASE_PERIOD","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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoAddLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoSwapback","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"basicRebaseRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRebaseRate","outputs":[{"internalType":"uint256","name":"rebaseRate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initRebaseStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isNotInSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastAddLiquidityTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRebasedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IJoeRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setAutoAddLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setAutoRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"flag","type":"bool"}],"name":"setAutoSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setBasicRebaseRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_botAddress","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setBotBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_treasuryReceiver","type":"address"},{"internalType":"address","name":"_stashInsuranceFundReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_stashInsuranceFundFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_burnRate","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stashInsuranceFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stashInsuranceFundReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":"treasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawAllToTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000805460ff60a01b19169055610946600655602860078190556014600881905560326009819055601e600a55600b8290556200006a92620000569190829084620003e0602090811b6200165d17901c565b620003e060201b6200165d1790919060201c565b600c556103e8600d553480156200008057600080fd5b506040516200307338038062003073833981016040819052620000a39162000472565b620000ae33620003f7565b601680546001600160a01b0319166001600160a01b0386169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000108573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200012e9190620004cf565b6001600160a01b031663c9c65396601660009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000190573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b69190620004cf565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000203573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002299190620004cf565b601580546001600160a01b03199081166001600160a01b039384161790915560128054821686841617905560138054821685841617905560148054909116838316179055306000908152600560208181526040808420601654909516845293905291902060001990556200029f90600a62000600565b620002ae906207a12062000611565b600155620002bf6005600a62000600565b620002ce906207a12062000611565b620002dc9060001962000649565b620002ea9060001962000660565b6013546001600160a01b03166000908152600460205260409020556001546200035a906200031b6005600a62000600565b6200032a906207a12062000611565b620003389060001962000649565b620003469060001962000660565b6200044760201b620016691790919060201c565b600255601380546001600160a01b0390811660009081526003602090815260408083208054600160ff199182168117909255308552828520805490911682179055945494549051908152939092169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050620006ac565b6000620003ee82846200067a565b90505b92915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620003ee828462000695565b80516001600160a01b03811681146200046d57600080fd5b919050565b600080600080608085870312156200048957600080fd5b620004948562000455565b9350620004a46020860162000455565b9250620004b46040860162000455565b9150620004c46060860162000455565b905092959194509250565b600060208284031215620004e257600080fd5b620003ee8262000455565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000544578160001904821115620005285762000528620004ed565b808516156200053657918102915b93841c939080029062000508565b509250929050565b6000826200055d57506001620003f1565b816200056c57506000620003f1565b81600181146200058557600281146200059057620005b0565b6001915050620003f1565b60ff841115620005a457620005a4620004ed565b50506001821b620003f1565b5060208310610133831016604e8410600b8410161715620005d5575081810a620003f1565b620005e1838362000503565b8060001904821115620005f857620005f8620004ed565b029392505050565b6000620003ee60ff8416836200054c565b60008160001904831182151516156200062e576200062e620004ed565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826200065b576200065b62000633565b500690565b600082821015620006755762000675620004ed565b500390565b60008219821115620006905762000690620004ed565b500190565b600082620006a757620006a762000633565b500490565b6129b780620006bc6000396000f3fe60806040526004361061036f5760003560e01c8063854cff2f116101c6578063ca33e64c116100f7578063df313c8511610095578063efd462bb1161006f578063efd462bb146109b7578063f2fde38b146109d6578063f887ea40146109f6578063f9f92be414610a1657600080fd5b8063df313c8514610960578063e15beb8014610980578063e33e42f4146109a057600080fd5b8063d4399790116100d1578063d4399790146108a1578063d51ed1c8146108da578063d7c01032146108fa578063dd62ed3e1461091a57600080fd5b8063ca33e64c1461084b578063cc32d1761461086b578063cfbac92f1461088157600080fd5b8063a457c2d711610164578063a9059cbb1161013e578063a9059cbb146107ea578063ba71c44e1461080a578063bd59558114610820578063bed998501461083557600080fd5b8063a457c2d71461078a578063a724ecfd146107aa578063a8aa1b31146107ca57600080fd5b80639079f932116101a05780639079f9321461071657806395d89b411461073057806398118cb41461075e5780639d12ec011461077457600080fd5b8063854cff2f146106b857806386f6c3c1146106d85780638da5cb5b146106f857600080fd5b806333a581d2116102a0578063650a0ac81161023e578063715018a611610218578063715018a614610658578063753d02a11461066d57806382b97bec1461068257806383b4ac681461069857600080fd5b8063650a0ac81461060d57806368381a881461062257806370a082311461063857600080fd5b8063395093511161027a57806339509351146105ac5780635a604c52146105cc5780636085e220146105e157806364452b01146105f757600080fd5b806333a581d21461055657806333f3d6281461056c57806337c9be871461058c57600080fd5b80631fbe19791161030d5780632b112e49116102e75780632b112e49146104e95780632b14ca56146104fe5780632f34d28214610514578063313ce5671461053457600080fd5b80631fbe19791461049257806320a94780146104a957806323b872dd146104c957600080fd5b8063180b0d7e11610349578063180b0d7e1461042357806318160ddd14610447578063186019721461045c5780631df4ccfc1461047c57600080fd5b806306fdde031461037b57806308b1fd8f146103bb578063095ea7b3146103f357600080fd5b3661037657005b600080fd5b34801561038757600080fd5b506040805180820190915260058152640a6e8c2e6d60db1b60208201525b6040516103b2919061245c565b60405180910390f35b3480156103c757600080fd5b506013546103db906001600160a01b031681565b6040516001600160a01b0390911681526020016103b2565b3480156103ff57600080fd5b5061041361040e3660046124c6565b610a46565b60405190151581526020016103b2565b34801561042f57600080fd5b50610439600d5481565b6040519081526020016103b2565b34801561045357600080fd5b50600154610439565b34801561046857600080fd5b506014546103db906001600160a01b031681565b34801561048857600080fd5b50610439600c5481565b34801561049e57600080fd5b506104a7610ab3565b005b3480156104b557600080fd5b506104a76104c43660046124f2565b610b23565b3480156104d557600080fd5b506104136104e436600461250b565b610b52565b3480156104f557600080fd5b50610439610c13565b34801561050a57600080fd5b50610439600a5481565b34801561052057600080fd5b506104a761052f36600461254c565b610cba565b34801561054057600080fd5b5060055b60405160ff90911681526020016103b2565b34801561056257600080fd5b5061043960001981565b34801561057857600080fd5b506104a76105873660046124c6565b610d06565b34801561059857600080fd5b506104a76105a7366004612577565b610de8565b3480156105b857600080fd5b506104136105c73660046124c6565b610e8b565b3480156105d857600080fd5b50610544600781565b3480156105ed57600080fd5b5061043960105481565b34801561060357600080fd5b5061043961038481565b34801561061957600080fd5b50610439610f10565b34801561062e57600080fd5b5061043960095481565b34801561064457600080fd5b5061043961065336600461254c565b610f71565b34801561066457600080fd5b506104a7610f99565b34801561067957600080fd5b506104a7610fcf565b34801561068e57600080fd5b5061043960065481565b3480156106a457600080fd5b50600054600160a01b900460ff1615610413565b3480156106c457600080fd5b506104a76106d336600461254c565b611039565b3480156106e457600080fd5b506104a76106f33660046125b0565b611087565b34801561070457600080fd5b506000546001600160a01b03166103db565b34801561072257600080fd5b50600e546104139060ff1681565b34801561073c57600080fd5b506040805180820190915260058152640a6a882a6960db1b60208201526103a5565b34801561076a57600080fd5b5061043960075481565b34801561078057600080fd5b5061043960115481565b34801561079657600080fd5b506104136107a53660046124c6565b6110ce565b3480156107b657600080fd5b50600e546104139062010000900460ff1681565b3480156107d657600080fd5b506015546103db906001600160a01b031681565b3480156107f657600080fd5b506104136108053660046124c6565b6111b5565b34801561081657600080fd5b50610439600f5481565b34801561082c57600080fd5b506104a76111e1565b34801561084157600080fd5b50610439600b5481565b34801561085757600080fd5b506012546103db906001600160a01b031681565b34801561087757600080fd5b5061043960085481565b34801561088d57600080fd5b506104a761089c3660046125f3565b6113f7565b3480156108ad57600080fd5b506104136108bc36600461254c565b6001600160a01b031660009081526003602052604090205460ff1690565b3480156108e657600080fd5b506104396108f53660046124f2565b61145b565b34801561090657600080fd5b506104a7610915366004612610565b6114af565b34801561092657600080fd5b5061043961093536600461265b565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561096c57600080fd5b506104a761097b3660046125f3565b611518565b34801561098c57600080fd5b506104a761099b3660046125f3565b61155e565b3480156109ac57600080fd5b506104396202a30081565b3480156109c357600080fd5b50600e5461041390610100900460ff1681565b3480156109e257600080fd5b506104a76109f136600461254c565b6115c5565b348015610a0257600080fd5b506016546103db906001600160a01b031681565b348015610a2257600080fd5b50610413610a3136600461254c565b60176020526000908152604090205460ff1681565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610aa19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610ae65760405162461bcd60e51b8152600401610add90612689565b60405180910390fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610b20573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610b4d5760405162461bcd60e51b8152600401610add90612689565b600655565b6000826001600160a01b038116610b6857600080fd5b6001600160a01b03851660009081526005602090815260408083203384529091529020546000198114610bfb5760408051808201909152601d81527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006020820152610bd69082908690611675565b6001600160a01b03871660009081526005602090815260408083203384529091529020555b610c068686866116a1565b5060019695505050505050565b60025460046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd549092610cb5929091610caf9190610ca990610c846005600a6127b8565b610c91906207a1206127c7565b610c9d906000196127fc565b610ca990600019612810565b906118ae565b90611669565b905090565b6000546001600160a01b03163314610ce45760405162461bcd60e51b8152600401610add90612689565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d305760405162461bcd60e51b8152600401610add90612689565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da19190612827565b610de45760405162461bcd60e51b8152602060048201526014602482015273149154d0d55157d513d2d15394d7d1905253115160621b6044820152606401610add565b5050565b6000546001600160a01b03163314610e125760405162461bcd60e51b8152600401610add90612689565b813b610e605760405162461bcd60e51b815260206004820152601a60248201527f4d5553545f42455f415f434f4e54524143545f414444524553530000000000006044820152606401610add565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b3360009081526005602090815260408083206001600160a01b0386168452909152812054610eb9908361165d565b3360008181526005602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610aa1565b600080600f5442610f219190612810565b90506301e13380811015610f3757505060065490565b6301e133808110610f4a5760d391505090565b6302d1cd408110610f5d57600e91505090565b630d2868808110610f6d57600291505b5090565b6002546001600160a01b0382166000908152600460205260408120549091610aad9190611669565b6000546001600160a01b03163314610fc35760405162461bcd60e51b8152600401610add90612689565b610fcd60006118ba565b565b601560009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561101f57600080fd5b505af1158015611033573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146110635760405162461bcd60e51b8152600401610add90612689565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146110b15760405162461bcd60e51b8152600401610add90612689565b600795909555600893909355600991909155600a55600b55600d55565b3360009081526005602090815260408083206001600160a01b0386168452909152812054808310611122573360009081526005602090815260408083206001600160a01b0388168452909152812055611151565b61112c81846118ae565b3360009081526005602090815260408083206001600160a01b03891684529091529020555b3360008181526005602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b6000826001600160a01b0381166111cb57600080fd5b6111d63385856116a1565b506001949350505050565b6000805460ff60a01b1916600160a01b1790556111fb3390565b6001600160a01b03166112166000546001600160a01b031690565b6001600160a01b03161461123c5760405162461bcd60e51b8152600401610add90612689565b60025430600090815260046020526040812054909161125b9190611669565b9050600081116112a35760405162461bcd60e51b81526020600482015260136024820152721393d7d513d2d15394d7d1115413d4d2551151606a1b6044820152606401610add565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106112d8576112d8612844565b6001600160a01b03928316602091820292909201810191909152601654604080516339d94ae160e11b8152905191909316926373b295c29260048083019391928290030181865afa158015611331573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611355919061285a565b8160018151811061136857611368612844565b6001600160a01b039283166020918202929092010152601654601354604051633b158ab160e11b81529183169263762b1562926113b49287926000928892909116904290600401612877565b600060405180830381600087803b1580156113ce57600080fd5b505af11580156113e2573d6000803e3d6000fd5b50506000805460ff60a01b1916905550505050565b6000546001600160a01b031633146114215760405162461bcd60e51b8152600401610add90612689565b801561144357600e80548215156101000261ff00199091161790554260115550565b600e80548215156101000261ff001990911617905550565b6002546015546001600160a01b03166000908152600460205260408120549091829161148691611669565b90506114a8611493610c13565b610caf6114a184600261190a565b869061190a565b9392505050565b6000546001600160a01b031633146114d95760405162461bcd60e51b8152600401610add90612689565b601280546001600160a01b039485166001600160a01b031991821617909155601380549385169382169390931790925560148054919093169116179055565b6000546001600160a01b031633146115425760405162461bcd60e51b8152600401610add90612689565b600e8054911515620100000262ff000019909216919091179055565b6000546001600160a01b031633146115885760405162461bcd60e51b8152600401610add90612689565b80156115b257600e805460ff1916821515179055600f546000036115ab5742600f555b4260105550565b600e805482151560ff1990911617905550565b6000546001600160a01b031633146115ef5760405162461bcd60e51b8152600401610add90612689565b6001600160a01b0381166116545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610add565b610b20816118ba565b60006114a882846128e8565b60006114a88284612900565b600081848411156116995760405162461bcd60e51b8152600401610add919061245c565b505050900390565b6001600160a01b03831660009081526017602052604081205460ff161580156116e357506001600160a01b03831660009081526017602052604090205460ff16155b6117265760405162461bcd60e51b8152602060048201526014602482015273105111149154d4d7d25397d0931050d2d31254d560621b6044820152606401610add565b600054600160a01b900460ff161561174a57611743848484611916565b90506114a8565b6117526119c1565b1561175f5761175f611a3d565b611767611be7565b1561177457611774611c3a565b61177c611f13565b1561178957611789611f52565b60006117a06002548461190a90919063ffffffff16565b90506117df8160405180606001604052806026815260200161295c602691396001600160a01b0388166000908152600460205260409020549190611675565b6001600160a01b03861660009081526004602052604081209190915561180586866121f6565b61180f578161181a565b61181a868684612270565b6001600160a01b038616600090815260046020526040902054909150611840908261165d565b6001600160a01b03808716600081815260046020526040902092909255600254908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611891908590611669565b60405190815260200160405180910390a350600195945050505050565b60006114a88284612810565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006114a882846127c7565b60008061192e6002548461190a90919063ffffffff16565b905061196d8160405180606001604052806026815260200161295c602691396001600160a01b0388166000908152600460205260409020549190611675565b6001600160a01b03808716600090815260046020526040808220939093559086168152205461199c908261165d565b6001600160a01b03851660009081526004602052604090205550600190509392505050565b600e5460009060ff1680156119f157506119dd6005600a6127b8565b6119ec9064012a05f2006127c7565b600154105b8015611a0857506015546001600160a01b03163314155b8015611a1e5750600054600160a01b900460ff16155b8015610cb55750610384601054611a3591906128e8565b421015905090565b600054600160a01b900460ff1615611a5157565b600060105442611a619190612810565b90506000611a7182610384611669565b90506000611a8082600f61190a565b90506000611a8c610f10565b60015490915060005b84811015611ae357611ace611aac6007600a6127b8565b610caf611ac586611abf6007600a6127b8565b9061165d565b6001549061190a565b60015580611adb81612914565b915050611a95565b50600154611b1c90611af76005600a6127b8565b611b04906207a1206127c7565b611b10906000196127fc565b610caf90600019612810565b600255611b37611b2e8561038461190a565b6010549061165d565b6010556015546040805160016209351760e01b0319815290516001600160a01b039092169163fff6cae99160048082019260009290919082900301818387803b158015611b8357600080fd5b505af1158015611b97573d6000803e3d6000fd5b50505050827f6012dbce857565c4a40974aa5de8373a761fc429077ef0c8c8611d1e20d63fb282600154604051611bd8929190918252602082015260400190565b60405180910390a25050505050565b600e54600090610100900460ff168015611c0b5750600054600160a01b900460ff16155b8015611c2257506015546001600160a01b03163314155b8015610cb557506202a300601154611a3591906128e8565b6000805460ff60a01b1916600160a01b1781556002546012546001600160a01b0316825260046020526040822054611c7191611669565b6012546001600160a01b031660009081526004602052604080822054308352912054919250611ca0919061165d565b30600090815260046020526040808220929092556012546001600160a01b03168152908120819055611cd3826002611669565b90506000611ce183836118ae565b905080600003611cf357505050611f04565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d2857611d28612844565b6001600160a01b03928316602091820292909201810191909152601654604080516339d94ae160e11b8152905191909316926373b295c29260048083019391928290030181865afa158015611d81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da5919061285a565b81600181518110611db857611db8612844565b6001600160a01b039283166020918202929092010152601654604051633b158ab160e11b81524792919091169063762b156290611e02908690600090879030904290600401612877565b600060405180830381600087803b158015611e1c57600080fd5b505af1158015611e30573d6000803e3d6000fd5b505050506000611e4982476118ae90919063ffffffff16565b9050600085118015611e5b5750600081115b15611ef957601654601254604051637c8d9fb960e11b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f91b3f7290839060c40160606040518083038185885af1158015611ed0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ef5919061292d565b5050505b505042601155505050505b6000805460ff60a01b19169055565b600e5460009062010000900460ff168015611f385750600054600160a01b900460ff16155b8015610cb55750506015546001600160a01b031633141590565b6000805460ff60a01b1916600160a01b17815560025430825260046020526040822054611f7e91611669565b905080600003611f8e5750611f04565b604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110611fc757611fc7612844565b6001600160a01b03928316602091820292909201810191909152601654604080516339d94ae160e11b8152905191909316926373b295c29260048083019391928290030181865afa158015612020573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612044919061285a565b8160018151811061205757612057612844565b6001600160a01b039283166020918202929092010152601654604051633b158ab160e11b815291169063762b15629061209d908690600090869030904290600401612877565b600060405180830381600087803b1580156120b757600080fd5b505af11580156120cb573d6000803e3d6000fd5b5050505060006120e483476118ae90919063ffffffff16565b6013546009546008549293506000926001600160a01b039092169161211b9161210d919061165d565b600854610caf90869061190a565b60405161753091906000818181858888f193505050503d806000811461215d576040519150601f19603f3d011682016040523d82523d6000602084013e612162565b606091505b50506014546009546008549293506001600160a01b03909116916121989161218a919061165d565b600954610caf90869061190a565b60405161753091906000818181858888f193505050503d80600081146121da576040519150601f19603f3d011682016040523d82523d6000602084013e6121df565b606091505b50505050505050506000805460ff60a01b19169055565b6001600160a01b03821660009081526003602052604081205460ff168061223557506001600160a01b03821660009081526003602052604090205460ff165b1561224257506000610aad565b6015546001600160a01b03848116911614806114a85750506015546001600160a01b03918216911614919050565b600c5460085460155460009291906001600160a01b03908116908616036122bc57600a54600c546122a09161165d565b91506122b9600a5460085461165d90919063ffffffff16565b90505b60006122dd836122d7600d548861166990919063ffffffff16565b9061190a565b90506123306122fd600b546122d7600d548961166990919063ffffffff16565b61dead60005260046020527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd549061165d565b61dead60005260046020527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd55600954612397906123819061237390859061165d565b600d546122d7908990611669565b306000908152600460205260409020549061165d565b30600090815260046020526040902055600754600d546123e1916123c0916122d7908990611669565b6012546001600160a01b03166000908152600460205260409020549061165d565b6012546001600160a01b0390811660009081526004602052604090209190915560025430918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612436908590611669565b60405190815260200160405180910390a361245185826118ae565b979650505050505050565b600060208083528351808285015260005b818110156124895785810183015185820160400152820161246d565b8181111561249b576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610b2057600080fd5b600080604083850312156124d957600080fd5b82356124e4816124b1565b946020939093013593505050565b60006020828403121561250457600080fd5b5035919050565b60008060006060848603121561252057600080fd5b833561252b816124b1565b9250602084013561253b816124b1565b929592945050506040919091013590565b60006020828403121561255e57600080fd5b81356114a8816124b1565b8015158114610b2057600080fd5b6000806040838503121561258a57600080fd5b8235612595816124b1565b915060208301356125a581612569565b809150509250929050565b60008060008060008060c087890312156125c957600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60006020828403121561260557600080fd5b81356114a881612569565b60008060006060848603121561262557600080fd5b8335612630816124b1565b92506020840135612640816124b1565b91506040840135612650816124b1565b809150509250925092565b6000806040838503121561266e57600080fd5b8235612679816124b1565b915060208301356125a5816124b1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561270f5781600019048211156126f5576126f56126be565b8085161561270257918102915b93841c93908002906126d9565b509250929050565b60008261272657506001610aad565b8161273357506000610aad565b816001811461274957600281146127535761276f565b6001915050610aad565b60ff841115612764576127646126be565b50506001821b610aad565b5060208310610133831016604e8410600b8410161715612792575081810a610aad565b61279c83836126d4565b80600019048211156127b0576127b06126be565b029392505050565b60006114a860ff841683612717565b60008160001904831182151516156127e1576127e16126be565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261280b5761280b6127e6565b500690565b600082821015612822576128226126be565b500390565b60006020828403121561283957600080fd5b81516114a881612569565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561286c57600080fd5b81516114a8816124b1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128c75784516001600160a01b0316835293830193918301916001016128a2565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156128fb576128fb6126be565b500190565b60008261290f5761290f6127e6565b500490565b600060018201612926576129266126be565b5060010190565b60008060006060848603121561294257600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a26469706673582212202c32edddf546bdb553ef4d5962a597b2853d73c8ff68fe2f5f4f6f70fbcf365464736f6c634300080d003300000000000000000000000060ae616a2155ee3d9a68541ba4544862310933d400000000000000000000000042174c941a7008e4ae81af29839a617d1a0a675000000000000000000000000009f7b26f83835c32bc042e372abd65c2afbe1716000000000000000000000000e39ec2278cb5026ddcb0116f6915dac73d78474c

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

00000000000000000000000060ae616a2155ee3d9a68541ba4544862310933d400000000000000000000000042174c941a7008e4ae81af29839a617d1a0a675000000000000000000000000009f7b26f83835c32bc042e372abd65c2afbe1716000000000000000000000000e39ec2278cb5026ddcb0116f6915dac73d78474c

-----Decoded View---------------
Arg [0] : _joeRouter (address): 0x60ae616a2155ee3d9a68541ba4544862310933d4
Arg [1] : _autoLiquidityReceiver (address): 0x42174c941a7008e4ae81af29839a617d1a0a6750
Arg [2] : _treasuryReceiver (address): 0x09f7b26f83835c32bc042e372abd65c2afbe1716
Arg [3] : _stashInsuranceFundReceiver (address): 0xe39ec2278cb5026ddcb0116f6915dac73d78474c

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000060ae616a2155ee3d9a68541ba4544862310933d4
Arg [1] : 00000000000000000000000042174c941a7008e4ae81af29839a617d1a0a6750
Arg [2] : 00000000000000000000000009f7b26f83835c32bc042e372abd65c2afbe1716
Arg [3] : 000000000000000000000000e39ec2278cb5026ddcb0116f6915dac73d78474c


Deployed ByteCode Sourcemap

16248:16035:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30630:77;;;;;;;;;;-1:-1:-1;30696:5:0;;;;;;;;;;;;-1:-1:-1;;;30696:5:0;;;;30630:77;;;;;;;:::i;:::-;;;;;;;;17968:31;;;;;;;;;;-1:-1:-1;17968:31:0;;;;-1:-1:-1;;;;;17968:31:0;;;;;;-1:-1:-1;;;;;780:32:1;;;762:51;;750:2;735:18;17968:31:0;616:203:1;28293:207:0;;;;;;;;;;-1:-1:-1;28293:207:0;;;;;:::i;:::-;;:::i;:::-;;;1445:14:1;;1438:22;1420:41;;1408:2;1393:18;28293:207:0;1280:187:1;17677:36:0;;;;;;;;;;;;;;;;;;;1618:25:1;;;1606:2;1591:18;17677:36:0;1472:177:1;30334:96:0;;;;;;;;;;-1:-1:-1;30412:12:0;;30334:96;;18004:41;;;;;;;;;;-1:-1:-1;18004:41:0;;;;-1:-1:-1;;;;;18004:41:0;;;17576:96;;;;;;;;;;;;;;;;31864:98;;;;;;;;;;;;;:::i;:::-;;19838;;;;;;;;;;-1:-1:-1;19838:98:0;;;;;:::i;:::-;;:::i;20951:415::-;;;;;;;;;;-1:-1:-1;20951:415:0;;;;;:::i;:::-;;:::i;28619:164::-;;;;;;;;;;;;;:::i;17511:27::-;;;;;;;;;;;;;;;;30248:80;;;;;;;;;;-1:-1:-1;30248:80:0;;;;;:::i;:::-;;:::i;31508:77::-;;;;;;;;;;-1:-1:-1;16445:1:0;31508:77;;;2724:4:1;2712:17;;;2694:36;;2682:2;2667:18;31508:77:0;2552:184:1;16908:49:0;;;;;;;;;;-1:-1:-1;16908:49:0;-1:-1:-1;;16908:49:0;;32072:173;;;;;;;;;;-1:-1:-1;32072:173:0;;;;;:::i;:::-;;:::i;30053:189::-;;;;;;;;;;-1:-1:-1;30053:189:0;;;;;:::i;:::-;;:::i;27992:295::-;;;;;;;;;;-1:-1:-1;27992:295:0;;;;;:::i;:::-;;:::i;16962:39::-;;;;;;;;;;;;17000:1;16962:39;;17850:30;;;;;;;;;;;;;;;;17006:50;;;;;;;;;;;;17046:10;17006:50;;19358:474;;;;;;;;;;;;;:::i;17465:41::-;;;;;;;;;;;;;;;;30436:132;;;;;;;;;;-1:-1:-1;30436:132:0;;;;;:::i;:::-;;:::i;5614:103::-;;;;;;;;;;;;;:::i;28874:65::-;;;;;;;;;;;;;:::i;17348:37::-;;;;;;;;;;;;;;;;28789:79;;;;;;;;;;-1:-1:-1;28835:4:0;28856:6;-1:-1:-1;;;28856:6:0;;;;28855:7;28789:79;;29952:95;;;;;;;;;;-1:-1:-1;29952:95:0;;;;;:::i;:::-;;:::i;29276:428::-;;;;;;;;;;-1:-1:-1;29276:428:0;;;;;:::i;:::-;;:::i;4963:87::-;;;;;;;;;;-1:-1:-1;5009:7:0;5036:6;-1:-1:-1;;;;;5036:6:0;4963:87;;17720:22;;;;;;;;;;-1:-1:-1;17720:22:0;;;;;;;;30816:81;;;;;;;;;;-1:-1:-1;30884:7:0;;;;;;;;;;;;-1:-1:-1;;;30884:7:0;;;;30816:81;;17392:32;;;;;;;;;;;;;;;;17885:35;;;;;;;;;;;;;;;;27533:453;;;;;;;;;;-1:-1:-1;27533:453:0;;;;;:::i;:::-;;:::i;17780:24::-;;;;;;;;;;-1:-1:-1;17780:24:0;;;;;;;;;;;18050:19;;;;;;;;;;-1:-1:-1;18050:19:0;;;;-1:-1:-1;;;;;18050:19:0;;;20781:164;;;;;;;;;;-1:-1:-1;20781:164:0;;;;;:::i;:::-;;:::i;17811:34::-;;;;;;;;;;;;;;;;25580:432;;;;;;;;;;;;;:::i;17543:28::-;;;;;;;;;;;;;;;;17927:36;;;;;;;;;;-1:-1:-1;17927:36:0;;;;-1:-1:-1;;;;;17927:36:0;;;17429:31;;;;;;;;;;;;;;;;27065:218;;;;;;;;;;-1:-1:-1;27065:218:0;;;;;:::i;:::-;;:::i;28506:107::-;;;;;;;;;;-1:-1:-1;28506:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;28588:19:0;28568:4;28588:19;;;:12;:19;;;;;;;;;28506:107;29710:236;;;;;;;;;;-1:-1:-1;29710:236:0;;;;;:::i;:::-;;:::i;28945:325::-;;;;;;;;;;-1:-1:-1;28945:325:0;;;;;:::i;:::-;;:::i;27382:145::-;;;;;;;;;;-1:-1:-1;27382:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;27487:25:0;;;27464:7;27487:25;;;:17;:25;;;;;;;;:34;;;;;;;;;;;;;27382:145;27289:87;;;;;;;;;;-1:-1:-1;27289:87:0;;;;;:::i;:::-;;:::i;26768:291::-;;;;;;;;;;-1:-1:-1;26768:291:0;;;;;:::i;:::-;;:::i;16850:53::-;;;;;;;;;;;;16897:6;16850:53;;17747:28;;;;;;;;;;-1:-1:-1;17747:28:0;;;;;;;;;;;5872:201;;;;;;;;;;-1:-1:-1;5872:201:0;;;;;:::i;:::-;;:::i;18074:24::-;;;;;;;;;;-1:-1:-1;18074:24:0;;;;-1:-1:-1;;;;;18074:24:0;;;18103:41;;;;;;;;;;-1:-1:-1;18103:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;28293:207;28400:10;28369:4;28382:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;28382:38:0;;;;;;;;;;:46;;;28440:36;28369:4;;28382:38;;28440:36;;;;28423:5;1618:25:1;;1606:2;1591:18;;1472:177;28440:36:0;;;;;;;;-1:-1:-1;28490:4:0;28293:207;;;;;:::o;31864:98::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;;;;;;;;;5009:7;5036:6;;31908:48:::1;::::0;-1:-1:-1;;;;;5036:6:0;;;;31934:21:::1;31908:48:::0;::::1;;;::::0;31934:21;;31908:48;5009:7;31908:48;31934:21;5036:6;31908:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;31864:98::o:0;19838:::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;19907:15:::1;:23:::0;19838:98::o;20951:415::-;21080:4;21067:2;-1:-1:-1;;;;;18300:18:0;;18292:27;;;;;;-1:-1:-1;;;;;27487:25:0;;21093:24:::1;27487:25:::0;;;:17;:25;;;;;;;;21136:10:::1;27487:34:::0;;;;;;;;-1:-1:-1;;21158:31:0;::::1;21154:152;;21238:60;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;:16;;21259:5;;21238:20:::1;:60::i;:::-;-1:-1:-1::0;;;;;21200:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;21224:10:::1;21200:35:::0;;;;;;;:98;21154:152:::1;21312:30;21326:4;21332:2;21336:5;21312:13;:30::i;:::-;-1:-1:-1::0;21356:4:0::1;::::0;20951:415;-1:-1:-1;;;;;;20951:415:0:o;28619:164::-;28760:16;;28735:12;:18;;;;16730:42;28672:7;28711:18;;;;;28672:7;;28695:82;;28760:16;;28696:58;;28735:18;28696:34;;16519:13;16445:1;16519:2;:13;:::i;:::-;16505:27;;:11;:27;:::i;:::-;16590:38;;-1:-1:-1;;16590:38:0;:::i;:::-;16575:54;;-1:-1:-1;;16575:54:0;:::i;:::-;28696:14;;:34::i;:58::-;28695:64;;:82::i;:::-;28688:89;;28619:164;:::o;30248:80::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;30307:4:::1;:15:::0;;-1:-1:-1;;;;;;30307:15:0::1;-1:-1:-1::0;;;;;30307:15:0;;;::::1;::::0;;;::::1;::::0;;30248:80::o;32072:173::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;32165:49:::1;::::0;-1:-1:-1;;;32165:49:0;;32195:10:::1;32165:49;::::0;::::1;7780:51:1::0;7847:18;;;7840:34;;;-1:-1:-1;;;;;32165:29:0;::::1;::::0;::::1;::::0;7753:18:1;;32165:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32157:82;;;::::0;-1:-1:-1;;;32157:82:0;;8337:2:1;32157:82:0::1;::::0;::::1;8319:21:1::0;8376:2;8356:18;;;8349:30;-1:-1:-1;;;8395:18:1;;;8388:50;8455:18;;32157:82:0::1;8135:344:1::0;32157:82:0::1;32072:173:::0;;:::o;30053:189::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;31706:17;;30137:62:::1;;;::::0;-1:-1:-1;;;30137:62:0;;8686:2:1;30137:62:0::1;::::0;::::1;8668:21:1::0;8725:2;8705:18;;;8698:30;8764:28;8744:18;;;8737:56;8810:18;;30137:62:0::1;8484:350:1::0;30137:62:0::1;-1:-1:-1::0;;;;;30206:22:0;;;::::1;;::::0;;;:9:::1;:22;::::0;;;;:30;;-1:-1:-1;;30206:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;30053:189::o;27992:295::-;28146:10;28074:4;28128:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;28128:38:0;;;;;;;;;;:54;;28171:10;28128:42;:54::i;:::-;28105:10;28087:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;28087:38:0;;;;;;;;;;;;:95;;;28194:69;1618:25:1;;;28087:38:0;;28194:69;;1591:18:1;28194:69:0;1472:177:1;19358:474:0;19404:18;19431:25;19477:19;;19459:15;:37;;;;:::i;:::-;19431:65;;19530:8;19509:17;:30;19505:322;;;-1:-1:-1;;19563:15:0;;;19358:474::o;19505:322::-;19618:8;19596:17;:31;19592:235;;19651:3;19638:16;;19424:408;19358:474;:::o;19592:235::-;19694:20;19672:17;:43;19668:159;;19739:2;19726:15;;19424:408;19358:474;:::o;19668:159::-;19781:12;19759:17;:35;19755:72;;19818:1;19805:14;;19755:72;19424:408;19358:474;:::o;30436:132::-;30545:16;;-1:-1:-1;;;;;30523:17:0;;30500:7;30523:17;;;:12;:17;;;;;;30500:7;;30523:39;;:17;:21;:39::i;5614:103::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;5679:30:::1;5706:1;5679:18;:30::i;:::-;5614:103::o:0;28874:65::-;28921:4;;;;;;;;;-1:-1:-1;;;;;28921:4:0;-1:-1:-1;;;;;28912:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28874:65::o;29952:95::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;30015:19:0::1;;::::0;;;:12:::1;:19;::::0;;;;:26;;-1:-1:-1;;30015:26:0::1;30037:4;30015:26;::::0;;29952:95::o;29276:428::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;29493:12:::1;:28:::0;;;;29528:11:::1;:26:::0;;;;29561:21:::1;:46:::0;;;;29614:7:::1;:18:::0;29639:8:::1;:20:::0;29666:14:::1;:32:::0;29276:428::o;27533:453::-;27670:10;27620:4;27652:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;27652:38:0;;;;;;;;;;27701:27;;;27697:185;;27757:10;27780:1;27739:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;27739:38:0;;;;;;;;;:42;27697:185;;;27845:29;:8;27858:15;27845:12;:29::i;:::-;27822:10;27804:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;27804:38:0;;;;;;;;;:70;27697:185;27902:10;27923:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;27893:69:0;;27923:38;;;;;;;;;;;27893:69;;1618:25:1;;;27893:69:0;;27902:10;27893:69;;1591:18:1;27893:69:0;;;;;;;-1:-1:-1;27976:4:0;;27533:453;-1:-1:-1;;;27533:453:0:o;20781:164::-;20872:4;20859:2;-1:-1:-1;;;;;18300:18:0;;18292:27;;;;;;20885:36:::1;20899:10;20911:2;20915:5;20885:13;:36::i;:::-;-1:-1:-1::0;20935:4:0::1;::::0;20781:164;-1:-1:-1;;;;20781:164:0:o;25580:432::-;18366:6;:13;;-1:-1:-1;;;;18366:13:0;-1:-1:-1;;;18366:13:0;;;5194:12:::1;3697:10:::0;;3617:98;5194:12:::1;-1:-1:-1::0;;;;;5183:23:0::1;:7;5009::::0;5036:6;-1:-1:-1;;;;;5036:6:0;;4963:87;5183:7:::1;-1:-1:-1::0;;;;;5183:23:0::1;;5175:68;;;;-1:-1:-1::0;;;5175:68:0::1;;;;;;;:::i;:::-;25703:16:::2;::::0;25692:4:::2;25648:20;25671:27:::0;;;:12:::2;:27;::::0;;;;;25648:20;;25671:49:::2;::::0;:27;:31:::2;:49::i;:::-;25648:72;;25750:1;25735:12;:16;25727:48;;;::::0;-1:-1:-1;;;25727:48:0;;9041:2:1;25727:48:0::2;::::0;::::2;9023:21:1::0;9080:2;9060:18;;;9053:30;-1:-1:-1;;;9099:18:1;;;9092:49;9158:18;;25727:48:0::2;8839:343:1::0;25727:48:0::2;25806:16;::::0;;25820:1:::2;25806:16:::0;;;;;::::2;::::0;;25782:21:::2;::::0;25806:16:::2;::::0;::::2;::::0;;::::2;::::0;::::2;;::::0;-1:-1:-1;25806:16:0::2;25782:40;;25847:4;25829;25834:1;25829:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25829:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;25869:6:::2;::::0;:14:::2;::::0;;-1:-1:-1;;;25869:14:0;;;;:6;;;::::2;::::0;:12:::2;::::0;:14:::2;::::0;;::::2;::::0;25829:7;;25869:14;;;;;:6;:14:::2;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25859:4;25864:1;25859:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25859:24:0;;::::2;:7;::::0;;::::2;::::0;;;;;:24;25890:6:::2;::::0;25972:16:::2;::::0;25890:116:::2;::::0;-1:-1:-1;;;25890:116:0;;:6;;::::2;::::0;:58:::2;::::0;:116:::2;::::0;25949:12;;25890:6:::2;::::0;25966:4;;25972:16;;::::2;::::0;25990:15:::2;::::0;25890:116:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;18403:5:0;18394:14;;-1:-1:-1;;;;18394:14:0;;;-1:-1:-1;;;;25580:432:0:o;27065:218::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;27136:5:::1;27132:146;;;27152:16;:24:::0;;;::::1;;;;-1:-1:-1::0;;27152:24:0;;::::1;;::::0;;27208:15:::1;27185:20;:38:::0;31908:48:::1;31864:98::o:0;27132:146::-:1;27246:16;:24:::0;;;::::1;;;;-1:-1:-1::0;;27246:24:0;;::::1;;::::0;;27065:218;:::o;29710:236::-;29844:16;;29834:4;;-1:-1:-1;;;;;29834:4:0;29778:7;29821:18;;;:12;:18;;;;;;29778:7;;;;29821:40;;:22;:40::i;:::-;29794:67;;29875:65;29917:22;:20;:22::i;:::-;29875:37;29888:23;:16;29909:1;29888:20;:23::i;:::-;29875:8;;:12;:37::i;:65::-;29868:72;29710:236;-1:-1:-1;;;29710:236:0:o;28945:325::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;29112:21:::1;:46:::0;;-1:-1:-1;;;;;29112:46:0;;::::1;-1:-1:-1::0;;;;;;29112:46:0;;::::1;;::::0;;;29165:16:::1;:36:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;29208:26:::1;:56:::0;;;;;::::1;::::0;::::1;;::::0;;28945:325::o;27289:87::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;27351:12:::1;:19:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;27351:19:0;;::::1;::::0;;;::::1;::::0;;27289:87::o;26768:291::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;26833:5:::1;26829:225;;;26849:10;:18:::0;;-1:-1:-1;;26849:18:0::1;::::0;::::1;;;::::0;;26880:19:::1;::::0;-1:-1:-1;26880:24:0;26876:88:::1;;26939:15;26917:19;:37:::0;26876:88:::1;26990:15;26972;:33:::0;31908:48:::1;31864:98::o:0;26829:225::-:1;27028:10;:18:::0;;;::::1;;-1:-1:-1::0;;27028:18:0;;::::1;;::::0;;26768:291;:::o;5872:201::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5961:22:0;::::1;5953:73;;;::::0;-1:-1:-1;;;5953:73:0;;10894:2:1;5953:73:0::1;::::0;::::1;10876:21:1::0;10933:2;10913:18;;;10906:30;10972:34;10952:18;;;10945:62;-1:-1:-1;;;11023:18:1;;;11016:36;11069:19;;5953:73:0::1;10692:402:1::0;5953:73:0::1;6037:28;6056:8;6037:18;:28::i;9321:98::-:0;9379:7;9406:5;9410:1;9406;:5;:::i;10458:98::-;10516:7;10543:5;10547:1;10543;:5;:::i;11600:240::-;11720:7;11781:12;11773:6;;;;11765:29;;;;-1:-1:-1;;;11765:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;11816:5:0;;;11600:240::o;21727:927::-;-1:-1:-1;;;;;21861:17:0;;21839:4;21861:17;;;:9;:17;;;;;;;;21860:18;:43;;;;-1:-1:-1;;;;;;21883:20:0;;;;;;:9;:20;;;;;;;;21882:21;21860:43;21852:76;;;;-1:-1:-1;;;21852:76:0;;11559:2:1;21852:76:0;;;11541:21:1;11598:2;11578:18;;;11571:30;-1:-1:-1;;;11617:18:1;;;11610:50;11677:18;;21852:76:0;11357:344:1;21852:76:0;21941:6;;-1:-1:-1;;;21941:6:0;;;;21937:77;;;21965:41;21980:6;21988:9;21999:6;21965:14;:41::i;:::-;21958:48;;;;21937:77;22024:14;:12;:14::i;:::-;22020:45;;;22049:8;:6;:8::i;:::-;22077:20;:18;:20::i;:::-;22073:57;;;22108:14;:12;:14::i;:::-;22142:16;:14;:16::i;:::-;22138:49;;;22169:10;:8;:10::i;:::-;22195:17;22215:28;22226:16;;22215:6;:10;;:28;;;;:::i;:::-;22195:48;;22273:77;22298:9;22273:77;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22273:20:0;;;;;;:12;:20;;;;;;;:77;:24;:77::i;:::-;-1:-1:-1;;;;;22250:20:0;;;;;;:12;:20;;;;;:100;;;;22385:32;22263:6;22407:9;22385:13;:32::i;:::-;:84;;22460:9;22385:84;;;22420:37;22428:6;22436:9;22447;22420:7;:37::i;:::-;-1:-1:-1;;;;;22502:23:0;;;;;;:12;:23;;;;;;22357:112;;-1:-1:-1;22502:46:0;;22357:112;22502:27;:46::i;:::-;-1:-1:-1;;;;;22476:23:0;;;;;;;:12;:23;;;;;:72;;;;22612:16;;22562:68;;;;;;22590:39;;:17;;:21;:39::i;:::-;22562:68;;1618:25:1;;;1606:2;1591:18;22562:68:0;;;;;;;-1:-1:-1;22644:4:0;;21727:927;-1:-1:-1;;;;;21727:927:0:o;9702:98::-;9760:7;9787:5;9791:1;9787;:5;:::i;6233:191::-;6307:16;6326:6;;-1:-1:-1;;;;;6343:17:0;;;-1:-1:-1;;;;;;6343:17:0;;;;;;6376:40;;6326:6;;;;;;;6376:40;;6307:16;6376:40;6296:128;6233:191;:::o;10059:98::-;10117:7;10144:5;10148:1;10144;:5;:::i;21372:349::-;21476:4;21489:17;21509:28;21520:16;;21509:6;:10;;:28;;;;:::i;:::-;21489:48;;21565:75;21588:9;21565:75;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21565:18:0;;;;;;:12;:18;;;;;;;:75;:22;:75::i;:::-;-1:-1:-1;;;;;21544:18:0;;;;;;;:12;:18;;;;;;:96;;;;21666:16;;;;;;;:31;;21687:9;21666:20;:31::i;:::-;-1:-1:-1;;;;;21647:16:0;;;;;;:12;:16;;;;;:50;-1:-1:-1;21711:4:0;;-1:-1:-1;21372:349:0;;;;;:::o;26231:203::-;26298:10;;26278:4;;26298:10;;:41;;;;-1:-1:-1;16686:13:0;16445:1;16686:2;:13;:::i;:::-;16672:27;;:11;:27;:::i;:::-;26313:12;;:25;26298:41;:63;;;;-1:-1:-1;26357:4:0;;-1:-1:-1;;;;;26357:4:0;26343:10;:18;;26298:63;:74;;;;-1:-1:-1;26366:6:0;;-1:-1:-1;;;26366:6:0;;;;26365:7;26298:74;:130;;;;;17046:10;26396:15;;:31;;;;:::i;:::-;26376:15;:52;;26291:137;;26231:203;:::o;20113:662::-;20151:6;;-1:-1:-1;;;20151:6:0;;;;20147:19;;;20113:662::o;20147:19::-;20172:17;20210:15;;20192;:33;;;;:::i;:::-;20172:53;-1:-1:-1;20232:13:0;20248:28;20172:53;17046:10;20248:13;:28::i;:::-;20232:44;-1:-1:-1;20283:13:0;20299;20232:44;20309:2;20299:9;:13::i;:::-;20283:29;;20319:18;20340:15;:13;:15::i;:::-;20390:12;;20319:36;;-1:-1:-1;20364:23:0;20409:144;20433:5;20429:1;:9;20409:144;;;20469:76;20527:17;17000:1;20527:2;:17;:::i;:::-;20469:53;20486:35;20510:10;20487:17;17000:1;20487:2;:17;:::i;:::-;20486:23;;:35::i;:::-;20469:12;;;:16;:53::i;:76::-;20454:12;:91;20440:3;;;;:::i;:::-;;;;20409:144;;;-1:-1:-1;20595:12:0;;20580:28;;16519:13;16445:1;16519:2;:13;:::i;:::-;16505:27;;:11;:27;:::i;:::-;16590:38;;-1:-1:-1;;16590:38:0;:::i;:::-;16575:54;;-1:-1:-1;;16575:54:0;:::i;20580:28::-;20561:16;:47;20633:45;20653:24;:5;17046:10;20653:9;:24::i;:::-;20633:15;;;:19;:45::i;:::-;20615:15;:63;20696:4;;20687:21;;;-1:-1:-1;;;;;;20687:21:0;;;;-1:-1:-1;;;;;20696:4:0;;;;20687:19;;:21;;;;;20696:4;;20687:21;;;;;;;;20696:4;;20687:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20732:5;20722:47;20739:15;20756:12;;20722:47;;;;;;12020:25:1;;;12076:2;12061:18;;12054:34;12008:2;11993:18;;11846:248;20722:47:0;;;;;;;;20140:635;;;;;20113:662::o;26440:196::-;26513:16;;26493:4;;26513:16;;;;;:27;;;;-1:-1:-1;26534:6:0;;-1:-1:-1;;;26534:6:0;;;;26533:7;26513:27;:49;;;;-1:-1:-1;26558:4:0;;-1:-1:-1;;;;;26558:4:0;26544:10;:18;;26513:49;:117;;;;;16897:6;26586:20;;:43;;;;:::i;23578:1090::-;18366:6;:13;;-1:-1:-1;;;;18366:13:0;-1:-1:-1;;;18366:13:0;;;23697:16:::1;::::0;23670:21:::1;::::0;-1:-1:-1;;;;;23670:21:0::1;23657:35:::0;;:12:::1;:35;::::0;;;;;:57:::1;::::0;:39:::1;:57::i;:::-;23796:21;::::0;-1:-1:-1;;;;;23796:21:0::1;23783:35;::::0;;;:12:::1;:35;::::0;;;;;;23772:4:::1;23751:27:::0;;;;;23627:87;;-1:-1:-1;23751:68:0::1;::::0;:27;:31:::1;:68::i;:::-;23742:4;23721:27;::::0;;;:12:::1;:27;::::0;;;;;:98;;;;23839:21:::1;::::0;-1:-1:-1;;;;;23839:21:0::1;23826:35:::0;;;;;:39;;;23898:26:::1;:19:::0;23922:1:::1;23898:23;:26::i;:::-;23872:52:::0;-1:-1:-1;23931:20:0::1;23954:40;:19:::0;23872:52;23954:23:::1;:40::i;:::-;23931:63;;24007:12;24023:1;24007:17:::0;24003:46:::1;;24035:7;;;;;24003:46;24079:16;::::0;;24093:1:::1;24079:16:::0;;;;;::::1;::::0;;24055:21:::1;::::0;24079:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;24079:16:0::1;24055:40;;24120:4;24102;24107:1;24102:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24102:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;24142:6:::1;::::0;:14:::1;::::0;;-1:-1:-1;;;24142:14:0;;;;:6;;;::::1;::::0;:12:::1;::::0;:14:::1;::::0;;::::1;::::0;24102:7;;24142:14;;;;;:6;:14:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24132:4;24137:1;24132:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24132:24:0;;::::1;:7;::::0;;::::1;::::0;;;;;:24;24219:6:::1;::::0;:113:::1;::::0;-1:-1:-1;;;24219:113:0;;24189:21:::1;::::0;24219:6;;;::::1;::::0;:58:::1;::::0;:113:::1;::::0;24278:12;;24165:21:::1;::::0;24295:4;;24309::::1;::::0;24316:15:::1;::::0;24219:113:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24341:27;24371:40;24397:13;24371:21;:25;;:40;;;;:::i;:::-;24341:70;;24442:1;24424:15;:19;:46;;;;;24469:1;24447:19;:23;24424:46;24420:198;;;24481:6;::::0;24571:21:::1;::::0;24481:129:::1;::::0;-1:-1:-1;;;24481:129:0;;24541:4:::1;24481:129;::::0;::::1;12440:34:1::0;12490:18;;;12483:34;;;24481:6:0::1;12533:18:1::0;;;12526:34;;;12576:18;;;12569:34;-1:-1:-1;;;;;24571:21:0;;::::1;12619:19:1::0;;;12612:44;24594:15:0::1;12672:19:1::0;;;12665:35;24481:6:0;::::1;::::0;:23:::1;::::0;24512:19;;12374::1;;24481:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24420:198;-1:-1:-1::0;;24647:15:0::1;24624:20;:38:::0;-1:-1:-1;;;;18386:1:0::1;18403:5:::0;18394:14;;-1:-1:-1;;;;18394:14:0;;;23578:1090::o;26642:120::-;26711:12;;26691:4;;26711:12;;;;;:23;;;;-1:-1:-1;26728:6:0;;-1:-1:-1;;;26728:6:0;;;;26727:7;26711:23;:45;;;;-1:-1:-1;;26752:4:0;;-1:-1:-1;;;;;26752:4:0;26738:10;:18;;;26642:120::o;24674:900::-;18366:6;:13;;-1:-1:-1;;;;18366:13:0;-1:-1:-1;;;18366:13:0;;;24774:16:::1;::::0;24763:4:::1;24742:27:::0;;:12:::1;:27;::::0;;;;;:49:::1;::::0;:31:::1;:49::i;:::-;24719:72;;24804:12;24820:1;24804:17:::0;24800:46:::1;;24832:7;;;24800:46;24930:16;::::0;;24944:1:::1;24930:16:::0;;;;;::::1;::::0;;24878:21:::1;::::0;24854::::1;::::0;24930:16;24944:1;24930:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;24930:16:0::1;24906:40;;24971:4;24953;24958:1;24953:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24953:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;24993:6:::1;::::0;:14:::1;::::0;;-1:-1:-1;;;24993:14:0;;;;:6;;;::::1;::::0;:12:::1;::::0;:14:::1;::::0;;::::1;::::0;24953:7;;24993:14;;;;;:6;:14:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24983:4;24988:1;24983:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24983:24:0;;::::1;:7;::::0;;::::1;::::0;;;;;:24;25016:6:::1;::::0;:113:::1;::::0;-1:-1:-1;;;25016:113:0;;:6;::::1;::::0;:58:::1;::::0;:113:::1;::::0;25075:12;;25016:6:::1;::::0;25092:4;;25106::::1;::::0;25113:15:::1;::::0;25016:113:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25138:34;25175:40;25201:13;25175:21;:25;;:40;;;;:::i;:::-;25251:16;::::0;25345:21:::1;::::0;25329:11:::1;::::0;25138:77;;-1:-1:-1;25225:12:0::1;::::0;-1:-1:-1;;;;;25251:16:0;;::::1;::::0;25281:87:::1;::::0;25329:38:::1;::::0;:11;:15:::1;:38::i;:::-;25312:11;::::0;25281:43:::1;::::0;:26;;:30:::1;:43::i;:87::-;25243:142;::::0;25375:5:::1;::::0;25243:142;::::1;::::0;;;;;25375:5;25243:142:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;25414:26:0::1;::::0;25528:21:::1;::::0;25512:11:::1;::::0;25224:161;;-1:-1:-1;;;;;;25414:26:0;;::::1;::::0;25454:97:::1;::::0;25512:38:::1;::::0;:11;:15:::1;:38::i;:::-;25485:21;::::0;25454:53:::1;::::0;:26;;:30:::1;:53::i;:97::-;25406:162;::::0;25558:5:::1;::::0;25406:162;::::1;::::0;;;;;25558:5;25406:162:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;18403:5:0;18394:14;;-1:-1:-1;;;;18394:14:0;;;24674:900::o;26018:207::-;-1:-1:-1;;;;;26107:18:0;;26090:4;26107:18;;;:12;:18;;;;;;;;;:38;;-1:-1:-1;;;;;;26129:16:0;;;;;;:12;:16;;;;;;;;26107:38;26103:73;;;-1:-1:-1;26163:5:0;26156:12;;26103:73;26192:4;;-1:-1:-1;;;;;26192:12:0;;;:4;;:12;;:26;;-1:-1:-1;;26208:4:0;;-1:-1:-1;;;;;26208:10:0;;;:4;;:10;;26018:207;-1:-1:-1;26018:207:0:o;22660:912::-;22805:8;;22843:11;;22880:4;;22769:7;;22805:8;22843:11;-1:-1:-1;;;;;22880:4:0;;;22867:17;;;;22863:121;;22920:7;;22907:8;;:21;;:12;:21::i;:::-;22895:33;;22952:24;22968:7;;22952:11;;:15;;:24;;;;:::i;:::-;22937:39;;22863:121;22992:17;23012:44;23046:9;23012:29;23026:14;;23012:9;:13;;:29;;;;:::i;:::-;:33;;:44::i;:::-;22992:64;;23106:67;23129:43;23163:8;;23129:29;23143:14;;23129:9;:13;;:29;;;;:::i;:43::-;16730:42;23106:18;;:12;:18;;;;;:22;:67::i;:::-;16730:42;23085:18;;:12;:18;;;:88;23293:21;;23210:107;;23242:74;;23276:39;;:12;;:16;:39::i;:::-;23256:14;;23242:29;;:9;;:13;:29::i;:74::-;23231:4;23210:27;;;;:12;:27;;;;;;;:31;:107::i;:::-;23201:4;23180:27;;;;:12;:27;;;;;:137;23436:12;;23416:14;;23362:88;;23402:47;;:29;;:9;;:13;:29::i;:47::-;23375:21;;-1:-1:-1;;;;;23375:21:0;23362:35;;;;:12;:35;;;;;;;:39;:88::i;:::-;23337:21;;-1:-1:-1;;;;;23337:21:0;;;23324:35;;;;:12;:35;;;;;:126;;;;23510:16;;23489:4;;23464:64;;;;;23496:31;;:9;;:13;:31::i;:::-;23464:64;;1618:25:1;;;1606:2;1591:18;23464:64:0;;;;;;;23542:24;:9;23556;23542:13;:24::i;:::-;23535:31;22660:912;-1:-1:-1;;;;;;;22660:912:0:o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;824:131::-;-1:-1:-1;;;;;899:31:1;;889:42;;879:70;;945:1;942;935:12;960:315;1028:6;1036;1089:2;1077:9;1068:7;1064:23;1060:32;1057:52;;;1105:1;1102;1095:12;1057:52;1144:9;1131:23;1163:31;1188:5;1163:31;:::i;:::-;1213:5;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;960:315:1:o;1654:180::-;1713:6;1766:2;1754:9;1745:7;1741:23;1737:32;1734:52;;;1782:1;1779;1772:12;1734:52;-1:-1:-1;1805:23:1;;1654:180;-1:-1:-1;1654:180:1:o;1839:456::-;1916:6;1924;1932;1985:2;1973:9;1964:7;1960:23;1956:32;1953:52;;;2001:1;1998;1991:12;1953:52;2040:9;2027:23;2059:31;2084:5;2059:31;:::i;:::-;2109:5;-1:-1:-1;2166:2:1;2151:18;;2138:32;2179:33;2138:32;2179:33;:::i;:::-;1839:456;;2231:7;;-1:-1:-1;;;2285:2:1;2270:18;;;;2257:32;;1839:456::o;2300:247::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;2467:9;2454:23;2486:31;2511:5;2486:31;:::i;2741:118::-;2827:5;2820:13;2813:21;2806:5;2803:32;2793:60;;2849:1;2846;2839:12;2864:382;2929:6;2937;2990:2;2978:9;2969:7;2965:23;2961:32;2958:52;;;3006:1;3003;2996:12;2958:52;3045:9;3032:23;3064:31;3089:5;3064:31;:::i;:::-;3114:5;-1:-1:-1;3171:2:1;3156:18;;3143:32;3184:30;3143:32;3184:30;:::i;:::-;3233:7;3223:17;;;2864:382;;;;;:::o;3251:523::-;3355:6;3363;3371;3379;3387;3395;3448:3;3436:9;3427:7;3423:23;3419:33;3416:53;;;3465:1;3462;3455:12;3416:53;-1:-1:-1;;3488:23:1;;;3558:2;3543:18;;3530:32;;-1:-1:-1;3609:2:1;3594:18;;3581:32;;3660:2;3645:18;;3632:32;;-1:-1:-1;3711:3:1;3696:19;;3683:33;;-1:-1:-1;3763:3:1;3748:19;3735:33;;-1:-1:-1;3251:523:1;-1:-1:-1;3251:523:1:o;3779:241::-;3835:6;3888:2;3876:9;3867:7;3863:23;3859:32;3856:52;;;3904:1;3901;3894:12;3856:52;3943:9;3930:23;3962:28;3984:5;3962:28;:::i;4025:529::-;4102:6;4110;4118;4171:2;4159:9;4150:7;4146:23;4142:32;4139:52;;;4187:1;4184;4177:12;4139:52;4226:9;4213:23;4245:31;4270:5;4245:31;:::i;:::-;4295:5;-1:-1:-1;4352:2:1;4337:18;;4324:32;4365:33;4324:32;4365:33;:::i;:::-;4417:7;-1:-1:-1;4476:2:1;4461:18;;4448:32;4489:33;4448:32;4489:33;:::i;:::-;4541:7;4531:17;;;4025:529;;;;;:::o;4559:388::-;4627:6;4635;4688:2;4676:9;4667:7;4663:23;4659:32;4656:52;;;4704:1;4701;4694:12;4656:52;4743:9;4730:23;4762:31;4787:5;4762:31;:::i;:::-;4812:5;-1:-1:-1;4869:2:1;4854:18;;4841:32;4882:33;4841:32;4882:33;:::i;5178:356::-;5380:2;5362:21;;;5399:18;;;5392:30;5458:34;5453:2;5438:18;;5431:62;5525:2;5510:18;;5178:356::o;5539:127::-;5600:10;5595:3;5591:20;5588:1;5581:31;5631:4;5628:1;5621:15;5655:4;5652:1;5645:15;5671:422;5760:1;5803:5;5760:1;5817:270;5838:7;5828:8;5825:21;5817:270;;;5897:4;5893:1;5889:6;5885:17;5879:4;5876:27;5873:53;;;5906:18;;:::i;:::-;5956:7;5946:8;5942:22;5939:55;;;5976:16;;;;5939:55;6055:22;;;;6015:15;;;;5817:270;;;5821:3;5671:422;;;;;:::o;6098:806::-;6147:5;6177:8;6167:80;;-1:-1:-1;6218:1:1;6232:5;;6167:80;6266:4;6256:76;;-1:-1:-1;6303:1:1;6317:5;;6256:76;6348:4;6366:1;6361:59;;;;6434:1;6429:130;;;;6341:218;;6361:59;6391:1;6382:10;;6405:5;;;6429:130;6466:3;6456:8;6453:17;6450:43;;;6473:18;;:::i;:::-;-1:-1:-1;;6529:1:1;6515:16;;6544:5;;6341:218;;6643:2;6633:8;6630:16;6624:3;6618:4;6615:13;6611:36;6605:2;6595:8;6592:16;6587:2;6581:4;6578:12;6574:35;6571:77;6568:159;;;-1:-1:-1;6680:19:1;;;6712:5;;6568:159;6759:34;6784:8;6778:4;6759:34;:::i;:::-;6829:6;6825:1;6821:6;6817:19;6808:7;6805:32;6802:58;;;6840:18;;:::i;:::-;6878:20;;6098:806;-1:-1:-1;;;6098:806:1:o;6909:140::-;6967:5;6996:47;7037:4;7027:8;7023:19;7017:4;6996:47;:::i;7054:168::-;7094:7;7160:1;7156;7152:6;7148:14;7145:1;7142:21;7137:1;7130:9;7123:17;7119:45;7116:71;;;7167:18;;:::i;:::-;-1:-1:-1;7207:9:1;;7054:168::o;7227:127::-;7288:10;7283:3;7279:20;7276:1;7269:31;7319:4;7316:1;7309:15;7343:4;7340:1;7333:15;7359:112;7391:1;7417;7407:35;;7422:18;;:::i;:::-;-1:-1:-1;7456:9:1;;7359:112::o;7476:125::-;7516:4;7544:1;7541;7538:8;7535:34;;;7549:18;;:::i;:::-;-1:-1:-1;7586:9:1;;7476:125::o;7885:245::-;7952:6;8005:2;7993:9;7984:7;7980:23;7976:32;7973:52;;;8021:1;8018;8011:12;7973:52;8053:9;8047:16;8072:28;8094:5;8072:28;:::i;9319:127::-;9380:10;9375:3;9371:20;9368:1;9361:31;9411:4;9408:1;9401:15;9435:4;9432:1;9425:15;9451:251;9521:6;9574:2;9562:9;9553:7;9549:23;9545:32;9542:52;;;9590:1;9587;9580:12;9542:52;9622:9;9616:16;9641:31;9666:5;9641:31;:::i;9707:980::-;9969:4;10017:3;10006:9;10002:19;10048:6;10037:9;10030:25;10074:2;10112:6;10107:2;10096:9;10092:18;10085:34;10155:3;10150:2;10139:9;10135:18;10128:31;10179:6;10214;10208:13;10245:6;10237;10230:22;10283:3;10272:9;10268:19;10261:26;;10322:2;10314:6;10310:15;10296:29;;10343:1;10353:195;10367:6;10364:1;10361:13;10353:195;;;10432:13;;-1:-1:-1;;;;;10428:39:1;10416:52;;10523:15;;;;10488:12;;;;10464:1;10382:9;10353:195;;;-1:-1:-1;;;;;;;10604:32:1;;;;10599:2;10584:18;;10577:60;-1:-1:-1;;;10668:3:1;10653:19;10646:35;10565:3;9707:980;-1:-1:-1;;;9707:980:1:o;11099:128::-;11139:3;11170:1;11166:6;11163:1;11160:13;11157:39;;;11176:18;;:::i;:::-;-1:-1:-1;11212:9:1;;11099:128::o;11232:120::-;11272:1;11298;11288:35;;11303:18;;:::i;:::-;-1:-1:-1;11337:9:1;;11232:120::o;11706:135::-;11745:3;11766:17;;;11763:43;;11786:18;;:::i;:::-;-1:-1:-1;11833:1:1;11822:13;;11706:135::o;12711:306::-;12799:6;12807;12815;12868:2;12856:9;12847:7;12843:23;12839:32;12836:52;;;12884:1;12881;12874:12;12836:52;12913:9;12907:16;12897:26;;12963:2;12952:9;12948:18;12942:25;12932:35;;13007:2;12996:9;12992:18;12986:25;12976:35;;12711:306;;;;;:::o

Swarm Source

ipfs://2c32edddf546bdb553ef4d5962a597b2853d73c8ff68fe2f5f4f6f70fbcf3654
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.