Contract 0x8e83eb3cc2585b9648687c3d1d9c7a2d17448772 1

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd674ddf861dd7363ae3d78d166de120cba9636bd5d295d1a6028f6a778395716Approve131731232021-12-04 0:25:452 days 21 hrs ago0x91dab44442277fcdc0cf1009b3997e292b03f110 IN  Daftcoin: DAFT Token0 BNB0.000311521
0x6ef992b410b003abd966cb34534d7b237e540e235a8e54d44e4a2ddc662ee710Transfer131416472021-12-02 21:51:203 days 23 hrs ago0x1c22e85f8fdae0b611885c5a73b5c96a4b5e3265 IN  Daftcoin: DAFT Token0 BNB0.001308815
0xad41f7be0c3612fabf2794d2e9c7c96360da1fed342d8948749be80cbf05a196Approve130766832021-11-30 12:43:506 days 8 hrs ago0x6f50f0c944f545f39010fa6df7f035e0ac253787 IN  Daftcoin: DAFT Token0 BNB0.000222515
0x47eb4c9ac624becfe490473fd1ef52ef4a7c4ddc291e198778b5da1a4f4c179fApprove130598232021-11-29 21:31:487 days 5 mins ago0xe4806499cdb7988d6efe6508a2ae2b1fe043e9ac IN  Daftcoin: DAFT Token0 BNB0.0000728
0x556cec94284fca7b8f95b4a080fcd5f6055bd703352dc49792b96979684921b1Approve130598152021-11-29 21:31:247 days 5 mins ago0xe4806499cdb7988d6efe6508a2ae2b1fe043e9ac IN  Daftcoin: DAFT Token0 BNB0.0000728
0x5af1245110923f2673c1cc2ea44c72a28e8456d5b5fd80a5f4f5ebf4e6420d4fApprove130515442021-11-29 14:05:397 days 7 hrs ago0x1489c3a35e681a35252d22ad5e4bdf7bad071cff IN  Daftcoin: DAFT Token0 BNB0.000267018
0x645a117662c4d48b9763aad3ef0c1c518e3a1838483cb41d25feb7386170edb9Approve130358022021-11-28 23:25:587 days 22 hrs ago0xba98bbf6cec95101a7774260ba43718b47791e44 IN  Daftcoin: DAFT Token0 BNB0.000222515
0xc76530d493e803aeeb69727e948b4cec9d0c5474d878e9cf0b0668c3b3e9a3eeTransfer130317922021-11-28 19:50:188 days 1 hr ago0x59369632f57a12f64360cc4a622b2fc7c5838390 IN  Daftcoin: DAFT Token0 BNB0.001570578
0x9f90ccd760561853f6594c230dc5e9a3a8357c5cc3d17d6da50bac75b95473daApprove130020402021-11-27 17:17:479 days 4 hrs ago0x50e49d722ffa77238ad31bcd654829671e111ccf IN  Daftcoin: DAFT Token0 BNB0.0000728
0x403cda84349fe58abaa2b732ea0f7b9c01624679a4deb7b8ea0e5a5e8999a300Approve130020162021-11-27 17:16:279 days 4 hrs ago0x50e49d722ffa77238ad31bcd654829671e111ccf IN  Daftcoin: DAFT Token0 BNB0.0000728
0x903c7fb2b6f94162c00b2e8f293dff6961e5d57f2da7e90db5996cbce08fa5caApprove129796922021-11-26 21:11:5410 days 25 mins ago0x581ff76e1e62781e3929002776091a11975d5f5b IN  Daftcoin: DAFT Token0 BNB0.0000728
0xf3b7d68e87aefbe050c1b92f3120630cd8a9a57819d9d238d77c649109e7c3b5Approve128348952021-11-21 13:18:3415 days 8 hrs ago0x679d1c9f327257c4cec9ebc1c7c750728351e989 IN  Daftcoin: DAFT Token0 BNB0.0000728
0x65a6c380d4d5fe37630bfc8bdff875fc88bf319728188742c6d31c2f11684749Transfer128144672021-11-20 20:01:2816 days 1 hr ago0x171bf9bdecdaa811aa4d1087f7f9fc2633e56092 IN  Daftcoin: DAFT Token0 BNB0.001308695
0x25c8a57bdfec9070512d5e9e8f7b1aba38193c983afae2783a2dae26f4fa3db2Approve127266292021-11-17 15:37:5219 days 5 hrs ago0x2be8c93c022cee0dd23399d689ba5ea6ed30bacf IN  Daftcoin: DAFT Token0 BNB0.000222515
0xe1e113ccf323a286add14cfa047bb827ce4d870f47118909f6fd76832f8dad2aApprove127265332021-11-17 15:32:3519 days 6 hrs ago0x2be8c93c022cee0dd23399d689ba5ea6ed30bacf IN  Daftcoin: DAFT Token0 BNB0.000222515
0xc5d8dfabac10b71fc2a1b1c00e32dab024f928eca6892b8e60b2809d5d38d311Transfer127201162021-11-17 9:46:4519 days 11 hrs ago0xab2d3dba94be5d0651daa9e6ac04699f9d509a44 IN  Daftcoin: DAFT Token0 BNB0.001308815
0xa3ccd736453821a90d295c029ca11f294174d1da306f97d53671320b9cebccecApprove127199932021-11-17 9:40:3519 days 11 hrs ago0x9e52abacf8c49900b9ea598b62bbc4ea8fecef81 IN  Daftcoin: DAFT Token0 BNB0.000222515
0xf124c40ffdfde1e761d1cf974cd1a857b76a54dd3d4c2e736b6e60b8d2eaec3eApprove126965962021-11-16 12:39:0320 days 8 hrs ago0x65f4827e18d1c722c338f2acc20dc5b941abd4cf IN  Daftcoin: DAFT Token0 BNB0.000149514
0xe4e98d10f16fb9b03edcaa8fb3eb7813067e5418804a158df2b4729bf9430e8eApprove126965402021-11-16 12:35:5420 days 9 hrs ago0x65f4827e18d1c722c338f2acc20dc5b941abd4cf IN  Daftcoin: DAFT Token0 BNB0.0001132768
0x3df4d3a6c8882ecbed9a85ba8e96e2c2dc0aafaeb3736beec0158c348bee9abbApprove126949212021-11-16 11:03:1220 days 10 hrs ago0xa225733bf0b2adb1d1494aa6455a85a6fcb6d4a9 IN  Daftcoin: DAFT Token0 BNB0.000222515
0x806ad06850804c2108130e642e810035ce4eb64023f8566e9fa0a23e5c6801b3Approve126757362021-11-15 18:26:3721 days 3 hrs ago0xb5b0059aa3c2b17993d24f6e8b39bc5e57501c3a IN  Daftcoin: DAFT Token0 BNB0.0002892695
0xd97447d183cbf10f247629a77523ba05c7168cfc01a4dfd6ff552a7494f0008aApprove126512742021-11-14 20:46:5922 days 49 mins ago0xab02e5961625b956e682b311aa223633488ee33b IN  Daftcoin: DAFT Token0 BNB0.000222515
0x97991c4b4e42157629d0fa05e298cdb2ab3337e9aa5e3904ff7eda5ca60ed806Approve125969892021-11-12 22:12:3123 days 23 hrs ago0x7bb0564d687d37f4a14756af419a7733a541adab IN  Daftcoin: DAFT Token0 BNB0.0000728
0x6bef0a79082d767f4b9d772c8abad9ed73a1a7e3ecaba27354ff10fdba75404fApprove125898772021-11-12 16:05:2224 days 5 hrs ago0xeb23a0b84282c512d67f880fef252aba370bbbf8 IN  Daftcoin: DAFT Token0 BNB0.000222515
0x80b613798ebb4c06a93829371402d36223f687608a0ad7ec4ff54b44271ba55fTransfer125872382021-11-12 13:41:3024 days 7 hrs ago0x8c4e992dc4256658231697f73835f9b87227efc2 IN  Daftcoin: DAFT Token0 BNB0.00157065
[ Download CSV Export 

OVERVIEW

Daft coin works by applying a 1-10% fee to each transaction and instantly splitting that fee among all holders of the token. Holders do not need to stake or wait for fees to be delivered.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xadc83884c043b86a8c943161fc0c7066d73bffbfbfe7e9a0b5cc19c261eb8b2c54711032021-03-07 11:48:06274 days 9 hrs ago PancakeSwap: DAFT Daftcoin: DAFT Token0 BNB
0xadc83884c043b86a8c943161fc0c7066d73bffbfbfe7e9a0b5cc19c261eb8b2c54711032021-03-07 11:48:06274 days 9 hrs ago PancakeSwap: DAFT Daftcoin: DAFT Token0 BNB
0xa5697e6d399333b2cafee88f8cbef965ae42ef70ed393a351ec6f03e54c4031b54710462021-03-07 11:45:15274 days 9 hrs ago PancakeSwap: DAFT Daftcoin: DAFT Token0 BNB
0xa5697e6d399333b2cafee88f8cbef965ae42ef70ed393a351ec6f03e54c4031b54710462021-03-07 11:45:15274 days 9 hrs ago PancakeSwap: DAFT Daftcoin: DAFT Token0 BNB
0x3664ba8c82c58bcfaa7e43299750ccd440e107b1336cc2ead67c4555bf5450ae54699202021-03-07 10:48:57274 days 10 hrs ago PancakeSwap: DAFT Daftcoin: DAFT Token0 BNB
0x3664ba8c82c58bcfaa7e43299750ccd440e107b1336cc2ead67c4555bf5450ae54699202021-03-07 10:48:57274 days 10 hrs ago PancakeSwap: DAFT Daftcoin: DAFT Token0 BNB
0xdf872182eeb40754fe9bc6061e98f0a000ce8972e904a3ab1e07d14a0974139054690022021-03-07 10:03:03274 days 11 hrs ago PancakeSwap: DAFT Daftcoin: DAFT Token0 BNB
0xdf872182eeb40754fe9bc6061e98f0a000ce8972e904a3ab1e07d14a0974139054690022021-03-07 10:03:03274 days 11 hrs ago PancakeSwap: Router Daftcoin: DAFT Token0 BNB
0xdf872182eeb40754fe9bc6061e98f0a000ce8972e904a3ab1e07d14a0974139054690022021-03-07 10:03:03274 days 11 hrs ago PancakeSwap: Router Daftcoin: DAFT Token0 BNB
0xea0a5a67c4ff5976ffdf37f43b8704484726761dbf10e8248655dc461a1eabd754686932021-03-07 9:47:36274 days 11 hrs ago PancakeSwap: DAFT Daftcoin: DAFT Token0 BNB
0xea0a5a67c4ff5976ffdf37f43b8704484726761dbf10e8248655dc461a1eabd754686932021-03-07 9:47:36274 days 11 hrs ago PancakeSwap: DAFT Daftcoin: DAFT Token0 BNB
0xbc910594629e866a44a435fe6f47f29358b955cfd1763588a3137d52dacb2ac154671142021-03-07 8:28:39274 days 13 hrs ago 0x0c5362f7c80ff3124843df2510b9e7368e237ea6 Daftcoin: DAFT Token0 BNB
0x5746d45e0181b0d669bda39dfdf377e7f1a4ee1b496b1a877b7840735be5c89754665162021-03-07 7:58:45274 days 13 hrs ago 0x0c5362f7c80ff3124843df2510b9e7368e237ea6 Daftcoin: DAFT Token0 BNB
0x7e07bdd6ea101b7d02f05cb0575ca75184efc7358c283c0437bcb6ac2360c25654659132021-03-07 7:28:36274 days 14 hrs ago PancakeSwap: DAFT Daftcoin: DAFT Token0 BNB
0x7e07bdd6ea101b7d02f05cb0575ca75184efc7358c283c0437bcb6ac2360c25654659132021-03-07 7:28:36274 days 14 hrs ago PancakeSwap: Router Daftcoin: DAFT Token0 BNB
0x7e07bdd6ea101b7d02f05cb0575ca75184efc7358c283c0437bcb6ac2360c25654659132021-03-07 7:28:36274 days 14 hrs ago PancakeSwap: Router Daftcoin: DAFT Token0 BNB
0x136f252e09f4f62afccc96052683f1f744f7dac2ced5622415e138a3da4f841954659102021-03-07 7:28:27274 days 14 hrs ago 0x0c5362f7c80ff3124843df2510b9e7368e237ea6 Daftcoin: DAFT Token0 BNB
0xead90ed90bd404a2fa3aa41456e19b57ad6ed7419cfed733b1bc72c5ecfaf7ed54654672021-03-07 7:06:18274 days 14 hrs ago PancakeSwap: DAFT Daftcoin: DAFT Token0 BNB
0xead90ed90bd404a2fa3aa41456e19b57ad6ed7419cfed733b1bc72c5ecfaf7ed54654672021-03-07 7:06:18274 days 14 hrs ago PancakeSwap: Router Daftcoin: DAFT Token0 BNB
0xead90ed90bd404a2fa3aa41456e19b57ad6ed7419cfed733b1bc72c5ecfaf7ed54654672021-03-07 7:06:18274 days 14 hrs ago PancakeSwap: Router Daftcoin: DAFT Token0 BNB
0x9964f488a769f5416bd13c67966dc59559831823ca17dadd7dd85cc0257fdbff54652712021-03-07 6:56:30274 days 14 hrs ago 0x0c5362f7c80ff3124843df2510b9e7368e237ea6 Daftcoin: DAFT Token0 BNB
0x9964f488a769f5416bd13c67966dc59559831823ca17dadd7dd85cc0257fdbff54652712021-03-07 6:56:30274 days 14 hrs ago 0x0c5362f7c80ff3124843df2510b9e7368e237ea6 Daftcoin: DAFT Token0 BNB
0x0c2e195a9f8f01111585d17ac65c885513ddc8edd550814b446cb5a8379cc0a354640752021-03-07 5:56:32274 days 15 hrs ago PancakeSwap: DAFT Daftcoin: DAFT Token0 BNB
0x0c2e195a9f8f01111585d17ac65c885513ddc8edd550814b446cb5a8379cc0a354640752021-03-07 5:56:32274 days 15 hrs ago PancakeSwap: Router Daftcoin: DAFT Token0 BNB
0x0c2e195a9f8f01111585d17ac65c885513ddc8edd550814b446cb5a8379cc0a354640752021-03-07 5:56:32274 days 15 hrs ago PancakeSwap: Router Daftcoin: DAFT Token0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DaftCoin

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-03-01
*/

/**
// pBLK is a deflationary token with a 0.5-10% adjustable redistribution tax & 0.5-10% burn rate
*/

pragma solidity ^0.6.0;


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

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

/**
 * @dev Interface of the BEP20 standard as defined in the EIP.
 */
interface IBEP20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

/**
 * @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.
 */
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 () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view 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 {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract DaftCoin is Context, IBEP20, Ownable {
    using SafeMath for uint256;
    using Address for address;

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

    mapping (address => bool) private _isExcluded;
    address[] private _excluded;
    
    string  private constant _NAME = 'DaftCoin';
    string  private constant _SYMBOL = 'DAFT';
    uint8   private constant _DECIMALS = 8;
   
    uint256 private constant _MAX = ~uint256(0);
    uint256 private constant _DECIMALFACTOR = 10 ** uint256(_DECIMALS);
    uint256 private constant _GRANULARITY = 100;
    
    uint256 private _tTotal = 100000000 * _DECIMALFACTOR;
    uint256 private _rTotal = (_MAX - (_MAX % _tTotal));
    
    uint256 private _tFeeTotal;
    uint256 private _tBurnTotal;
    
    uint256 private      _TAX_FEE = 0;
    uint256 private     _BURN_FEE = 0;
    uint256 private constant _MAX_TX_SIZE = 100000000 * _DECIMALFACTOR;

    constructor () public {
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance"));
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "BEP20: decreased allowance below zero"));
        return true;
    }

    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }
    
    function totalBurn() public view returns (uint256) {
        return _tBurnTotal;
    }

    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function excludeAccount(address account) external onlyOwner() {
        require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude Uniswap router.');
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

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

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        if(sender != owner() && recipient != owner())
            require(amount <= _MAX_TX_SIZE, "Transfer amount exceeds the maxTxAmount.");
        
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount);
        uint256 rBurn =  tBurn.mul(currentRate);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);       
        _reflectFee(rFee, rBurn, tFee, tBurn);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount);
        uint256 rBurn =  tBurn.mul(currentRate);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);           
        _reflectFee(rFee, rBurn, tFee, tBurn);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount);
        uint256 rBurn =  tBurn.mul(currentRate);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
        _reflectFee(rFee, rBurn, tFee, tBurn);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount);
        uint256 rBurn =  tBurn.mul(currentRate);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        
        _reflectFee(rFee, rBurn, tFee, tBurn);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _reflectFee(uint256 rFee, uint256 rBurn, uint256 tFee, uint256 tBurn) private {
        _rTotal = _rTotal.sub(rFee).sub(rBurn);
        _tFeeTotal = _tFeeTotal.add(tFee);
        _tBurnTotal = _tBurnTotal.add(tBurn);
        _tTotal = _tTotal.sub(tBurn);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getTValues(tAmount, _TAX_FEE, _BURN_FEE);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tBurn, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tBurn);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 burnFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = ((tAmount.mul(taxFee)).div(_GRANULARITY)).div(100);
        uint256 tBurn = ((tAmount.mul(burnFee)).div(_GRANULARITY)).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tBurn);
        return (tTransferAmount, tFee, tBurn);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tBurn, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rBurn = tBurn.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn);
        return (rAmount, rTransferAmount, rFee);
    }

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

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
    
    function _getTaxFee() private view returns(uint256) {
        return _TAX_FEE;
    }

    function _setTaxFee(uint256 taxFee) external onlyOwner() {
        require(taxFee >= 50 && taxFee <= 1000, 'taxFee should be in 1 - 10');
        _TAX_FEE = taxFee;
    }

    function _setBurnFee(uint256 burnFee) external onlyOwner() {
        require(burnFee >= 50 && burnFee <= 1000, 'burnFee should be in 1 - 10');
        _BURN_FEE = burnFee;
    }

    function _getMaxTxAmount() private view returns(uint256) {
        return _MAX_TX_SIZE;
    }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"_setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"_setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600860ff16600a0a6305f5e10002600655600654600019816200002357fe5b06600019036007556000600a556000600b553480156200004257600080fd5b50600062000055620001c560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600754600160006200010a620001c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000158620001c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a3620001cd565b600033905090565b61391780620001dd6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80635880b873116100c3578063a9059cbb1161007c578063a9059cbb1461063e578063cba0e996146106a2578063dd62ed3e146106fc578063f2cc0c1814610774578063f2fde38b146107b8578063f84354f1146107fc57610158565b80635880b8731461049357806370a08231146104c1578063715018a6146105195780638da5cb5b1461052357806395d89b4114610557578063a457c2d7146105da57610158565b8063313ce56711610115578063313ce5671461034657806339509351146103675780633b6b1961146103cb5780633bd5d173146103f95780633c9f861d146104275780634549b0391461044557610158565b806306fdde031461015d578063095ea7b3146101e057806313114a9d1461024457806318160ddd1461026257806323b872dd146102805780632d83811914610304575b600080fd5b610165610840565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a557808201518184015260208101905061018a565b50505050905090810190601f1680156101d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022c600480360360408110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087d565b60405180821515815260200191505060405180910390f35b61024c61089b565b6040518082815260200191505060405180910390f35b61026a6108a5565b6040518082815260200191505060405180910390f35b6102ec6004803603606081101561029657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108af565b60405180821515815260200191505060405180910390f35b6103306004803603602081101561031a57600080fd5b8101908080359060200190929190505050610988565b6040518082815260200191505060405180910390f35b61034e610a0c565b604051808260ff16815260200191505060405180910390f35b6103b36004803603604081101561037d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a15565b60405180821515815260200191505060405180910390f35b6103f7600480360360208110156103e157600080fd5b8101908080359060200190929190505050610ac8565b005b6104256004803603602081101561040f57600080fd5b8101908080359060200190929190505050610c1f565b005b61042f610db0565b6040518082815260200191505060405180910390f35b61047d6004803603604081101561045b57600080fd5b8101908080359060200190929190803515159060200190929190505050610dba565b6040518082815260200191505060405180910390f35b6104bf600480360360208110156104a957600080fd5b8101908080359060200190929190505050610e71565b005b610503600480360360208110156104d757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc8565b6040518082815260200191505060405180910390f35b6105216110b3565b005b61052b611239565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61055f611262565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561059f578082015181840152602081019050610584565b50505050905090810190601f1680156105cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610626600480360360408110156105f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061129f565b60405180821515815260200191505060405180910390f35b61068a6004803603604081101561065457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061136c565b60405180821515815260200191505060405180910390f35b6106e4600480360360208110156106b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061138a565b60405180821515815260200191505060405180910390f35b61075e6004803603604081101561071257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e0565b6040518082815260200191505060405180910390f35b6107b66004803603602081101561078a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611467565b005b6107fa600480360360208110156107ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061181a565b005b61083e6004803603602081101561081257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a25565b005b60606040518060400160405280600881526020017f44616674436f696e000000000000000000000000000000000000000000000000815250905090565b600061089161088a611daf565b8484611db7565b6001905092915050565b6000600854905090565b6000600654905090565b60006108bc848484611fae565b61097d846108c8611daf565b6109788560405180606001604052806028815260200161379060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092e611daf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e99092919063ffffffff16565b611db7565b600190509392505050565b60006007548211156109e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613740602a913960400191505060405180910390fd5b60006109ef6125a9565b9050610a0481846125d490919063ffffffff16565b915050919050565b60006008905090565b6000610abe610a22611daf565b84610ab98560036000610a33611daf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261e90919063ffffffff16565b611db7565b6001905092915050565b610ad0611daf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60328110158015610ba357506103e88111155b610c15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6275726e4665652073686f756c6420626520696e2031202d203130000000000081525060200191505060405180910390fd5b80600b8190555050565b6000610c29611daf565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610cce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613894602c913960400191505060405180910390fd5b6000610cd9836126a6565b50505050509050610d3281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270e90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d8a8160075461270e90919063ffffffff16565b600781905550610da58360085461261e90919063ffffffff16565b600881905550505050565b6000600954905090565b6000600654831115610e34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610e54576000610e44846126a6565b5050505050905080915050610e6b565b6000610e5f846126a6565b50505050915050809150505b92915050565b610e79611daf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60328110158015610f4c57506103e88111155b610fbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7461784665652073686f756c6420626520696e2031202d20313000000000000081525060200191505060405180910390fd5b80600a8190555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561106357600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506110ae565b6110ab600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610988565b90505b919050565b6110bb611daf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4441465400000000000000000000000000000000000000000000000000000000815250905090565b60006113626112ac611daf565b8461135d8560405180606001604052806025815260200161384d60259139600360006112d6611daf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e99092919063ffffffff16565b611db7565b6001905092915050565b6000611380611379611daf565b8484611fae565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61146f611daf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461152f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138726022913960400191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561175c57611718600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610988565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611822611daf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061376a6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a2d611daf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611dab578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611be057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d9e57600560016005805490500381548110611c3c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611c7457fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611d6457fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611dab565b8080600101915050611baf565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061371c6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ec3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138c06022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612034576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806136f76025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061382a6023913960400191505060405180910390fd5b60008111612113576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806138016029913960400191505060405180910390fd5b61211b611239565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121895750612159611239565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121f557600860ff16600a0a6305f5e100028111156121f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806137b86028913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122985750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122ad576122a8838383612758565b6124e4565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123505750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612365576123608383836129d6565b6124e3565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124095750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561241e57612419838383612c54565b6124e2565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124c05750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124d5576124d0838383612e3d565b6124e1565b6124e0838383612c54565b5b5b5b5b505050565b6000838311158290612596576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561255b578082015181840152602081019050612540565b50505050905090810190601f1680156125885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006125b6613150565b915091506125cd81836125d490919063ffffffff16565b9250505090565b600061261683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133e1565b905092915050565b60008082840190508381101561269c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008060008060008060006126c38a600a54600b546134a7565b92509250925060006126d36125a9565b905060008060006126e68e878787613563565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061275083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124e9565b905092915050565b60006127626125a9565b9050600080600080600080612776886126a6565b955095509550955095509550600061279788836135ec90919063ffffffff16565b90506127eb89600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270e90919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288087600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270e90919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291586600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261e90919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061296485828585613672565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b60006129e06125a9565b90506000806000806000806129f4886126a6565b9550955095509550955095506000612a1588836135ec90919063ffffffff16565b9050612a6987600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270e90919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612afe84600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261e90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b9386600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261e90919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612be285828585613672565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612c5e6125a9565b9050600080600080600080612c72886126a6565b9550955095509550955095506000612c9388836135ec90919063ffffffff16565b9050612ce787600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270e90919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d7c86600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261e90919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dcb85828585613672565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612e476125a9565b9050600080600080600080612e5b886126a6565b9550955095509550955095506000612e7c88836135ec90919063ffffffff16565b9050612ed089600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270e90919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f6587600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270e90919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ffa84600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261e90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061308f86600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261e90919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130de85828585613672565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600080600060075490506000600654905060005b6005805490508110156133a45782600160006005848154811061318357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061326a575081600260006005848154811061320257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561328157600754600654945094505050506133dd565b61330a600160006005848154811061329557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461270e90919063ffffffff16565b9250613395600260006005848154811061332057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361270e90919063ffffffff16565b91508080600101915050613164565b506133bc6006546007546125d490919063ffffffff16565b8210156133d4576007546006549350935050506133dd565b81819350935050505b9091565b6000808311829061348d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613452578082015181840152602081019050613437565b50505050905090810190601f16801561347f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161349957fe5b049050809150509392505050565b6000806000806134e660646134d860646134ca8a8c6135ec90919063ffffffff16565b6125d490919063ffffffff16565b6125d490919063ffffffff16565b90506000613523606461351560646135078a8d6135ec90919063ffffffff16565b6125d490919063ffffffff16565b6125d490919063ffffffff16565b9050600061354c8261353e858c61270e90919063ffffffff16565b61270e90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061357c85896135ec90919063ffffffff16565b9050600061359386896135ec90919063ffffffff16565b905060006135aa87896135ec90919063ffffffff16565b905060006135d3826135c5858761270e90919063ffffffff16565b61270e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156135ff576000905061366c565b600082840290508284828161361057fe5b0414613667576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806137e06021913960400191505060405180910390fd5b809150505b92915050565b6136998361368b8660075461270e90919063ffffffff16565b61270e90919063ffffffff16565b6007819055506136b48260085461261e90919063ffffffff16565b6008819055506136cf8160095461261e90919063ffffffff16565b6009819055506136ea8160065461270e90919063ffffffff16565b6006819055505050505056fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f42455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f57652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e42455032303a20617070726f766520746f20746865207a65726f2061646472657373a264697066735822122094993b3851f7f3ef10f4fec66f2395f048e4618e3f9fcd7d23d5eb40a757423664736f6c634300060c0033

Deployed ByteCode Sourcemap

16901:12393:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18110:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19022:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20133:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18387:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19191:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21157:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18296:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19512:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;29002:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20328:377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20232:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20713:436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28821:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18490:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16347:148;;;:::i;:::-;;15705:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18201:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19738:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18696:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20015:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18871:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21418:443;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16650:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21869:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18110:83;18147:13;18180:5;;;;;;;;;;;;;;;;;18173:12;;18110:83;:::o;19022:161::-;19097:4;19114:39;19123:12;:10;:12::i;:::-;19137:7;19146:6;19114:8;:39::i;:::-;19171:4;19164:11;;19022:161;;;;:::o;20133:87::-;20175:7;20202:10;;20195:17;;20133:87;:::o;18387:95::-;18440:7;18467;;18460:14;;18387:95;:::o;19191:313::-;19289:4;19306:36;19316:6;19324:9;19335:6;19306:9;:36::i;:::-;19353:121;19362:6;19370:12;:10;:12::i;:::-;19384:89;19422:6;19384:89;;;;;;;;;;;;;;;;;:11;:19;19396:6;19384:19;;;;;;;;;;;;;;;:33;19404:12;:10;:12::i;:::-;19384:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19353:8;:121::i;:::-;19492:4;19485:11;;19191:313;;;;;:::o;21157:253::-;21223:7;21262;;21251;:18;;21243:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21327:19;21350:10;:8;:10::i;:::-;21327:33;;21378:24;21390:11;21378:7;:11;;:24;;;;:::i;:::-;21371:31;;;21157:253;;;:::o;18296:83::-;18337:5;17428:1;18355:16;;18296:83;:::o;19512:218::-;19600:4;19617:83;19626:12;:10;:12::i;:::-;19640:7;19649:50;19688:10;19649:11;:25;19661:12;:10;:12::i;:::-;19649:25;;;;;;;;;;;;;;;:34;19675:7;19649:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;19617:8;:83::i;:::-;19718:4;19711:11;;19512:218;;;;:::o;29002:180::-;15927:12;:10;:12::i;:::-;15917:22;;:6;;;;;;;;;;:22;;;15909:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29091:2:::1;29080:7;:13;;:32;;;;;29108:4;29097:7;:15;;29080:32;29072:72;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;29167:7;29155:9;:19;;;;29002:180:::0;:::o;20328:377::-;20380:14;20397:12;:10;:12::i;:::-;20380:29;;20429:11;:19;20441:6;20429:19;;;;;;;;;;;;;;;;;;;;;;;;;20428:20;20420:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20509:15;20533:19;20544:7;20533:10;:19::i;:::-;20508:44;;;;;;;20581:28;20601:7;20581;:15;20589:6;20581:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20563:7;:15;20571:6;20563:15;;;;;;;;;;;;;;;:46;;;;20630:20;20642:7;20630;;:11;;:20;;;;:::i;:::-;20620:7;:30;;;;20674:23;20689:7;20674:10;;:14;;:23;;;;:::i;:::-;20661:10;:36;;;;20328:377;;;:::o;20232:88::-;20274:7;20301:11;;20294:18;;20232:88;:::o;20713:436::-;20803:7;20842;;20831;:18;;20823:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20901:17;20896:246;;20936:15;20960:19;20971:7;20960:10;:19::i;:::-;20935:44;;;;;;;21001:7;20994:14;;;;;20896:246;21043:23;21074:19;21085:7;21074:10;:19::i;:::-;21041:52;;;;;;;21115:15;21108:22;;;20713:436;;;;;:::o;28821:173::-;15927:12;:10;:12::i;:::-;15917:22;;:6;;;;;;;;;;:22;;;15909:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28907:2:::1;28897:6;:12;;:30;;;;;28923:4;28913:6;:14;;28897:30;28889:69;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;28980:6;28969:8;:17;;;;28821:173:::0;:::o;18490:198::-;18556:7;18580:11;:20;18592:7;18580:20;;;;;;;;;;;;;;;;;;;;;;;;;18576:49;;;18609:7;:16;18617:7;18609:16;;;;;;;;;;;;;;;;18602:23;;;;18576:49;18643:37;18663:7;:16;18671:7;18663:16;;;;;;;;;;;;;;;;18643:19;:37::i;:::-;18636:44;;18490:198;;;;:::o;16347:148::-;15927:12;:10;:12::i;:::-;15917:22;;:6;;;;;;;;;;:22;;;15909:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16454:1:::1;16417:40;;16438:6;::::0;::::1;;;;;;;;16417:40;;;;;;;;;;;;16485:1;16468:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;16347:148::o:0;15705:79::-;15743:7;15770:6;;;;;;;;;;;15763:13;;15705:79;:::o;18201:87::-;18240:13;18273:7;;;;;;;;;;;;;;;;;18266:14;;18201:87;:::o;19738:269::-;19831:4;19848:129;19857:12;:10;:12::i;:::-;19871:7;19880:96;19919:15;19880:96;;;;;;;;;;;;;;;;;:11;:25;19892:12;:10;:12::i;:::-;19880:25;;;;;;;;;;;;;;;:34;19906:7;19880:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19848:8;:129::i;:::-;19995:4;19988:11;;19738:269;;;;:::o;18696:167::-;18774:4;18791:42;18801:12;:10;:12::i;:::-;18815:9;18826:6;18791:9;:42::i;:::-;18851:4;18844:11;;18696:167;;;;:::o;20015:110::-;20073:4;20097:11;:20;20109:7;20097:20;;;;;;;;;;;;;;;;;;;;;;;;;20090:27;;20015:110;;;:::o;18871:143::-;18952:7;18979:11;:18;18991:5;18979:18;;;;;;;;;;;;;;;:27;18998:7;18979:27;;;;;;;;;;;;;;;;18972:34;;18871:143;;;;:::o;21418:443::-;15927:12;:10;:12::i;:::-;15917:22;;:6;;;;;;;;;;:22;;;15909:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21510:42:::1;21499:53;;:7;:53;;;;21491:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21611:11;:20;21623:7;21611:20;;;;;;;;;;;;;;;;;;;;;;;;;21610:21;21602:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21696:1;21677:7;:16;21685:7;21677:16;;;;;;;;;;;;;;;;:20;21674:108;;;21733:37;21753:7;:16;21761:7;21753:16;;;;;;;;;;;;;;;;21733:19;:37::i;:::-;21714:7;:16;21722:7;21714:16;;;;;;;;;;;;;;;:56;;;;21674:108;21815:4;21792:11;:20;21804:7;21792:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;21830:9;21845:7;21830:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21418:443:::0;:::o;16650:244::-;15927:12;:10;:12::i;:::-;15917:22;;:6;;;;;;;;;;:22;;;15909:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16759:1:::1;16739:22;;:8;:22;;;;16731:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16849:8;16820:38;;16841:6;::::0;::::1;;;;;;;;16820:38;;;;;;;;;;;;16878:8;16869:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;16650:244:::0;:::o;21869:478::-;15927:12;:10;:12::i;:::-;15917:22;;:6;;;;;;;;;;:22;;;15909:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21950:11:::1;:20;21962:7;21950:20;;;;;;;;;;;;;;;;;;;;;;;;;21942:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;22018:9;22013:327;22037:9;:16;;;;22033:1;:20;22013:327;;;22095:7;22079:23;;:9;22089:1;22079:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;22075:254;;;22138:9;22167:1;22148:9;:16;;;;:20;22138:31;;;;;;;;;;;;;;;;;;;;;;;;;22123:9;22133:1;22123:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;22207:1;22188:7;:16;22196:7;22188:16;;;;;;;;;;;;;;;:20;;;;22250:5;22227:11;:20;22239:7;22227:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;22274:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22308:5;;22075:254;22055:3;;;;;;;22013:327;;;;21869:478:::0;:::o;171:106::-;224:15;259:10;252:17;;171:106;:::o;22355:337::-;22465:1;22448:19;;:5;:19;;;;22440:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22546:1;22527:21;;:7;:21;;;;22519:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22630:6;22600:11;:18;22612:5;22600:18;;;;;;;;;;;;;;;:27;22619:7;22600:27;;;;;;;;;;;;;;;:36;;;;22668:7;22652:32;;22661:5;22652:32;;;22677:6;22652:32;;;;;;;;;;;;;;;;;;22355:337;;;:::o;22700:1096::-;22815:1;22797:20;;:6;:20;;;;22789:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22899:1;22878:23;;:9;:23;;;;22870:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22969:1;22960:6;:10;22952:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23050:7;:5;:7::i;:::-;23040:17;;:6;:17;;;;:41;;;;;23074:7;:5;:7::i;:::-;23061:20;;:9;:20;;;;23040:41;23037:134;;;17428:1;17539:18;;17533:2;:24;17936:9;:26;23104:6;:22;;23096:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23037:134;23196:11;:19;23208:6;23196:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;23220:11;:22;23232:9;23220:22;;;;;;;;;;;;;;;;;;;;;;;;;23219:23;23196:46;23192:597;;;23259:48;23281:6;23289:9;23300:6;23259:21;:48::i;:::-;23192:597;;;23330:11;:19;23342:6;23330:19;;;;;;;;;;;;;;;;;;;;;;;;;23329:20;:46;;;;;23353:11;:22;23365:9;23353:22;;;;;;;;;;;;;;;;;;;;;;;;;23329:46;23325:464;;;23392:46;23412:6;23420:9;23431:6;23392:19;:46::i;:::-;23325:464;;;23461:11;:19;23473:6;23461:19;;;;;;;;;;;;;;;;;;;;;;;;;23460:20;:47;;;;;23485:11;:22;23497:9;23485:22;;;;;;;;;;;;;;;;;;;;;;;;;23484:23;23460:47;23456:333;;;23524:44;23542:6;23550:9;23561:6;23524:17;:44::i;:::-;23456:333;;;23590:11;:19;23602:6;23590:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;23613:11;:22;23625:9;23613:22;;;;;;;;;;;;;;;;;;;;;;;;;23590:45;23586:203;;;23652:48;23674:6;23682:9;23693:6;23652:21;:48::i;:::-;23586:203;;;23733:44;23751:6;23759:9;23770:6;23733:17;:44::i;:::-;23586:203;23456:333;23325:464;23192:597;22700:1096;;;:::o;4981:192::-;5067:7;5100:1;5095;:6;;5103:12;5087:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5127:9;5143:1;5139;:5;5127:17;;5164:1;5157:8;;;4981:192;;;;;:::o;27983:163::-;28024:7;28045:15;28062;28081:19;:17;:19::i;:::-;28044:56;;;;28118:20;28130:7;28118;:11;;:20;;;;:::i;:::-;28111:27;;;;27983:163;:::o;6379:132::-;6437:7;6464:39;6468:1;6471;6464:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6457:46;;6379:132;;;;:::o;4078:181::-;4136:7;4156:9;4172:1;4168;:5;4156:17;;4197:1;4192;:6;;4184:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4250:1;4243:8;;;4078:181;;;;:::o;26685:470::-;26744:7;26753;26762;26771;26780;26789;26810:23;26835:12;26849:13;26866:41;26878:7;26887:8;;26897:9;;26866:11;:41::i;:::-;26809:98;;;;;;26918:19;26941:10;:8;:10::i;:::-;26918:33;;26963:15;26980:23;27005:12;27021:46;27033:7;27042:4;27048:5;27055:11;27021;:46::i;:::-;26962:105;;;;;;27086:7;27095:15;27112:4;27118:15;27135:4;27141:5;27078:69;;;;;;;;;;;;;;;;;;;26685:470;;;;;;;:::o;4542:136::-;4600:7;4627:43;4631:1;4634;4627:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4620:50;;4542:136;;;;:::o;25047:632::-;25149:19;25172:10;:8;:10::i;:::-;25149:33;;25194:15;25211:23;25236:12;25250:23;25275:12;25289:13;25306:19;25317:7;25306:10;:19::i;:::-;25193:132;;;;;;;;;;;;25336:13;25353:22;25363:11;25353:5;:9;;:22;;;;:::i;:::-;25336:39;;25404:28;25424:7;25404;:15;25412:6;25404:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25386:7;:15;25394:6;25386:15;;;;;;;;;;;;;;;:46;;;;25461:28;25481:7;25461;:15;25469:6;25461:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25443:7;:15;25451:6;25443:15;;;;;;;;;;;;;;;:46;;;;25521:39;25544:15;25521:7;:18;25529:9;25521:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25500:7;:18;25508:9;25500:18;;;;;;;;;;;;;;;:60;;;;25574:37;25586:4;25592:5;25599:4;25605:5;25574:11;:37::i;:::-;25644:9;25627:44;;25636:6;25627:44;;;25655:15;25627:44;;;;;;;;;;;;;;;;;;25047:632;;;;;;;;;;;:::o;24387:652::-;24487:19;24510:10;:8;:10::i;:::-;24487:33;;24532:15;24549:23;24574:12;24588:23;24613:12;24627:13;24644:19;24655:7;24644:10;:19::i;:::-;24531:132;;;;;;;;;;;;24674:13;24691:22;24701:11;24691:5;:9;;:22;;;;:::i;:::-;24674:39;;24742:28;24762:7;24742;:15;24750:6;24742:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24724:7;:15;24732:6;24724:15;;;;;;;;;;;;;;;:46;;;;24802:39;24825:15;24802:7;:18;24810:9;24802:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24781:7;:18;24789:9;24781:18;;;;;;;;;;;;;;;:60;;;;24873:39;24896:15;24873:7;:18;24881:9;24873:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24852:7;:18;24860:9;24852:18;;;;;;;;;;;;;;;:60;;;;24934:37;24946:4;24952:5;24959:4;24965:5;24934:11;:37::i;:::-;25004:9;24987:44;;24996:6;24987:44;;;25015:15;24987:44;;;;;;;;;;;;;;;;;;24387:652;;;;;;;;;;;:::o;23804:575::-;23902:19;23925:10;:8;:10::i;:::-;23902:33;;23947:15;23964:23;23989:12;24003:23;24028:12;24042:13;24059:19;24070:7;24059:10;:19::i;:::-;23946:132;;;;;;;;;;;;24089:13;24106:22;24116:11;24106:5;:9;;:22;;;;:::i;:::-;24089:39;;24157:28;24177:7;24157;:15;24165:6;24157:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24139:7;:15;24147:6;24139:15;;;;;;;;;;;;;;;:46;;;;24217:39;24240:15;24217:7;:18;24225:9;24217:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24196:7;:18;24204:9;24196:18;;;;;;;;;;;;;;;:60;;;;24274:37;24286:4;24292:5;24299:4;24305:5;24274:11;:37::i;:::-;24344:9;24327:44;;24336:6;24327:44;;;24355:15;24327:44;;;;;;;;;;;;;;;;;;23804:575;;;;;;;;;;;:::o;25687:708::-;25789:19;25812:10;:8;:10::i;:::-;25789:33;;25834:15;25851:23;25876:12;25890:23;25915:12;25929:13;25946:19;25957:7;25946:10;:19::i;:::-;25833:132;;;;;;;;;;;;25976:13;25993:22;26003:11;25993:5;:9;;:22;;;;:::i;:::-;25976:39;;26044:28;26064:7;26044;:15;26052:6;26044:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26026:7;:15;26034:6;26026:15;;;;;;;;;;;;;;;:46;;;;26101:28;26121:7;26101;:15;26109:6;26101:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26083:7;:15;26091:6;26083:15;;;;;;;;;;;;;;;:46;;;;26161:39;26184:15;26161:7;:18;26169:9;26161:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26140:7;:18;26148:9;26140:18;;;;;;;;;;;;;;;:60;;;;26232:39;26255:15;26232:7;:18;26240:9;26232:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26211:7;:18;26219:9;26211:18;;;;;;;;;;;;;;;:60;;;;26290:37;26302:4;26308:5;26315:4;26321:5;26290:11;:37::i;:::-;26360:9;26343:44;;26352:6;26343:44;;;26371:15;26343:44;;;;;;;;;;;;;;;;;;25687:708;;;;;;;;;;;:::o;28154:561::-;28204:7;28213;28233:15;28251:7;;28233:25;;28269:15;28287:7;;28269:25;;28316:9;28311:289;28335:9;:16;;;;28331:1;:20;28311:289;;;28401:7;28377;:21;28385:9;28395:1;28385:12;;;;;;;;;;;;;;;;;;;;;;;;;28377:21;;;;;;;;;;;;;;;;:31;:66;;;;28436:7;28412;:21;28420:9;28430:1;28420:12;;;;;;;;;;;;;;;;;;;;;;;;;28412:21;;;;;;;;;;;;;;;;:31;28377:66;28373:97;;;28453:7;;28462;;28445:25;;;;;;;;;28373:97;28495:34;28507:7;:21;28515:9;28525:1;28515:12;;;;;;;;;;;;;;;;;;;;;;;;;28507:21;;;;;;;;;;;;;;;;28495:7;:11;;:34;;;;:::i;:::-;28485:44;;28554:34;28566:7;:21;28574:9;28584:1;28574:12;;;;;;;;;;;;;;;;;;;;;;;;;28566:21;;;;;;;;;;;;;;;;28554:7;:11;;:34;;;;:::i;:::-;28544:44;;28353:3;;;;;;;28311:289;;;;28624:20;28636:7;;28624;;:11;;:20;;;;:::i;:::-;28614:7;:30;28610:61;;;28654:7;;28663;;28646:25;;;;;;;;28610:61;28690:7;28699;28682:25;;;;;;28154:561;;;:::o;7007:278::-;7093:7;7125:1;7121;:5;7128:12;7113:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7152:9;7168:1;7164;:5;;;;;;7152:17;;7276:1;7269:8;;;7007:278;;;;;:::o;27163:395::-;27256:7;27265;27274;27294:12;27309:50;27355:3;27310:39;17604:3;27311:19;27323:6;27311:7;:11;;:19;;;;:::i;:::-;27310:25;;:39;;;;:::i;:::-;27309:45;;:50;;;;:::i;:::-;27294:65;;27370:13;27386:51;27433:3;27387:40;17604:3;27388:20;27400:7;27388;:11;;:20;;;;:::i;:::-;27387:26;;:40;;;;:::i;:::-;27386:46;;:51;;;;:::i;:::-;27370:67;;27448:23;27474:28;27496:5;27474:17;27486:4;27474:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;27448:54;;27521:15;27538:4;27544:5;27513:37;;;;;;;;;27163:395;;;;;;;:::o;27566:409::-;27676:7;27685;27694;27714:15;27732:24;27744:11;27732:7;:11;;:24;;;;:::i;:::-;27714:42;;27767:12;27782:21;27791:11;27782:4;:8;;:21;;;;:::i;:::-;27767:36;;27814:13;27830:22;27840:11;27830:5;:9;;:22;;;;:::i;:::-;27814:38;;27863:23;27889:28;27911:5;27889:17;27901:4;27889:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;27863:54;;27936:7;27945:15;27962:4;27928:39;;;;;;;;;;27566:409;;;;;;;;:::o;5432:471::-;5490:7;5740:1;5735;:6;5731:47;;;5765:1;5758:8;;;;5731:47;5790:9;5806:1;5802;:5;5790:17;;5835:1;5830;5826;:5;;;;;;:10;5818:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5894:1;5887:8;;;5432:471;;;;;:::o;26403:274::-;26511:28;26533:5;26511:17;26523:4;26511:7;;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;26501:7;:38;;;;26563:20;26578:4;26563:10;;:14;;:20;;;;:::i;:::-;26550:10;:33;;;;26608:22;26624:5;26608:11;;:15;;:22;;;;:::i;:::-;26594:11;:36;;;;26651:18;26663:5;26651:7;;:11;;:18;;;;:::i;:::-;26641:7;:28;;;;26403:274;;;;:::o

Swarm Source

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