Contract 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c21 3

 

Contract Overview

Balance:
19.070423707235413766 BNB

BNB Value:
$9,047.20 (@ $474.41/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x0549c20df069864563f3a9ad908064ce356a2f87900289a22ca8b088b98ef675Sell119719612021-10-21 18:40:169 mins ago0xb750d0819423621b26a3b9b8c241af253a524c60 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210 BNB0.00014395
0xcc6226eb1928e9429a87ded577c9a0d2b19752f547770b1240c2a279949c21afSell119719572021-10-21 18:40:049 mins ago0xb750d0819423621b26a3b9b8c241af253a524c60 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210 BNB0.000180355
0xbcc31c4ce8f4f487484eb992563f916207413477e80afb29ecbfdb5a6a1f9d43Transfer119717642021-10-21 18:30:2519 mins ago0x25e3ed0645c104f6627b798bbc6747aad29b3e7a IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.09237487 BNB0.000276755
0xedde59d9e7ab820f598bf0d881667c4f201aa9fc432030764c17583894b856adTransfer119673112021-10-21 14:44:154 hrs 5 mins ago0x6110b5aca8bdd011a26dcd7cf379b8cfa9203100 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210 BNB0.000207095
0x4552080a872500174e56ee2cf23f159982cd045270aeab1355da63242970c893Transfer119640982021-10-21 11:52:256 hrs 57 mins ago0x6110b5aca8bdd011a26dcd7cf379b8cfa9203100 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210 BNB0.000207095
0x11f4582cc116e606f5603c8f611169f2104932c0222dc0942774798106a84064Transfer119633462021-10-21 11:14:217 hrs 35 mins ago0x40dee5382c3213a61a20bf306b90d30966ccd331 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.05015628 BNB0.000276755
0x5661817313b8a4658d1dc040e02d6317edf613c7b29b1871fd7c197351dd9840Transfer119632862021-10-21 11:11:207 hrs 38 mins ago0xf73e3f76039d5424cb029fee618230a946235861 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.195 BNB0.000276755
0x8a90612ee78fc7d6cdd9c94f38af33c8f28f1d14aa129e0486605883790a8aefTransfer119630252021-10-21 10:58:157 hrs 51 mins ago0x861b1a3cecdefa1852599a9026d99f8fbbf82ae6 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.005079855 BNB0.000201755
0x71f9bafb194d9562887d2b71a62642e07faccfbe819fee4a8209b694447a6b05Transfer119581732021-10-21 6:51:0311 hrs 58 mins ago0xb0ce8e08c2b1cdab423520c692cc939bd319f0b6 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.054326505 BNB0.000276755
0xe89d3f0c91fc69bdb6fb46f43670bf22454da9d171cf4cf984c4eed619933cc9Transfer119507962021-10-21 0:34:3618 hrs 15 mins ago0x5149b237c570a92a25fb1f2d062117949a9cb147 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.79650987 BNB0.000276755
0x7e624ae3c0dfe90522809346d876f11a9c875e0c01247253b3623c3102a84145Transfer119503392021-10-21 0:11:1418 hrs 38 mins ago0xdbdb6f9f713079e311bd757e15458f1f243a0304 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.008 BNB0.000201755
0xd58df460b35b15a6c1b07bff676b49d898a1782f2f9ddf80bc25fce5d304dce1Transfer119503112021-10-21 0:09:5018 hrs 40 mins ago0xdbdb6f9f713079e311bd757e15458f1f243a0304 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.082 BNB0.000201755
0xc320858c3a817962a5e2a8bf85983da8ea702fa1c022ad1013417278a9cf368eTransfer119502792021-10-21 0:08:1418 hrs 41 mins ago0xdbdb6f9f713079e311bd757e15458f1f243a0304 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.001 BNB0.000276755
0xf04e093b6e4a45d05f077624d80c3b7a8e6551cc1034aab38b32423963039ab6Transfer119489872021-10-20 23:03:3819 hrs 46 mins ago0x6bad4d3a4c4666f431def94b1c6d35fd7f45c500 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.09658487 BNB0.000276755
0xff776169f5c360a8471d16a5f08780317d24bb3993778ebfdf979cb2d69fd5b0Transfer119475792021-10-20 21:52:5720 hrs 56 mins ago0x8cc5323a6a308e20aad94dfc84494650a550e765 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.19258487 BNB0.000276755
0x2bfb8aa1aec5708d68d9678d20775b1ec12a1aae59a8b8d29843f119d8bd08aaTransfer119443742021-10-20 19:11:2823 hrs 38 mins ago0xf8b744152277bada4d3e52e4f57d28ca4c5e1353 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210 BNB0.000227915
0xc476d7e0272d62721500762538c40d62190400ac7ca28a91490dea747163682bTransfer119441262021-10-20 18:57:2023 hrs 52 mins ago0xab3afe10498ec1a11e43b305f5f3c048bd220043 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.17950987 BNB0.000276755
0x4bddbc7442df547d760a45dda5f18f622bcc1f760377a8ad9fc132cc0d28f1baTransfer119432772021-10-20 18:14:531 day 35 mins ago0xf8b744152277bada4d3e52e4f57d28ca4c5e1353 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210 BNB0.000227915
0x3eb22b023ea197432ff8c297f125a71b4d6b21b243b5c62c8ee666e2d3416dfcTransfer119432622021-10-20 18:14:081 day 35 mins ago0xf8b744152277bada4d3e52e4f57d28ca4c5e1353 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210 BNB0.000302915
0x6917c53ee3fe90cbf9586779d22814b7166634134ab169c56934f10a6f3ad127Transfer119427722021-10-20 17:49:361 day 1 hr ago0x67fcc23d94fb3da66738ce75e88e3a26a5933e47 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210 BNB0.000153035
0x0f1c001ca21d9e69fcf911fcad1929654d8b7db07b6326885cf1734ad8750007Transfer119425682021-10-20 17:39:241 day 1 hr ago0x67fcc23d94fb3da66738ce75e88e3a26a5933e47 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210 BNB0.000302915
0xd624fa2abdd6d6e2df687c95c4cade9372e94de8fed2fb2476ad9e98f1bb249eTransfer119387122021-10-20 14:25:041 day 4 hrs ago0xf8b744152277bada4d3e52e4f57d28ca4c5e1353 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c211.097960245 BNB0.000201755
0xc5cf6b611b078422b379ba543ea07e50891722f93b5a2ed80e96f8c2d57ebc36Transfer119384462021-10-20 14:11:441 day 4 hrs ago0xf8b744152277bada4d3e52e4f57d28ca4c5e1353 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c211.05187984 BNB0.000276755
0x583c95a65a0b0ccfe67f6fdc14e792372f102645c04318e7917c08d3a3b23446Transfer119380652021-10-20 13:52:391 day 4 hrs ago0x5ad7eefb65a956c41d31bbb5be70f504c84802cc IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210.005 BNB0.000276755
0x5c50982a153f8fa6ce168508b984d142d81a967827f6890fb2a44538f33e5225Transfer119380252021-10-20 13:50:391 day 4 hrs ago0x807abf5de5ed3c14e98419e3da0b049c43b89334 IN  0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210 BNB0.000227975
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xcc6226eb1928e9429a87ded577c9a0d2b19752f547770b1240c2a279949c21af119719572021-10-21 18:40:049 mins ago 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c210xb750d0819423621b26a3b9b8c241af253a524c600.000000002818141495 BNB
0xda8b67da55ce29086eade46cae015f8d859f76d539e91f0e5a5259d1d88d4f40119640052021-10-21 11:47:457 hrs 2 mins ago 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c21 0x0731b6efb481de35a6681b16a1242bb042fd05206.032887490773005187 BNB
0xda8b67da55ce29086eade46cae015f8d859f76d539e91f0e5a5259d1d88d4f40119640052021-10-21 11:47:457 hrs 2 mins ago 0x0731b6efb481de35a6681b16a1242bb042fd0520 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c215.172571111321644459 BNB
0xda8b67da55ce29086eade46cae015f8d859f76d539e91f0e5a5259d1d88d4f40119640052021-10-21 11:47:457 hrs 2 mins ago 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c21 0x0731b6efb481de35a6681b16a1242bb042fd05205.172571111321644459 BNB
0xda8b67da55ce29086eade46cae015f8d859f76d539e91f0e5a5259d1d88d4f40119640052021-10-21 11:47:457 hrs 2 mins ago 0x0731b6efb481de35a6681b16a1242bb042fd0520 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c215.181187220238843213 BNB
0xda8b67da55ce29086eade46cae015f8d859f76d539e91f0e5a5259d1d88d4f40119640052021-10-21 11:47:457 hrs 2 mins ago 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c21 0x0731b6efb481de35a6681b16a1242bb042fd05205.181187220238843213 BNB
0xda8b67da55ce29086eade46cae015f8d859f76d539e91f0e5a5259d1d88d4f40119640052021-10-21 11:47:457 hrs 2 mins ago 0x0731b6efb481de35a6681b16a1242bb042fd0520 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c216 BNB
0x0cef75bfd4d7b977683ec9bfdf84c6749542903abcb2ad7b003246c2b2a0a443119639922021-10-21 11:47:067 hrs 2 mins ago 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c21 0x0731b6efb481de35a6681b16a1242bb042fd05206.032887490773005187 BNB
0x0cef75bfd4d7b977683ec9bfdf84c6749542903abcb2ad7b003246c2b2a0a443119639922021-10-21 11:47:067 hrs 2 mins ago 0x0731b6efb481de35a6681b16a1242bb042fd0520 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c215.172571111321644459 BNB
0x0cef75bfd4d7b977683ec9bfdf84c6749542903abcb2ad7b003246c2b2a0a443119639922021-10-21 11:47:067 hrs 2 mins ago 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c21 0x0731b6efb481de35a6681b16a1242bb042fd05205.172571111321644459 BNB
0x0cef75bfd4d7b977683ec9bfdf84c6749542903abcb2ad7b003246c2b2a0a443119639922021-10-21 11:47:067 hrs 2 mins ago 0x0731b6efb481de35a6681b16a1242bb042fd0520 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c215.181187220238843213 BNB
0x0cef75bfd4d7b977683ec9bfdf84c6749542903abcb2ad7b003246c2b2a0a443119639922021-10-21 11:47:067 hrs 2 mins ago 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c21 0x0731b6efb481de35a6681b16a1242bb042fd05205.181187220238843213 BNB
0x0cef75bfd4d7b977683ec9bfdf84c6749542903abcb2ad7b003246c2b2a0a443119639922021-10-21 11:47:067 hrs 2 mins ago 0x0731b6efb481de35a6681b16a1242bb042fd0520 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c216 BNB
0x56cd4b8d5af2a585cb6fce98602bdc51169d93222b3d834fbfad91ef1297a0f9119598442021-10-21 8:15:0210 hrs 34 mins ago 0xa1692f504475997fb0f49582f28b7406650828a2 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c2117.284304455361946503 BNB
0x56cd4b8d5af2a585cb6fce98602bdc51169d93222b3d834fbfad91ef1297a0f9119598442021-10-21 8:15:0210 hrs 34 mins ago 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c21 0xa1692f504475997fb0f49582f28b7406650828a217.284304455361946503 BNB
0x56cd4b8d5af2a585cb6fce98602bdc51169d93222b3d834fbfad91ef1297a0f9119598442021-10-21 8:15:0210 hrs 34 mins ago 0xa1692f504475997fb0f49582f28b7406650828a2 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c2120 BNB
0xad2c77a71dfcf4d9056483dc66a5442335082e790b00434e9ad9cb4919130fb9119597892021-10-21 8:12:1710 hrs 37 mins ago 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c21 0xa1692f504475997fb0f49582f28b7406650828a24.506785989425463844 BNB
0xad2c77a71dfcf4d9056483dc66a5442335082e790b00434e9ad9cb4919130fb9119597892021-10-21 8:12:1710 hrs 37 mins ago 0xa1692f504475997fb0f49582f28b7406650828a2 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c214.321076113840486625 BNB
0xad2c77a71dfcf4d9056483dc66a5442335082e790b00434e9ad9cb4919130fb9119597892021-10-21 8:12:1710 hrs 37 mins ago 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c21 0xa1692f504475997fb0f49582f28b7406650828a24.321076113840486625 BNB
0xad2c77a71dfcf4d9056483dc66a5442335082e790b00434e9ad9cb4919130fb9119597892021-10-21 8:12:1710 hrs 37 mins ago 0xa1692f504475997fb0f49582f28b7406650828a2 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c215 BNB
0xf2061c4e94fc4d3a057e16519d0cb771d23cc354e5b6305dd4a11f234eef6005119583482021-10-21 6:59:4811 hrs 50 mins ago 0xb125a62ee486fda350f313bf3ea0a580aef96891 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c218.642152227680973251 BNB
0xf2061c4e94fc4d3a057e16519d0cb771d23cc354e5b6305dd4a11f234eef6005119583482021-10-21 6:59:4811 hrs 50 mins ago 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c21 0xb125a62ee486fda350f313bf3ea0a580aef968918.642152227680973251 BNB
0xf2061c4e94fc4d3a057e16519d0cb771d23cc354e5b6305dd4a11f234eef6005119583482021-10-21 6:59:4811 hrs 50 mins ago 0xb125a62ee486fda350f313bf3ea0a580aef96891 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c2110 BNB
0x37911849ac0a7c968922d5923e61ea796f3086ca77c4b9db40ae18620b9b9799119575952021-10-21 6:22:0912 hrs 27 mins ago 0x3fcd7cfd3afbb0dbacb40d7a420dc07b9a82e66f 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c218.643654025083129094 BNB
0x37911849ac0a7c968922d5923e61ea796f3086ca77c4b9db40ae18620b9b9799119575952021-10-21 6:22:0912 hrs 27 mins ago 0xe1e1aa58983f6b8ee8e4ecd206cea6578f036c21 0x3fcd7cfd3afbb0dbacb40d7a420dc07b9a82e66f8.643654025083129094 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SurgeToken

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-07-30
*/

//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/**
 * Contract Created by SafemoonMark
 * Next Gen DeFi Token, Neglecting the need for Liquidity Pools
 * No need for LPs, Private Sales, or Presales
 * I welcome all forks, this has some serious potential
 * This may be the new DeFi Standard moving forward
 */

abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;
    uint256 private _status;
    constructor () {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
        _status = _ENTERED;
        _;
        _status = _NOT_ENTERED;
    }
}

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

interface IERC20 {

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

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

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(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;
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        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;
    }

    function geUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    //Locks the contract for owner for the amount of time provided
    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_owner, address(0));
    }

    //Unlocks the contract for owner when _lockTime is exceeds
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is locked");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
}

/** 
 * Contract: Surge Token
 * Developed By: SafemoonMark
 * 
 * Liquidity-less Token, DEX built into Contract
 * Send BNB to contract and it mints Surge Token to your receive Address
 * Sell this token via dApp like bscscan, removes from Supply
 * Price is calculated as a ratio between Total Supply and BNB in Contract
 * Next Gen DeFi Token :D
 * 
 */
contract SurgeToken is IERC20, Context, Ownable, ReentrancyGuard {
    
    using SafeMath for uint256;
    using SafeMath for uint8;
    using Address for address;

    // token data
    string constant _name = "Surge";
    string constant _symbol = "SURGE";
    uint8 constant _decimals = 0;
    // 1 Billion Total Supply
    uint256 _totalSupply = 1 * 10**9;
    // balances
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    uint256 public sellFee = 94;
    uint256 public spreadDivisor = 94;
    uint256 public transferFee = 98;
    bool public hyperInflatePrice = false;
    
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    // initialize some stuff
    constructor (
    ) {
        // exempt this contract, the LP, and OUR burn wallet from receiving Safemoon Rewards
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function name() public pure returns (string memory) {
        return _name;
    }

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }
  
    /** Transfer Function */
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }
    /** Transfer Function */
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(sender == msg.sender);
        return _transferFrom(sender, recipient, amount);
    }
    
    /** Internal Transfer */
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        // make standard checks
        require(recipient != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        // subtract form sender, give to receiver, burn the fee
        uint256 tAmount = amount.mul(transferFee).div(10**2);
        uint256 tax = amount.sub(tAmount);
        // subtract from sender
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        // give reduced amount to receiver
        _balances[recipient] = _balances[recipient].add(tAmount);
        // burn the tax
        _totalSupply = _totalSupply.sub(tax);
        // Transfer Event
        emit Transfer(sender, recipient, tAmount);
        return true;
    }
    
    /** Purchases SURGE Tokens and Deposits Them in Sender's Address*/
    function purchase(address buyer, uint256 bnbAmount) internal returns (bool) {
        // make sure we don't buy more than the bnb in this contract
        require(bnbAmount <= address(this).balance, 'purchase not included in balance');
        // previous amount of BNB before we received any        
        uint256 prevBNBAmount = (address(this).balance).sub(bnbAmount);
        // if this is the first purchase, use current balance
        prevBNBAmount = prevBNBAmount == 0 ? address(this).balance : prevBNBAmount;
        // find the number of tokens we should mint to keep up with the current price
        uint256 nShouldPurchase = hyperInflatePrice ? _totalSupply.mul(bnbAmount).div(address(this).balance) : _totalSupply.mul(bnbAmount).div(prevBNBAmount);
        // apply our spread to tokens to inflate price relative to total supply
        uint256 tokensToSend = nShouldPurchase.mul(spreadDivisor).div(10**2);
        // revert if under 1
        if (tokensToSend < 1) {
            revert('Must Buy More Than One Surge');
        }
        
        // mint the tokens we need to the buyer
        mint(buyer, tokensToSend);
        emit Transfer(address(this), buyer, tokensToSend);
        return true;
    }
    
    /** Sells SURGE Tokens And Deposits the BNB into Seller's Address */
    function sell(uint256 tokenAmount) public nonReentrant returns (bool) {
        
        address seller = msg.sender;
        
        // make sure seller has this balance
        require(_balances[seller] >= tokenAmount, 'cannot sell above token amount');
        
        // calculate the sell fee from this transaction
        uint256 tokensToSwap = tokenAmount.mul(sellFee).div(10**2);
        
        // how much BNB are these tokens worth?
        uint256 amountBNB = tokensToSwap.mul(calculatePrice());
        
        // send BNB to Seller
        (bool successful,) = payable(seller).call{value: amountBNB, gas: 40000}(""); 
        if (successful) {
            // subtract full amount from sender
            _balances[seller] = _balances[seller].sub(tokenAmount, 'sender does not have this amount to sell');
            // if successful, remove tokens from supply
            _totalSupply = _totalSupply.sub(tokenAmount);
        } else {
            revert();
        }
        emit Transfer(seller, address(this), tokenAmount);
        return true;
    }
    
    /** Returns the Current Price of the Token */
    function calculatePrice() public view returns (uint256) {
        return ((address(this).balance).div(_totalSupply));
    }
    
    /** Mints Tokens to the Receivers Address */
    function mint(address receiver, uint amount) internal {
        _balances[receiver] = _balances[receiver].add(amount);
        _totalSupply = _totalSupply.add(amount);
    }
    
    /** Amount of BNB in Contract */
    function getBNBQuantityInContract() public view returns(uint256){
        return address(this).balance;
    }
    /** Returns the value of your holdings before the 6% sell fee */
    function getValueOfHoldings(address holder) public view returns(uint256) {
        return _balances[holder].mul(calculatePrice());
    }
    
    receive() external payable {
        uint256 val = msg.value;
        address buyer = msg.sender;
        purchase(buyer, val);
    }

    
}

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":"address","name":"holder","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":"calculatePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBNBQuantityInContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"getValueOfHoldings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hyperInflatePrice","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"sell","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"spreadDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052633b9aca00600455605e600755605e60085560626009556000600a60006101000a81548160ff0219169083151502179055503480156200004357600080fd5b50600062000056620001b260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506001600381905550600454600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620001a49190620001cb565b60405180910390a3620001f2565b600033905090565b620001c581620001e8565b82525050565b6000602082019050620001e26000830184620001ba565b92915050565b6000819050919050565b61257a80620002026000396000f3fe6080604052600436106101445760003560e01c80638da5cb5b116100b6578063d348b4091161006f578063d348b40914610474578063dd4670641461049f578063dd62ed3e146104c8578063e4849b3214610505578063f2fde38b14610542578063fae4dd041461056b57610162565b80638da5cb5b1461037457806395d89b411461039f578063a69df4b5146103ca578063a9059cbb146103e1578063acb2ad6f1461041e578063b6c523241461044957610162565b806323b872dd1161010857806323b872dd146102625780632b14ca561461029f578063313ce567146102ca57806370a08231146102f5578063715018a6146103325780637a8678fd1461034957610162565b806306fdde0314610167578063095ea7b31461019257806318160ddd146101cf5780631f02a29c146101fa5780632042986e1461023757610162565b36610162576000349050600033905061015d8183610596565b505050005b600080fd5b34801561017357600080fd5b5061017c61075c565b6040516101899190611e31565b60405180910390f35b34801561019e57600080fd5b506101b960048036038101906101b49190611b3d565b610799565b6040516101c69190611e16565b60405180910390f35b3480156101db57600080fd5b506101e461088b565b6040516101f19190611fd3565b60405180910390f35b34801561020657600080fd5b50610221600480360381019061021c9190611a7d565b610895565b60405161022e9190611fd3565b60405180910390f35b34801561024357600080fd5b5061024c6108f7565b6040516102599190611fd3565b60405180910390f35b34801561026e57600080fd5b5061028960048036038101906102849190611aea565b6108ff565b6040516102969190611e16565b60405180910390f35b3480156102ab57600080fd5b506102b461094d565b6040516102c19190611fd3565b60405180910390f35b3480156102d657600080fd5b506102df610953565b6040516102ec9190611fee565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190611a7d565b610958565b6040516103299190611fd3565b60405180910390f35b34801561033e57600080fd5b506103476109a1565b005b34801561035557600080fd5b5061035e610af4565b60405161036b9190611fd3565b60405180910390f35b34801561038057600080fd5b50610389610afa565b6040516103969190611dfb565b60405180910390f35b3480156103ab57600080fd5b506103b4610b23565b6040516103c19190611e31565b60405180910390f35b3480156103d657600080fd5b506103df610b60565b005b3480156103ed57600080fd5b5061040860048036038101906104039190611b3d565b610d34565b6040516104159190611e16565b60405180910390f35b34801561042a57600080fd5b50610433610d49565b6040516104409190611fd3565b60405180910390f35b34801561045557600080fd5b5061045e610d4f565b60405161046b9190611fd3565b60405180910390f35b34801561048057600080fd5b50610489610d59565b6040516104969190611fd3565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190611b7d565b610d75565b005b3480156104d457600080fd5b506104ef60048036038101906104ea9190611aaa565b610f3c565b6040516104fc9190611fd3565b60405180910390f35b34801561051157600080fd5b5061052c60048036038101906105279190611b7d565b610fc3565b6040516105399190611e16565b60405180910390f35b34801561054e57600080fd5b5061056960048036038101906105649190611a7d565b6112a9565b005b34801561057757600080fd5b5061058061146b565b60405161058d9190611e16565b60405180910390f35b6000478211156105db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d290611ed3565b60405180910390fd5b60006105f0834761147e90919063ffffffff16565b9050600081146106005780610602565b475b90506000600a60009054906101000a900460ff166106465761064182610633866004546114c890919063ffffffff16565b61154390919063ffffffff16565b61066e565b61066d4761065f866004546114c890919063ffffffff16565b61154390919063ffffffff16565b5b9050600061069a606461068c600854856114c890919063ffffffff16565b61154390919063ffffffff16565b905060018110156106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d790611e53565b60405180910390fd5b6106ea868261158d565b8573ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107479190611fd3565b60405180910390a36001935050505092915050565b60606040518060400160405280600581526020017f5375726765000000000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108799190611fd3565b60405180910390a36001905092915050565b6000600454905090565b60006108f06108a2610d59565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114c890919063ffffffff16565b9050919050565b600047905090565b60003373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461093957600080fd5b610944848484611641565b90509392505050565b60075481565b600090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109a9611926565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d90611f13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5355524745000000000000000000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790611fb3565b60405180910390fd5b6002544211610c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2b90611f73565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610d41338484611641565b905092915050565b60095481565b6000600254905090565b6000610d706004544761154390919063ffffffff16565b905090565b610d7d611926565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0190611f13565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508042610eb89190612030565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006002600354141561100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290611f93565b60405180910390fd5b6002600381905550600033905082600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561109a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109190611eb3565b60405180910390fd5b60006110c460646110b6600754876114c890919063ffffffff16565b61154390919063ffffffff16565b905060006110e26110d3610d59565b836114c890919063ffffffff16565b905060008373ffffffffffffffffffffffffffffffffffffffff1682619c409060405161110e90611de6565b600060405180830381858888f193505050503d806000811461114c576040519150601f19603f3d011682016040523d82523d6000602084013e611151565b606091505b50509050801561122a576111c78660405180606001604052806028815260200161251d60289139600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192e9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061121f8660045461147e90919063ffffffff16565b60048190555061122f565b600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161128c9190611fd3565b60405180910390a360019450505050506001600381905550919050565b6112b1611926565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590611f13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590611e73565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900460ff1681565b60006114c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061192e565b905092915050565b6000808314156114db576000905061153d565b600082846114e991906120b7565b90508284826114f89190612086565b14611538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152f90611ef3565b60405180910390fd5b809150505b92915050565b600061158583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611992565b905092915050565b6115df81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119f590919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611637816004546119f590919063ffffffff16565b6004819055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a990611f53565b60405180910390fd5b600082116116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec90611f33565b60405180910390fd5b600061171f6064611711600954866114c890919063ffffffff16565b61154390919063ffffffff16565b90506000611736828561147e90919063ffffffff16565b90506117c1846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192e9092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061185682600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119f590919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118ae8160045461147e90919063ffffffff16565b6004819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119119190611fd3565b60405180910390a36001925050509392505050565b600033905090565b6000838311158290611976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196d9190611e31565b60405180910390fd5b50600083856119859190612111565b9050809150509392505050565b600080831182906119d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d09190611e31565b60405180910390fd5b50600083856119e89190612086565b9050809150509392505050565b6000808284611a049190612030565b905083811015611a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4090611e93565b60405180910390fd5b8091505092915050565b600081359050611a62816124ee565b92915050565b600081359050611a7781612505565b92915050565b600060208284031215611a9357611a9261222b565b5b6000611aa184828501611a53565b91505092915050565b60008060408385031215611ac157611ac061222b565b5b6000611acf85828601611a53565b9250506020611ae085828601611a53565b9150509250929050565b600080600060608486031215611b0357611b0261222b565b5b6000611b1186828701611a53565b9350506020611b2286828701611a53565b9250506040611b3386828701611a68565b9150509250925092565b60008060408385031215611b5457611b5361222b565b5b6000611b6285828601611a53565b9250506020611b7385828601611a68565b9150509250929050565b600060208284031215611b9357611b9261222b565b5b6000611ba184828501611a68565b91505092915050565b611bb381612145565b82525050565b611bc281612157565b82525050565b6000611bd382612009565b611bdd818561201f565b9350611bed81856020860161219a565b611bf681612230565b840191505092915050565b6000611c0e601c8361201f565b9150611c1982612241565b602082019050919050565b6000611c3160268361201f565b9150611c3c8261226a565b604082019050919050565b6000611c54601b8361201f565b9150611c5f826122b9565b602082019050919050565b6000611c77601e8361201f565b9150611c82826122e2565b602082019050919050565b6000611c9a60208361201f565b9150611ca58261230b565b602082019050919050565b6000611cbd60218361201f565b9150611cc882612334565b604082019050919050565b6000611ce060208361201f565b9150611ceb82612383565b602082019050919050565b6000611d0360298361201f565b9150611d0e826123ac565b604082019050919050565b6000611d2660238361201f565b9150611d31826123fb565b604082019050919050565b6000611d49600083612014565b9150611d548261244a565b600082019050919050565b6000611d6c60128361201f565b9150611d778261244d565b602082019050919050565b6000611d8f601f8361201f565b9150611d9a82612476565b602082019050919050565b6000611db260238361201f565b9150611dbd8261249f565b604082019050919050565b611dd181612183565b82525050565b611de08161218d565b82525050565b6000611df182611d3c565b9150819050919050565b6000602082019050611e106000830184611baa565b92915050565b6000602082019050611e2b6000830184611bb9565b92915050565b60006020820190508181036000830152611e4b8184611bc8565b905092915050565b60006020820190508181036000830152611e6c81611c01565b9050919050565b60006020820190508181036000830152611e8c81611c24565b9050919050565b60006020820190508181036000830152611eac81611c47565b9050919050565b60006020820190508181036000830152611ecc81611c6a565b9050919050565b60006020820190508181036000830152611eec81611c8d565b9050919050565b60006020820190508181036000830152611f0c81611cb0565b9050919050565b60006020820190508181036000830152611f2c81611cd3565b9050919050565b60006020820190508181036000830152611f4c81611cf6565b9050919050565b60006020820190508181036000830152611f6c81611d19565b9050919050565b60006020820190508181036000830152611f8c81611d5f565b9050919050565b60006020820190508181036000830152611fac81611d82565b9050919050565b60006020820190508181036000830152611fcc81611da5565b9050919050565b6000602082019050611fe86000830184611dc8565b92915050565b60006020820190506120036000830184611dd7565b92915050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600061203b82612183565b915061204683612183565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561207b5761207a6121cd565b5b828201905092915050565b600061209182612183565b915061209c83612183565b9250826120ac576120ab6121fc565b5b828204905092915050565b60006120c282612183565b91506120cd83612183565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612106576121056121cd565b5b828202905092915050565b600061211c82612183565b915061212783612183565b92508282101561213a576121396121cd565b5b828203905092915050565b600061215082612163565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156121b857808201518184015260208101905061219d565b838111156121c7576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f4d75737420427579204d6f7265205468616e204f6e6520537572676500000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f63616e6e6f742073656c6c2061626f766520746f6b656e20616d6f756e740000600082015250565b7f7075726368617365206e6f7420696e636c7564656420696e2062616c616e6365600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f436f6e7472616374206973206c6f636b65640000000000000000000000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b6124f781612145565b811461250257600080fd5b50565b61250e81612183565b811461251957600080fd5b5056fe73656e64657220646f6573206e6f742068617665207468697320616d6f756e7420746f2073656c6ca264697066735822122080ffcc3dc0c8293b5eda0b9be01d5789ac7f2eb49ba34652363bac0b09677be664736f6c63430008050033

Deployed ByteCode Sourcemap

17409:6689:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23988:11;24002:9;23988:23;;24022:13;24038:10;24022:26;;24059:20;24068:5;24075:3;24059:8;:20::i;:::-;;23977:110;;17409:6689;;;;;18782:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19059:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18438:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23800:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23613:111;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19507:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17919:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18968:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18532:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15724:148;;;;;;;;;;;;;:::i;:::-;;17953:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15082:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18873:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16742:292;;;;;;;;;;;;;:::i;:::-;;19315:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17993:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16279:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23200:125;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16444:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18643:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22042:1095;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16027:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18031:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20714:1242;20784:4;20892:21;20879:9;:34;;20871:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;21027:21;21051:38;21079:9;21052:21;21051:27;;:38;;;;:::i;:::-;21027:62;;21196:1;21179:13;:18;:58;;21224:13;21179:58;;;21200:21;21179:58;21163:74;;21335:23;21361:17;;;;;;;;;;;:123;;21438:46;21470:13;21438:27;21455:9;21438:12;;:16;;:27;;;;:::i;:::-;:31;;:46;;;;:::i;:::-;21361:123;;;21381:54;21413:21;21381:27;21398:9;21381:12;;:16;;:27;;;;:::i;:::-;:31;;:54;;;;:::i;:::-;21361:123;21335:149;;21576:20;21599:45;21638:5;21599:34;21619:13;;21599:15;:19;;:34;;;;:::i;:::-;:38;;:45;;;;:::i;:::-;21576:68;;21704:1;21689:12;:16;21685:87;;;21722:38;;;;;;;;;;:::i;:::-;;;;;;;;21685:87;21841:25;21846:5;21853:12;21841:4;:25::i;:::-;21906:5;21882:44;;21899:4;21882:44;;;21913:12;21882:44;;;;;;:::i;:::-;;;;;;;;21944:4;21937:11;;;;;20714:1242;;;;:::o;18782:83::-;18819:13;18852:5;;;;;;;;;;;;;;;;;18845:12;;18782:83;:::o;19059:216::-;19134:4;19186:6;19151:11;:23;19163:10;19151:23;;;;;;;;;;;;;;;:32;19175:7;19151:32;;;;;;;;;;;;;;;:41;;;;19229:7;19208:37;;19217:10;19208:37;;;19238:6;19208:37;;;;;;:::i;:::-;;;;;;;;19263:4;19256:11;;19059:216;;;;:::o;18438:88::-;18493:7;18511:12;;18504:19;;18438:88;:::o;23800:138::-;23864:7;23891:39;23913:16;:14;:16::i;:::-;23891:9;:17;23901:6;23891:17;;;;;;;;;;;;;;;;:21;;:39;;;;:::i;:::-;23884:46;;23800:138;;;:::o;23613:111::-;23669:7;23695:21;23688:28;;23613:111;:::o;19507:212::-;19607:4;19642:10;19632:20;;:6;:20;;;19624:29;;;;;;19671:40;19685:6;19693:9;19704:6;19671:13;:40::i;:::-;19664:47;;19507:212;;;;;:::o;17919:27::-;;;;:::o;18968:83::-;19009:5;18968:83;:::o;18532:105::-;18598:7;18616:9;:18;18626:7;18616:18;;;;;;;;;;;;;;;;18609:25;;18532:105;;;:::o;15724:148::-;15304:12;:10;:12::i;:::-;15294:22;;:6;;;;;;;;;;:22;;;15286:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15831:1:::1;15794:40;;15815:6;::::0;::::1;;;;;;;;15794:40;;;;;;;;;;;;15862:1;15845:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;15724:148::o:0;17953:33::-;;;;:::o;15082:79::-;15120:7;15147:6;;;;;;;;;;;15140:13;;15082:79;:::o;18873:87::-;18912:13;18945:7;;;;;;;;;;;;;;;;;18938:14;;18873:87;:::o;16742:292::-;16812:10;16794:28;;:14;;;;;;;;;;;:28;;;16786:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;16899:9;;16881:15;:27;16873:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;16977:14;;;;;;;;;;;16948:44;;16969:6;;;;;;;;;;16948:44;;;;;;;;;;;;17012:14;;;;;;;;;;;17003:6;;:23;;;;;;;;;;;;;;;;;;16742:292::o;19315:156::-;19395:4;19419:44;19433:10;19445:9;19456:6;19419:13;:44::i;:::-;19412:51;;19315:156;;;;:::o;17993:31::-;;;;:::o;16279:89::-;16324:7;16351:9;;16344:16;;16279:89;:::o;23200:125::-;23247:7;23275:41;23303:12;;23276:21;23275:27;;:41;;;;:::i;:::-;23267:50;;23200:125;:::o;16444:226::-;15304:12;:10;:12::i;:::-;15294:22;;:6;;;;;;;;;;:22;;;15286:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16525:6:::1;::::0;::::1;;;;;;;;16508:14;;:23;;;;;;;;;;;;;;;;;;16559:1;16542:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;16602:4;16584:15;:22;;;;:::i;:::-;16572:9;:34;;;;16659:1;16622:40;;16643:6;::::0;::::1;;;;;;;;16622:40;;;;;;;;;;;;16444:226:::0;:::o;18643:133::-;18727:7;18745:11;:19;18757:6;18745:19;;;;;;;;;;;;;;;:28;18765:7;18745:28;;;;;;;;;;;;;;;;18738:35;;18643:133;;;;:::o;22042:1095::-;22106:4;456:1;601:7;;:19;;593:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;456:1;667:7;:18;;;;22133:14:::1;22150:10;22133:27;;22256:11;22235:9;:17;22245:6;22235:17;;;;;;;;;;;;;;;;:32;;22227:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22380:20;22403:35;22432:5;22403:24;22419:7;;22403:11;:15;;:24;;;;:::i;:::-;:28;;:35;;;;:::i;:::-;22380:58;;22508:17;22528:34;22545:16;:14;:16::i;:::-;22528:12;:16;;:34;;;;:::i;:::-;22508:54;;22615:15;22643:6;22635:20;;22663:9;22679:5;22635:54;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22614:75;;;22705:10;22701:347;;;22801:78;22823:11;22801:78;;;;;;;;;;;;;;;;;:9;:17;22811:6;22801:17;;;;;;;;;;;;;;;;:21;;:78;;;;;:::i;:::-;22781:9;:17;22791:6;22781:17;;;;;;;;;;;;;;;:98;;;;22966:29;22983:11;22966:12;;:16;;:29;;;;:::i;:::-;22951:12;:44;;;;22701:347;;;23028:8;::::0;::::1;22701:347;23088:4;23063:44;;23072:6;23063:44;;;23095:11;23063:44;;;;;;:::i;:::-;;;;;;;;23125:4;23118:11;;;;;;412:1:::0;708:7;:22;;;;22042:1095;;;:::o;16027:244::-;15304:12;:10;:12::i;:::-;15294:22;;:6;;;;;;;;;;:22;;;15286:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16136:1:::1;16116:22;;:8;:22;;;;16108:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16226:8;16197:38;;16218:6;::::0;::::1;;;;;;;;16197:38;;;;;;;;;;;;16255:8;16246:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;16027:244:::0;:::o;18031:37::-;;;;;;;;;;;;;:::o;10129:136::-;10187:7;10214:43;10218:1;10221;10214:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;10207:50;;10129:136;;;;:::o;11019:471::-;11077:7;11327:1;11322;:6;11318:47;;;11352:1;11345:8;;;;11318:47;11377:9;11393:1;11389;:5;;;;:::i;:::-;11377:17;;11422:1;11417;11413;:5;;;;:::i;:::-;:10;11405:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11481:1;11474:8;;;11019:471;;;;;:::o;11966:132::-;12024:7;12051:39;12055:1;12058;12051:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;12044:46;;11966:132;;;;:::o;23387:176::-;23474:31;23498:6;23474:9;:19;23484:8;23474:19;;;;;;;;;;;;;;;;:23;;:31;;;;:::i;:::-;23452:9;:19;23462:8;23452:19;;;;;;;;;;;;;;;:53;;;;23531:24;23548:6;23531:12;;:16;;:24;;;;:::i;:::-;23516:12;:39;;;;23387:176;;:::o;19761:869::-;19853:4;19932:1;19911:23;;:9;:23;;;;19903:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20002:1;19993:6;:10;19985:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20125:15;20143:34;20171:5;20143:23;20154:11;;20143:6;:10;;:23;;;;:::i;:::-;:27;;:34;;;;:::i;:::-;20125:52;;20188:11;20202:19;20213:7;20202:6;:10;;:19;;;;:::i;:::-;20188:33;;20285:53;20307:6;20285:53;;;;;;;;;;;;;;;;;:9;:17;20295:6;20285:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;20265:9;:17;20275:6;20265:17;;;;;;;;;;;;;;;:73;;;;20416:33;20441:7;20416:9;:20;20426:9;20416:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;20393:9;:20;20403:9;20393:20;;;;;;;;;;;;;;;:56;;;;20500:21;20517:3;20500:12;;:16;;:21;;;;:::i;:::-;20485:12;:36;;;;20581:9;20564:36;;20573:6;20564:36;;;20592:7;20564:36;;;;;;:::i;:::-;;;;;;;;20618:4;20611:11;;;;19761:869;;;;;:::o;14158:115::-;14211:15;14254:10;14239:26;;14158:115;:::o;10568:192::-;10654:7;10687:1;10682;:6;;10690:12;10674:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;10714:9;10730:1;10726;:5;;;;:::i;:::-;10714:17;;10751:1;10744:8;;;10568:192;;;;;:::o;12594:278::-;12680:7;12712:1;12708;:5;12715:12;12700:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;12739:9;12755:1;12751;:5;;;;:::i;:::-;12739:17;;12863:1;12856:8;;;12594:278;;;;;:::o;9665:181::-;9723:7;9743:9;9759:1;9755;:5;;;;:::i;:::-;9743:17;;9784:1;9779;:6;;9771:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9837:1;9830:8;;;9665:181;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:2;;;411:79;;:::i;:::-;373:2;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;363:263;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:2;;;763:79;;:::i;:::-;725:2;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;715:391;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:2;;;1260:79;;:::i;:::-;1222:2;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1212:519;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:2;;;1868:79;;:::i;:::-;1830:2;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1820:391;;;;;:::o;2217:329::-;2276:6;2325:2;2313:9;2304:7;2300:23;2296:32;2293:2;;;2331:79;;:::i;:::-;2293:2;2451:1;2476:53;2521:7;2512:6;2501:9;2497:22;2476:53;:::i;:::-;2466:63;;2422:117;2283:263;;;;:::o;2552:118::-;2639:24;2657:5;2639:24;:::i;:::-;2634:3;2627:37;2617:53;;:::o;2676:109::-;2757:21;2772:5;2757:21;:::i;:::-;2752:3;2745:34;2735:50;;:::o;2791:364::-;2879:3;2907:39;2940:5;2907:39;:::i;:::-;2962:71;3026:6;3021:3;2962:71;:::i;:::-;2955:78;;3042:52;3087:6;3082:3;3075:4;3068:5;3064:16;3042:52;:::i;:::-;3119:29;3141:6;3119:29;:::i;:::-;3114:3;3110:39;3103:46;;2883:272;;;;;:::o;3161:366::-;3303:3;3324:67;3388:2;3383:3;3324:67;:::i;:::-;3317:74;;3400:93;3489:3;3400:93;:::i;:::-;3518:2;3513:3;3509:12;3502:19;;3307:220;;;:::o;3533:366::-;3675:3;3696:67;3760:2;3755:3;3696:67;:::i;:::-;3689:74;;3772:93;3861:3;3772:93;:::i;:::-;3890:2;3885:3;3881:12;3874:19;;3679:220;;;:::o;3905:366::-;4047:3;4068:67;4132:2;4127:3;4068:67;:::i;:::-;4061:74;;4144:93;4233:3;4144:93;:::i;:::-;4262:2;4257:3;4253:12;4246:19;;4051:220;;;:::o;4277:366::-;4419:3;4440:67;4504:2;4499:3;4440:67;:::i;:::-;4433:74;;4516:93;4605:3;4516:93;:::i;:::-;4634:2;4629:3;4625:12;4618:19;;4423:220;;;:::o;4649:366::-;4791:3;4812:67;4876:2;4871:3;4812:67;:::i;:::-;4805:74;;4888:93;4977:3;4888:93;:::i;:::-;5006:2;5001:3;4997:12;4990:19;;4795:220;;;:::o;5021:366::-;5163:3;5184:67;5248:2;5243:3;5184:67;:::i;:::-;5177:74;;5260:93;5349:3;5260:93;:::i;:::-;5378:2;5373:3;5369:12;5362:19;;5167:220;;;:::o;5393:366::-;5535:3;5556:67;5620:2;5615:3;5556:67;:::i;:::-;5549:74;;5632:93;5721:3;5632:93;:::i;:::-;5750:2;5745:3;5741:12;5734:19;;5539:220;;;:::o;5765:366::-;5907:3;5928:67;5992:2;5987:3;5928:67;:::i;:::-;5921:74;;6004:93;6093:3;6004:93;:::i;:::-;6122:2;6117:3;6113:12;6106:19;;5911:220;;;:::o;6137:366::-;6279:3;6300:67;6364:2;6359:3;6300:67;:::i;:::-;6293:74;;6376:93;6465:3;6376:93;:::i;:::-;6494:2;6489:3;6485:12;6478:19;;6283:220;;;:::o;6509:398::-;6668:3;6689:83;6770:1;6765:3;6689:83;:::i;:::-;6682:90;;6781:93;6870:3;6781:93;:::i;:::-;6899:1;6894:3;6890:11;6883:18;;6672:235;;;:::o;6913:366::-;7055:3;7076:67;7140:2;7135:3;7076:67;:::i;:::-;7069:74;;7152:93;7241:3;7152:93;:::i;:::-;7270:2;7265:3;7261:12;7254:19;;7059:220;;;:::o;7285:366::-;7427:3;7448:67;7512:2;7507:3;7448:67;:::i;:::-;7441:74;;7524:93;7613:3;7524:93;:::i;:::-;7642:2;7637:3;7633:12;7626:19;;7431:220;;;:::o;7657:366::-;7799:3;7820:67;7884:2;7879:3;7820:67;:::i;:::-;7813:74;;7896:93;7985:3;7896:93;:::i;:::-;8014:2;8009:3;8005:12;7998:19;;7803:220;;;:::o;8029:118::-;8116:24;8134:5;8116:24;:::i;:::-;8111:3;8104:37;8094:53;;:::o;8153:112::-;8236:22;8252:5;8236:22;:::i;:::-;8231:3;8224:35;8214:51;;:::o;8271:379::-;8455:3;8477:147;8620:3;8477:147;:::i;:::-;8470:154;;8641:3;8634:10;;8459:191;;;:::o;8656:222::-;8749:4;8787:2;8776:9;8772:18;8764:26;;8800:71;8868:1;8857:9;8853:17;8844:6;8800:71;:::i;:::-;8754:124;;;;:::o;8884:210::-;8971:4;9009:2;8998:9;8994:18;8986:26;;9022:65;9084:1;9073:9;9069:17;9060:6;9022:65;:::i;:::-;8976:118;;;;:::o;9100:313::-;9213:4;9251:2;9240:9;9236:18;9228:26;;9300:9;9294:4;9290:20;9286:1;9275:9;9271:17;9264:47;9328:78;9401:4;9392:6;9328:78;:::i;:::-;9320:86;;9218:195;;;;:::o;9419:419::-;9585:4;9623:2;9612:9;9608:18;9600:26;;9672:9;9666:4;9662:20;9658:1;9647:9;9643:17;9636:47;9700:131;9826:4;9700:131;:::i;:::-;9692:139;;9590:248;;;:::o;9844:419::-;10010:4;10048:2;10037:9;10033:18;10025:26;;10097:9;10091:4;10087:20;10083:1;10072:9;10068:17;10061:47;10125:131;10251:4;10125:131;:::i;:::-;10117:139;;10015:248;;;:::o;10269:419::-;10435:4;10473:2;10462:9;10458:18;10450:26;;10522:9;10516:4;10512:20;10508:1;10497:9;10493:17;10486:47;10550:131;10676:4;10550:131;:::i;:::-;10542:139;;10440:248;;;:::o;10694:419::-;10860:4;10898:2;10887:9;10883:18;10875:26;;10947:9;10941:4;10937:20;10933:1;10922:9;10918:17;10911:47;10975:131;11101:4;10975:131;:::i;:::-;10967:139;;10865:248;;;:::o;11119:419::-;11285:4;11323:2;11312:9;11308:18;11300:26;;11372:9;11366:4;11362:20;11358:1;11347:9;11343:17;11336:47;11400:131;11526:4;11400:131;:::i;:::-;11392:139;;11290:248;;;:::o;11544:419::-;11710:4;11748:2;11737:9;11733:18;11725:26;;11797:9;11791:4;11787:20;11783:1;11772:9;11768:17;11761:47;11825:131;11951:4;11825:131;:::i;:::-;11817:139;;11715:248;;;:::o;11969:419::-;12135:4;12173:2;12162:9;12158:18;12150:26;;12222:9;12216:4;12212:20;12208:1;12197:9;12193:17;12186:47;12250:131;12376:4;12250:131;:::i;:::-;12242:139;;12140:248;;;:::o;12394:419::-;12560:4;12598:2;12587:9;12583:18;12575:26;;12647:9;12641:4;12637:20;12633:1;12622:9;12618:17;12611:47;12675:131;12801:4;12675:131;:::i;:::-;12667:139;;12565:248;;;:::o;12819:419::-;12985:4;13023:2;13012:9;13008:18;13000:26;;13072:9;13066:4;13062:20;13058:1;13047:9;13043:17;13036:47;13100:131;13226:4;13100:131;:::i;:::-;13092:139;;12990:248;;;:::o;13244:419::-;13410:4;13448:2;13437:9;13433:18;13425:26;;13497:9;13491:4;13487:20;13483:1;13472:9;13468:17;13461:47;13525:131;13651:4;13525:131;:::i;:::-;13517:139;;13415:248;;;:::o;13669:419::-;13835:4;13873:2;13862:9;13858:18;13850:26;;13922:9;13916:4;13912:20;13908:1;13897:9;13893:17;13886:47;13950:131;14076:4;13950:131;:::i;:::-;13942:139;;13840:248;;;:::o;14094:419::-;14260:4;14298:2;14287:9;14283:18;14275:26;;14347:9;14341:4;14337:20;14333:1;14322:9;14318:17;14311:47;14375:131;14501:4;14375:131;:::i;:::-;14367:139;;14265:248;;;:::o;14519:222::-;14612:4;14650:2;14639:9;14635:18;14627:26;;14663:71;14731:1;14720:9;14716:17;14707:6;14663:71;:::i;:::-;14617:124;;;;:::o;14747:214::-;14836:4;14874:2;14863:9;14859:18;14851:26;;14887:67;14951:1;14940:9;14936:17;14927:6;14887:67;:::i;:::-;14841:120;;;;:::o;15048:99::-;15100:6;15134:5;15128:12;15118:22;;15107:40;;;:::o;15153:147::-;15254:11;15291:3;15276:18;;15266:34;;;;:::o;15306:169::-;15390:11;15424:6;15419:3;15412:19;15464:4;15459:3;15455:14;15440:29;;15402:73;;;;:::o;15481:305::-;15521:3;15540:20;15558:1;15540:20;:::i;:::-;15535:25;;15574:20;15592:1;15574:20;:::i;:::-;15569:25;;15728:1;15660:66;15656:74;15653:1;15650:81;15647:2;;;15734:18;;:::i;:::-;15647:2;15778:1;15775;15771:9;15764:16;;15525:261;;;;:::o;15792:185::-;15832:1;15849:20;15867:1;15849:20;:::i;:::-;15844:25;;15883:20;15901:1;15883:20;:::i;:::-;15878:25;;15922:1;15912:2;;15927:18;;:::i;:::-;15912:2;15969:1;15966;15962:9;15957:14;;15834:143;;;;:::o;15983:348::-;16023:7;16046:20;16064:1;16046:20;:::i;:::-;16041:25;;16080:20;16098:1;16080:20;:::i;:::-;16075:25;;16268:1;16200:66;16196:74;16193:1;16190:81;16185:1;16178:9;16171:17;16167:105;16164:2;;;16275:18;;:::i;:::-;16164:2;16323:1;16320;16316:9;16305:20;;16031:300;;;;:::o;16337:191::-;16377:4;16397:20;16415:1;16397:20;:::i;:::-;16392:25;;16431:20;16449:1;16431:20;:::i;:::-;16426:25;;16470:1;16467;16464:8;16461:2;;;16475:18;;:::i;:::-;16461:2;16520:1;16517;16513:9;16505:17;;16382:146;;;;:::o;16534:96::-;16571:7;16600:24;16618:5;16600:24;:::i;:::-;16589:35;;16579:51;;;:::o;16636:90::-;16670:7;16713:5;16706:13;16699:21;16688:32;;16678:48;;;:::o;16732:126::-;16769:7;16809:42;16802:5;16798:54;16787:65;;16777:81;;;:::o;16864:77::-;16901:7;16930:5;16919:16;;16909:32;;;:::o;16947:86::-;16982:7;17022:4;17015:5;17011:16;17000:27;;16990:43;;;:::o;17039:307::-;17107:1;17117:113;17131:6;17128:1;17125:13;17117:113;;;17216:1;17211:3;17207:11;17201:18;17197:1;17192:3;17188:11;17181:39;17153:2;17150:1;17146:10;17141:15;;17117:113;;;17248:6;17245:1;17242:13;17239:2;;;17328:1;17319:6;17314:3;17310:16;17303:27;17239:2;17088:258;;;;:::o;17352:180::-;17400:77;17397:1;17390:88;17497:4;17494:1;17487:15;17521:4;17518:1;17511:15;17538:180;17586:77;17583:1;17576:88;17683:4;17680:1;17673:15;17707:4;17704:1;17697:15;17847:117;17956:1;17953;17946:12;17970:102;18011:6;18062:2;18058:7;18053:2;18046:5;18042:14;18038:28;18028:38;;18018:54;;;:::o;18078:178::-;18218:30;18214:1;18206:6;18202:14;18195:54;18184:72;:::o;18262:225::-;18402:34;18398:1;18390:6;18386:14;18379:58;18471:8;18466:2;18458:6;18454:15;18447:33;18368:119;:::o;18493:177::-;18633:29;18629:1;18621:6;18617:14;18610:53;18599:71;:::o;18676:180::-;18816:32;18812:1;18804:6;18800:14;18793:56;18782:74;:::o;18862:182::-;19002:34;18998:1;18990:6;18986:14;18979:58;18968:76;:::o;19050:220::-;19190:34;19186:1;19178:6;19174:14;19167:58;19259:3;19254:2;19246:6;19242:15;19235:28;19156:114;:::o;19276:182::-;19416:34;19412:1;19404:6;19400:14;19393:58;19382:76;:::o;19464:228::-;19604:34;19600:1;19592:6;19588:14;19581:58;19673:11;19668:2;19660:6;19656:15;19649:36;19570:122;:::o;19698:222::-;19838:34;19834:1;19826:6;19822:14;19815:58;19907:5;19902:2;19894:6;19890:15;19883:30;19804:116;:::o;19926:114::-;20032:8;:::o;20046:168::-;20186:20;20182:1;20174:6;20170:14;20163:44;20152:62;:::o;20220:181::-;20360:33;20356:1;20348:6;20344:14;20337:57;20326:75;:::o;20407:222::-;20547:34;20543:1;20535:6;20531:14;20524:58;20616:5;20611:2;20603:6;20599:15;20592:30;20513:116;:::o;20635:122::-;20708:24;20726:5;20708:24;:::i;:::-;20701:5;20698:35;20688:2;;20747:1;20744;20737:12;20688:2;20678:79;:::o;20763:122::-;20836:24;20854:5;20836:24;:::i;:::-;20829:5;20826:35;20816:2;;20875:1;20872;20865:12;20816:2;20806:79;:::o

Swarm Source

ipfs://80ffcc3dc0c8293b5eda0b9be01d5789ac7f2eb49ba34652363bac0b09677be6
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.