Contract 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e7

Contract Overview

Balance:
1.352485752240494958 AVAX

AVAX Value:
$21.79 (@ $16.11/AVAX)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x56837f74ff16f881dffc6a10c0aa7a0f907de702cb002f50e7a7ead675cb22cbTransfer167261572022-06-30 19:07:2015 hrs 16 mins ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0017628595 26.5
0x2b10d8cb50c975e06f1859b2046133bcfefed777c72c0400388aa3f1196d14a7Transfer167261092022-06-30 19:05:4415 hrs 17 mins ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.007254163 26.5
0xa7c48884a8d14278f835904543e95a1040aab0401b98a05b6bd938b478dec649Transfer167142262022-06-30 12:29:2121 hrs 54 mins ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0032718225 26.5
0x63b558a91cea86984e11ca8a6df15cad1e04ddb63bb99cf309525c9cf27eccdcTransfer167140592022-06-30 12:23:4721 hrs 59 mins ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0017628595 26.5
0x3f5c32604cf739021d4c6b16cde879463bb64b7b4f343d5eee08b769c775dd10Transfer167140472022-06-30 12:23:2322 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.007535699 26.5
0x83cf1f6301d92d6f49460a45bcfed9b2aa8349a9f238ecdf9149100acd8e3fb3Approve166855472022-06-29 20:32:301 day 13 hrs ago0x37c86f87a71b2d64fe699bc6a8ccb11ec6a0757b IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001233628 26.5
0x16717ab612bd0a535e19bf798abf536a3b8f1b8faba95a2ceeac95fc6c13c0dfApprove166703352022-06-29 12:05:021 day 22 hrs ago0x421b09d1b4719a1f871543aa027ea0d0d5b0c7ae IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0007329327.5
0xe7b78750ca4de1ac127139ef7657df856c2d98bab5f305b96b878b236771b51aApprove166703192022-06-29 12:04:291 day 22 hrs ago0x421b09d1b4719a1f871543aa027ea0d0d5b0c7ae IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0012801827.5
0x808b210e5afb2855103bd8289f4968bf37a3ffcbee356e2db420b57929087ca3Transfer166690532022-06-29 11:22:171 day 23 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0017628595 26.5
0x8c4c2eced0e252babf138a7a9e6d59eb35e9d3143ee2cc663620d9570a797354Transfer166690382022-06-29 11:21:491 day 23 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.006655899 26.5
0x8b54e319bbd5e331ee37409f08e6e906fde9367bb53f85307194f15cb29d0506Approve166646632022-06-29 8:55:412 days 1 hr ago0xe0b3765adb36b897a8f3327931b21566568f2b9a IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0012801827.5
0x17b6d47ccca72cc2851f8bad4cfce83da9eac9bd8a181af7781cd76a2ca3d094Approve166642202022-06-29 8:40:462 days 1 hr ago0x3cacf0e86fee51f241ba0846f55ab47f5cc77f4d IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0012801827.5
0xa490421984ae4c8a74f960cc88e9bfa70e4dee8429ae91c639e9b3e5060f88f3Approve166622102022-06-29 7:33:412 days 2 hrs ago0x711826f7d81529f7b7aedcca03c221eda6d2389d IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0012801827.5
0x6035d68f5578b89799a75083bdd58ca1a4b759bf2cc8ff2b05951e57bd32c65eTransfer166617092022-06-29 7:17:292 days 3 hrs ago0x7b462a2e33586a4e15e1034ed80ea216adde48ba IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.00712200527.5
0x8ed6b702d07c902400552f503185d67135cb57eb56568b766581319a1d8bf563Transfer166583722022-06-29 5:27:042 days 4 hrs ago0x09f7b26f83835c32bc042e372abd65c2afbe1716 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.003157604126.1
0x71ad7deb779125713016bdea63a9ab79c6a2948b24a97ec811dddbf4205ceb3dTransfer166578552022-06-29 5:09:502 days 5 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0017628595 26.5
0x7a8b7a602d3c64ad4ba2554357360b5368285b1426bbf57739d74e277e6ba7f0Transfer166577652022-06-29 5:06:502 days 5 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.006479939 26.5
0x9ef6a5550c64502d21ed575f35e5b89dfbae7551f0c931165371cd8be2b5a79eApprove166386222022-06-28 18:27:302 days 15 hrs ago0x4548bbbdbfa33e79aa939ee8e3f353ae042cfffd IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001233628 26.5
0x26160bfff5e046f6c64f1bcac2761774acad897518e863d396850549e3400409Approve166379872022-06-28 18:06:362 days 16 hrs ago0x9d802a2c1f955b1fecf7c149827f13eab178c129 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001236048704 26.552000009
0x89af493f47af4baab63753ec40eb04c769688bb7c811249a9dc0528583b8cb77Transfer166253822022-06-28 11:07:272 days 23 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0017628595 26.5
0x378135fab6290125f62f75dd53719c4becade2644ef59e6af5e2a642293b2904Transfer166253662022-06-28 11:06:572 days 23 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.006515131 26.5
0xddb618c547c6ed9f6fd2bd55d4c2eedf0864c763e760da8289edca396ca670cbApprove166232942022-06-28 9:57:333 days 26 mins ago0x4488ce10f3ffb7bd5c7265ce1b4484174157683e IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001233628 26.5
0xdab5fe03d70351ac3262df0da5b0029ecfedc3deb9c334c97670a20d93e86159Transfer165709832022-06-27 4:50:584 days 5 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.008239539 26.5
0xe50eac398e55e23a5c34a7b795e88af008a121d97340320f02f28a09f4a01fb8Approve165464412022-06-26 15:10:594 days 19 hrs ago0xb163f14787aa4511bdf9aeb0be662b9cfd30af18 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.00121035226
0xe6c7735f82e76a4d2ae13cfe3c62fbd53b792151cb08bb8f84955d5252a91789Transfer165392132022-06-26 11:08:534 days 23 hrs ago0xaf192ac7de706129cc714ccdb95fb6f82397ca38 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.00711966062 26.41
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xd77c605aae2286dbb28f538948f057ec32fcfe2bbcfcad8e262f57e80e3eac0d167534292022-07-01 10:17:006 mins ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.00525159343996904 AVAX
0xd77c605aae2286dbb28f538948f057ec32fcfe2bbcfcad8e262f57e80e3eac0d167534292022-07-01 10:17:006 mins ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.002100637375987616 AVAX
0xd77c605aae2286dbb28f538948f057ec32fcfe2bbcfcad8e262f57e80e3eac0d167534292022-07-01 10:17:006 mins ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.007352230815956657 AVAX
0x3dbb617bb27ca844029e1e34c0d893fb4c79963c54ab628b5943ad8326c10a9b167534102022-07-01 10:16:237 mins ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c1.053859628686878267 AVAX
0x3dbb617bb27ca844029e1e34c0d893fb4c79963c54ab628b5943ad8326c10a9b167534102022-07-01 10:16:237 mins ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.421543851474751306 AVAX
0x3dbb617bb27ca844029e1e34c0d893fb4c79963c54ab628b5943ad8326c10a9b167534102022-07-01 10:16:237 mins ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e71.475403480161629574 AVAX
0x2b10d8cb50c975e06f1859b2046133bcfefed777c72c0400388aa3f1196d14a7167261092022-06-30 19:05:4415 hrs 17 mins ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.138277048498669147 AVAX
0x2b10d8cb50c975e06f1859b2046133bcfefed777c72c0400388aa3f1196d14a7167261092022-06-30 19:05:4415 hrs 17 mins ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.055310819399467659 AVAX
0x2b10d8cb50c975e06f1859b2046133bcfefed777c72c0400388aa3f1196d14a7167261092022-06-30 19:05:4415 hrs 17 mins ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.193587867898136807 AVAX
0x3f5c32604cf739021d4c6b16cde879463bb64b7b4f343d5eee08b769c775dd10167140472022-06-30 12:23:2322 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c3.614537362701367912 AVAX
0x3f5c32604cf739021d4c6b16cde879463bb64b7b4f343d5eee08b769c775dd10167140472022-06-30 12:23:2322 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17161.445814945080547165 AVAX
0x3f5c32604cf739021d4c6b16cde879463bb64b7b4f343d5eee08b769c775dd10167140472022-06-30 12:23:2322 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e75.060352307781915078 AVAX
0x490eb8a153c4c5595b685383c693233b9b40e068ff156c5b943a584c058bea1d166988992022-06-30 3:58:201 day 6 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c7.795622096115956231 AVAX
0x490eb8a153c4c5595b685383c693233b9b40e068ff156c5b943a584c058bea1d166988992022-06-30 3:58:201 day 6 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17163.118248838446382492 AVAX
0x490eb8a153c4c5595b685383c693233b9b40e068ff156c5b943a584c058bea1d166988992022-06-30 3:58:201 day 6 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e710.913870934562338724 AVAX
0x490eb8a153c4c5595b685383c693233b9b40e068ff156c5b943a584c058bea1d166988992022-06-30 3:58:201 day 6 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.036633129008727537 AVAX
0x490eb8a153c4c5595b685383c693233b9b40e068ff156c5b943a584c058bea1d166988992022-06-30 3:58:201 day 6 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e7 Trader Joe: Router8.197945246250998774 AVAX
0x490eb8a153c4c5595b685383c693233b9b40e068ff156c5b943a584c058bea1d166988992022-06-30 3:58:201 day 6 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e78.197945246250998774 AVAX
0xf3481bfff286e2be2a9206c56e9a0831ec1677db970e8f8074d3fff1cc4be1ae166946452022-06-30 1:36:031 day 8 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.413864838880382086 AVAX
0xf3481bfff286e2be2a9206c56e9a0831ec1677db970e8f8074d3fff1cc4be1ae166946452022-06-30 1:36:031 day 8 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.165545935552152834 AVAX
0xf3481bfff286e2be2a9206c56e9a0831ec1677db970e8f8074d3fff1cc4be1ae166946452022-06-30 1:36:031 day 8 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.579410774432534921 AVAX
0xd8203f5731230d66c6c7f6f33587cfdfcb06bb221cea3f86a618c1c87282bd77166857912022-06-29 20:40:351 day 13 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c3.595766074792865962 AVAX
0xd8203f5731230d66c6c7f6f33587cfdfcb06bb221cea3f86a618c1c87282bd77166857912022-06-29 20:40:351 day 13 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17161.438306429917146385 AVAX
0xd8203f5731230d66c6c7f6f33587cfdfcb06bb221cea3f86a618c1c87282bd77166857912022-06-29 20:40:351 day 13 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e75.034072504710012348 AVAX
0x031f520d27339f26e12f72ec3103a50be54d8a5048e1a8ad6023ec883a62fd82166705362022-06-29 12:11:441 day 22 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.316443162564047865 AVAX
[ Download CSV Export 
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
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.